Commit Graph

35 Commits

Author SHA1 Message Date
Vinh Trịnh
1d44d60df2 Extend testcase timeout to prevent panic, seperate anvil feature for testcase. (#28)
* chore: update unit test timeout to avoid panic, seperate anvil feature for testcase use foundry's anvil

* chore: add constant for the timeout number
2025-08-18 16:09:19 +07:00
Sydhds
11b06a440d Add zeroize support for private key (#27) 2025-08-13 15:15:25 +02:00
Sydhds
dc9d7947b3 Various clippy fixes (#26) 2025-08-13 14:53:35 +02:00
Vinh Trịnh
802872e155 Test and fix smart contract interaction (#24)
* chore: add karma_sc_test, karma_tiers_test, rln_sc_test script

* chore: fix rustls panic erro in prover_cli

* fix: update TierLimits's validate method to handle first tier's minKarma starts at 0

* chore: add NoTier

* chore: update Dockerfile

* chore: update rust version and tooling to build rocksdb deps

* fix: refactor smart contract interaction scripts, add error enum and remove unuse codes

* fix: add PRIVATE_KEY env variable, seperate specific error types, update Dockerfile, remove config.example.toml and use clap's default_value instead

* chore: update Dockerfile

* chore: remove unuse register_user_with_commitment and redundant KarmaSCInstance::from
2025-08-12 22:39:18 +07:00
Sydhds
400d0155a7 Update for new KarmaTiers smart contract (#23)
* Update for new KarmaTiers smart contract
* Add Anvil unit test for KarmaTiers SC
* Add unit test for KarmaSC
* Add rln sc unit test
2025-07-31 11:40:50 +02:00
Sydhds
b802b80664 Add throughput measurement for prover benchmark (#22)
* Add throughput measurement for prover benchmark
* Use rayon instead of tokio spawn blocking
* Add new user_db unit tests for user tx counterx
2025-07-23 12:26:34 +02:00
Sydhds
1ec9f1f48d Split unit tests in several new files (#21) 2025-07-21 16:36:54 +02:00
Sydhds
8b1540cf76 Add histogram metrics for channels (#20) 2025-07-16 14:41:32 +02:00
Sydhds
1e813c6710 Initial code for tracing + oltp (#19)
* Initial code for tracing + oltp
* Add tracing for all grpc endpoints + proof services + epoch service
* Trace result and errors for grpc endpoints
2025-07-16 11:33:43 +02:00
sydhds
9cdac9c184 Do not stop if user is already registered (when using --mock-user) 2025-07-16 09:34:44 +02:00
Sydhds
471dd9a24f Add initial metrics for Prometheus (#18)
* Add metrics for Prometheus
2025-07-15 11:51:27 +02:00
sydhds
6a7bb3ac0e Update .gitignore 2025-07-11 09:58:44 +02:00
Sydhds
e5f88726ae Improve test_notify unit test (more reliable) (#17)
* Improve test_notify unit test (more reliable)
2025-07-11 09:57:38 +02:00
Sydhds
88678afdb2 Initial attempt to benchmark proof generation using the prover (#16)
* Initial attempt to benchmark proof generation using the prover
2025-07-09 15:02:07 +02:00
Sydhds
cdafbadac3 Add end to end grpc test (#15)
* Add end to end grpc test
2025-07-07 15:53:46 +02:00
Sydhds
d33c1016cd Update && enable unit test: test_user_spamming_same_signal (#13)
* Update && enable unit test: test_user_spamming_same_signal
* Add debug_assert in epoch_counters_operands
* Write merkle tree inside db transaction
* Add note about error handling in RegistryListener
* Remove user if it cannot register it to smart contract
* Remove user in db if we cannot add to SC
* Add support for config file
2025-07-04 11:41:36 +02:00
Sydhds
cac235dbcc Add TierLimits unit tests (#12)
* Add TierLimits unit tests
2025-07-01 10:11:08 +02:00
Sydhds
9f4027ed2b Add UserRocksDb - initial attemp to rewrite UserDb with persistent st… (#10)
* Use RocksDb + PmTree for UserDb persistent storage
2025-06-27 15:41:41 +02:00
sydhds
cbb058d330 Can pass arguments directly to docker 2025-06-16 14:48:08 +02:00
sydhds
8e9e6c4b9d Fix tier limits print when --mock-user is enabled 2025-06-13 18:08:50 +02:00
Sydhds
834fa090d2 Fix unit tests compilation (#9)
* Fix unit test: test_set_tier_limits
* Fix unit test: test_user_register
* Fix unit test: test_update_on_epoch_changes
2025-06-13 18:04:12 +02:00
Sydhds
1059b87572 Add Dockerfile 2025-06-13 16:54:22 +02:00
Sydhds
409cdcb651 Move all code related to smart contracts into lib smart_contract (#7)
* Move all code related to smart contracts into lib smart_contract
* Can start the prover with mocked smart contract
* Add KarmaTier integration
* Filter & validate initial tier limits
2025-06-13 12:04:10 +02:00
Sydhds
d8da43e535 Update to zerokit v0.8.0 (#6)
* Update to zerokit v0.8.0
* Switch to OptimalMerkleTree implementation (was pmTree)
* Update various crates
2025-06-10 10:53:26 +02:00
Sydhds
68fbc154bd Add rln sc in grpc register_user (#5)
* Add rln sc in grpc register_user
* Add app argument for RLN Smart contract address
2025-06-06 15:07:10 +02:00
Sydhds
632cf67142 Update RegistryListener to interact with Karma smart contract (#4)
* Update RegistryListener to interact with Karma smart contract
* Add karma sc instance in grpc service
2025-06-06 09:22:19 +02:00
Sydhds
7525c8c226 Add ProofGenerationData structure (#3)
* Add ProofGenerationData structure
* Use shared merkle tree
* Add unit tests for proof service
2025-06-05 10:03:31 +02:00
Sydhds
194ce101fc Add initial code for user db (user reg + tx counter + tier info) (#2)
* Add initial code for user db (user reg + tx counter + tier info)
* Switch to scc hashmap (+ updated benchmark)
* Add KSC into UserDB
* Start user db service in prover main
* Separate between user db service & user db
* Add set tier limits grpc endpoint
* Set tier limits unit test
* Use derive_more
2025-05-30 15:14:09 +02:00
Sydhds
a1738ec060 Add epoch service in prover (#1)
* Add epoch service in prover

* Use epoch in prof service
2025-05-22 14:43:58 +02:00
sydhds
9ac1f512a9 Add a proof generation service 2025-05-16 17:01:26 +02:00
sydhds
17579b210b Add grpc web layer 2025-05-16 14:52:27 +02:00
sydhds
c286dca5d5 Add rln benchmarks (computation & serialization) 2025-05-15 16:07:48 +02:00
sydhds
c4bb950fab Add UserRegistry + grpc service limits 2025-05-12 15:09:18 +02:00
sydhds
bba384ad9f Initial code to generate Zk proof and broadcast it to listeners 2025-04-25 18:03:30 +02:00
sydhds
572bfc3455 Initial code 2025-04-25 12:33:09 +02:00