Skip to content

Commit

Permalink
rename mimc to gnark (#107)
Browse files Browse the repository at this point in the history
Signed-off-by: Karim TAAM <[email protected]>
  • Loading branch information
matkt authored May 3, 2023
1 parent 4ee5044 commit 3c43909
Show file tree
Hide file tree
Showing 9 changed files with 46 additions and 44 deletions.
24 changes: 12 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ jobs:
path: ipa-multipoint/build/
- uses: actions/[email protected]
with:
name: mimc native build artifacts
path: mimc/build/
name: gnark native build artifacts
path: gnark/build/
native-build-linux-arm64:
runs-on: [self-hosted, Linux, ARM64]
env:
Expand Down Expand Up @@ -108,8 +108,8 @@ jobs:
path: ipa-multipoint/build/
- uses: actions/[email protected]
with:
name: mimc native build artifacts
path: mimc/build/
name: gnark native build artifacts
path: gnark/build/
native-build-macos:
runs-on: macos-11
env:
Expand Down Expand Up @@ -165,8 +165,8 @@ jobs:
path: ipa-multipoint/build/
- uses: actions/[email protected]
with:
name: mimc native build artifacts
path: mimc/build/
name: gnark native build artifacts
path: gnark/build/
native-build-m1:
runs-on: [self-hosted, macOS, ARM64, MacStadium]
env:
Expand Down Expand Up @@ -222,8 +222,8 @@ jobs:
path: ipa-multipoint/build/
- uses: actions/[email protected]
with:
name: mimc native build artifacts
path: mimc/build/
name: gnark native build artifacts
path: gnark/build/
final-assembly:
runs-on: ubuntu-20.04
needs:
Expand Down Expand Up @@ -269,11 +269,11 @@ jobs:
with:
name: ipa-multipoint native build artifacts
path: ipa-multipoint/build/
- name: Download mimc
- name: Download gnark
uses: actions/download-artifact@v3
with:
name: mimc native build artifacts
path: mimc/build/
name: gnark native build artifacts
path: gnark/build/
- name: Set up Java
uses: actions/setup-java@v2
with:
Expand Down Expand Up @@ -315,7 +315,7 @@ jobs:
- uses: actions/[email protected]
with:
name: jars
path: mimc/build/libs
path: gnark/build/libs
- name: gradle publish
uses: gradle/gradle-build-action@v2
if: contains('refs/heads/release-', github.ref) || github.ref == 'refs/heads/main'
Expand Down
18 changes: 9 additions & 9 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -312,18 +312,18 @@ EOF

}

build_mimc() {
build_gnark() {
cat <<EOF
############################
####### build mimc #######
####### build gnark #######
############################
EOF

cd "$SCRIPTDIR/mimc/mimc-jni"
cd "$SCRIPTDIR/gnark/gnark-jni"

# delete old build dir, if exists
rm -rf "$SCRIPTDIR/mimc/build" || true
mkdir -p "$SCRIPTDIR/mimc/build/lib"
rm -rf "$SCRIPTDIR/gnark/build" || true
mkdir -p "$SCRIPTDIR/gnark/build/lib"

if [[ "$OSTYPE" == "msys" ]]; then
LIBRARY_EXTENSION=dll
Expand All @@ -333,10 +333,10 @@ EOF
LIBRARY_EXTENSION=dylib
fi

go build -buildmode=c-shared -o libmimc_jni.$LIBRARY_EXTENSION mimc-jni.go
go build -buildmode=c-shared -o libgnark_jni.$LIBRARY_EXTENSION gnark-jni.go

mkdir -p "$SCRIPTDIR/mimc/build/${OSARCH}/lib"
cp libmimc_jni.* "$SCRIPTDIR/mimc/build/${OSARCH}/lib"
mkdir -p "$SCRIPTDIR/gnark/build/${OSARCH}/lib"
cp libgnark_jni.* "$SCRIPTDIR/gnark/build/${OSARCH}/lib"
}

build_blake2bf
Expand All @@ -346,7 +346,7 @@ build_arithmetic
build_bls12_381
build_ipa_multipoint
build_secp256r1
build_mimc
build_gnark


build_jars
Expand Down
20 changes: 10 additions & 10 deletions mimc/build.gradle → gnark/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,51 +29,51 @@ dependencies {
}

task macArmLibCopy(type: Copy) {
from 'build/darwin-aarch64/lib/libmimc_jni.dylib'
from 'build/darwin-aarch64/lib/libgnark_jni.dylib'
into 'build/resources/main/darwin-aarch64'
}
processResources.dependsOn macArmLibCopy

task macLibCopy(type: Copy) {
from 'build/darwin-x86-64/lib/libmimc_jni.dylib'
from 'build/darwin-x86-64/lib/libgnark_jni.dylib'
into 'build/resources/main/darwin-x86-64'
}
processResources.dependsOn macLibCopy

task linuxLibCopy(type: Copy) {
from 'build/linux-gnu-x86_64/lib/libmimc_jni.so'
from 'build/linux-gnu-x86_64/lib/libgnark_jni.so'
into 'build/resources/main/linux-x86-64'
}
processResources.dependsOn linuxLibCopy

task linuxArm64LibCopy(type: Copy) {
from 'build/linux-gnu-aarch64/lib/libmimc_jni.so'
from 'build/linux-gnu-aarch64/lib/libgnark_jni.so'
into 'build/resources/main/linux-aarch64'
}
processResources.dependsOn linuxArm64LibCopy

jar {
archiveBaseName = 'besu-native-mimc'
archiveBaseName = 'besu-native-gnark'
includeEmptyDirs = false
manifest {
attributes(
'Specification-Title': archiveBaseName,
'Specification-Version': project.version,
'Implementation-Title': archiveBaseName,
'Implementation-Version': project.version,
'Automatic-Module-Name': 'org.hyperledger.besu.native.mimc'
'Automatic-Module-Name': 'org.hyperledger.besu.native.gnark'
)
}
}

task sourcesJar(type: Jar, dependsOn: classes) {
archiveBaseName = 'besu-native-mimc'
archiveBaseName = 'besu-native-gnark'
classifier = 'sources'
from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) {
archiveBaseName = 'besu-native-mimc'
archiveBaseName = 'besu-native-gnark'
classifier = 'javadoc'
from javadoc.destinationDir
}
Expand All @@ -83,7 +83,7 @@ publishing {
publications {
mavenJava(MavenPublication) {
groupId "org.hyperledger.besu"
artifactId "mimc"
artifactId "gnark"
version "${project.version}"

from components.java
Expand All @@ -92,7 +92,7 @@ publishing {

pom {
name = "Besu Native - ${project.name}"
description = 'Mimc'
description = 'Gnark'
url = 'http://github.com/hyperledger/besu-native'
licenses {
license {
Expand Down
5 changes: 3 additions & 2 deletions mimc/mimc-jni/mimc-jni.go → gnark/gnark-jni/gnark-jni.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@ func MiMCHash(b []byte) []byte {
}


//export compute
func compute(input *C.char, inputLength C.int, output *C.char) C.int {
//export computeMimc
func computeMimc(input *C.char, inputLength C.int, output *C.char) C.int {
inputSlice := C.GoBytes(unsafe.Pointer(input), inputLength)
outputSlice := (*[32]byte)(unsafe.Pointer(output))[:]
hash := MiMCHash(inputSlice)
copy(outputSlice, hash)
return C.int(len(hash))
}


func main() {}
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@
* SPDX-License-Identifier: Apache-2.0
*
*/
package org.hyperledger.besu.nativelib.mimc;
package org.hyperledger.besu.nativelib.gnark;

import com.sun.jna.Native;

/**
* Java interface to mimc
* Java interface to gnark
*/
public class LibMimc {
public class LibGnark {

@SuppressWarnings("WeakerAccess")
public static final boolean ENABLED;

static {
boolean enabled;
try {
Native.register(LibMimc.class, "mimc_jni");
Native.register(LibGnark.class, "gnark_jni");
enabled = true;
} catch (final Throwable t) {
t.printStackTrace();
Expand All @@ -37,6 +37,7 @@ public class LibMimc {
ENABLED = enabled;
}

public static native int compute(
public static native int computeMimc(
byte[] i, int i_len, byte[] o);

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* SPDX-License-Identifier: Apache-2.0
*
*/
package org.hyperledger.besu.nativelib.mimc;
package org.hyperledger.besu.nativelib.gnark;

import org.apache.tuweni.bytes.Bytes;
import org.apache.tuweni.bytes.Bytes32;
Expand All @@ -22,19 +22,19 @@

import static org.assertj.core.api.AssertionsForClassTypes.assertThat;

public class LibMimcTest {
public class LibGnarkTest {

@Test
public void testHashZero() {
byte[] output = new byte[Bytes32.SIZE];
LibMimc.compute(Bytes32.ZERO.toArrayUnsafe(), Bytes32.SIZE, output);
LibGnark.computeMimc(Bytes32.ZERO.toArrayUnsafe(), Bytes32.SIZE, output);
assertThat(Bytes.wrap(output)).isEqualTo(Bytes.fromHexString("0x2c7298fd87d3039ffea208538f6b297b60b373a63792b4cd0654fdc88fd0d6ee"));
}

@Test
public void testHashOne() {
byte[] output = new byte[Bytes32.SIZE];
LibMimc.compute(Bytes32.leftPad(Bytes.of(1)).toArrayUnsafe(), Bytes32.SIZE, output);
LibGnark.computeMimc(Bytes32.leftPad(Bytes.of(1)).toArrayUnsafe(), Bytes32.SIZE, output);
assertThat(Bytes.wrap(output)).isEqualTo(Bytes.fromHexString("0x27e5458b666ef581475a9acddbc3524ca252185cae3936506e65cda9c358222b"));
}

Expand All @@ -45,7 +45,7 @@ public void testLongString() {
input.set(Bytes32.SIZE*(i+1)-1,(byte) i);
}
byte[] output = new byte[Bytes32.SIZE];
LibMimc.compute(input.toArrayUnsafe(), input.size(), output);
LibGnark.computeMimc(input.toArrayUnsafe(), input.size(), output);
assertThat(Bytes.wrap(output)).isEqualTo(Bytes.fromHexString("0x145875dd085ea2fb9796333e55c9da80228eb321df0ca9a41ca64ba6fe90b167"));
}
}
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ include 'bls12-381'
include 'ipa-multipoint'
include 'secp256k1'
include 'secp256r1'
include 'mimc'
include 'gnark'

0 comments on commit 3c43909

Please sign in to comment.