diff --git a/build.gradle b/build.gradle index 86eb6f44..59f5e44e 100644 --- a/build.gradle +++ b/build.gradle @@ -53,22 +53,23 @@ sourceSets { } dependencies { - implementation "com.google.guava:guava" + + implementation 'com.google.guava:guava' implementation 'net.java.dev.jna:jna' + implementation 'io.github.crate-crypto:java-verkle-cryptography' implementation 'io.tmio:tuweni-bytes' - implementation 'io.tmio:tuweni-units' implementation 'io.tmio:tuweni-rlp' - implementation 'org.hyperledger.besu:ipa-multipoint' - implementation 'org.hyperledger.besu.internal:trie' - implementation 'org.hyperledger.besu.internal:rlp' + implementation 'io.tmio:tuweni-units' implementation 'org.apache.logging.log4j:log4j-api' implementation 'org.apache.logging.log4j:log4j-core' + implementation 'org.hyperledger.besu.internal:rlp' + implementation 'org.hyperledger.besu.internal:trie' - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testImplementation 'org.junit.jupiter:junit-jupiter-params' testImplementation 'com.fasterxml.jackson.core:jackson-databind' testImplementation 'org.assertj:assertj-core' testImplementation 'org.apache.commons:commons-csv:1.10.0' + testImplementation 'org.junit.jupiter:junit-jupiter-api' + testImplementation 'org.junit.jupiter:junit-jupiter-params' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' } diff --git a/gradle/versions.gradle b/gradle/versions.gradle index 77c05765..37dc6dce 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -19,10 +19,10 @@ dependencyManagement { dependency 'net.java.dev.jna:jna:5.14.0' - dependency 'org.hyperledger.besu:ipa-multipoint:0.8.5' - dependency 'org.assertj:assertj-core:3.25.1' + dependency 'io.github.crate-crypto:java-verkle-cryptography:0.0.2' + dependencySet(group: 'org.hyperledger.besu.internal', version: '24.7.0') { entry 'rlp' entry 'trie' diff --git a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/hasher/PedersenHasher.java b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/hasher/PedersenHasher.java index d71a54fc..e315dcff 100644 --- a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/hasher/PedersenHasher.java +++ b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/hasher/PedersenHasher.java @@ -15,8 +15,6 @@ */ package org.hyperledger.besu.ethereum.trie.verkle.hasher; -import org.hyperledger.besu.nativelib.ipamultipoint.LibIpaMultipoint; - import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; @@ -28,6 +26,7 @@ import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes32; import org.apache.tuweni.bytes.MutableBytes; +import verkle.cryptography.LibIpaMultipoint; /** * A class responsible for hashing an array of Bytes32 using the pedersen commitment - multi scalar diff --git a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/proof/ProofVerifier.java b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/proof/ProofVerifier.java index 47231425..aeead070 100644 --- a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/proof/ProofVerifier.java +++ b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/proof/ProofVerifier.java @@ -15,15 +15,12 @@ */ package org.hyperledger.besu.ethereum.trie.verkle.proof; -import org.hyperledger.besu.nativelib.ipamultipoint.LibIpaMultipoint; - import java.util.List; import java.util.function.Function; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes32; +import verkle.cryptography.LibIpaMultipoint; /** * This class validates the Verkle proof against the specified pre-state root. @@ -33,27 +30,6 @@ */ public class ProofVerifier { - private static final Logger LOG = LogManager.getLogger(ProofVerifier.class); - - static boolean nativeEnabled; - - static { - maybeEnableNative(); - } - - public static void maybeEnableNative() { - try { - nativeEnabled = LibIpaMultipoint.ENABLED; - } catch (UnsatisfiedLinkError | NoClassDefFoundError ule) { - LOG.info("ipa multipoint native library not available: {}", ule.getMessage()); - nativeEnabled = false; - } - } - - public static boolean isNativeEnabled() { - return nativeEnabled; - } - public boolean verifyVerkleProof( final List keys, final List currentValues,