* changed NymConfigTemplate trait to call 'template' by reference
* network requester lib
* introduced generic parameter to 'MixTrafficController' to allow non-remote gateways
* allowing for custom gateway sender
* types cleanup
* minor gateway cmds refactor + initial NR work
* wip
* running a NR inside gateway
note: this NR isnt tied to the gateway yet
* rebase fixes
* propagating same shutdown handle
* wip
* starting NR with appropriate local transceiver
* fixed premature shutdown
* wiring up PacketRouter
* both ends wired together
* actually working
so much cleanup to do now
* started removing dead code
* wip
* temp: hardcode gateway
* further cleanup
* fixed build of other binaries
* setup-network-requester subcmd
* overriding NR config in gateway init/run
* wip making it wasm-compatible [again]
* refactored 'GatewaySetup'
* clippy and friends
* removed debug code
* rust 1.72 lints
* ensuring local gateway is available + some comments
* correctly putting network requester data in the same underlying details struct
* improved gateway errors
* changed 'network_requester_config' deserialization
* missing clap annotation for 'enabled' flag in 'setup-network-requester' command
* saving config file after 'setup-network-requester'
* removed dead code
* review comments
* make embedded NR wait for gateway to come online (for at most 70min)
* fixed shutdown on successful gateway wait
* updated NR config override
* ability to specify custom TopologyProvider in TopologyRefresher
* topology provider builder method for base client
* ability to take manual control over topology
* wasm fixes
* added topology injection to nym-sdk API
* added examples to nym-sdk and exposed additional helper methods
* fixed all uses of deprecated clap methods
* updated all uses of clap to 4.0
* unified obtaining build information
* moved around the imports
* Moved all nym-api arguments to ApiArgs and simplified parsing
* Using common shutdown signal code
* Using clap for parsing Vec<Url>
* stricter validation of socks5-client arguments
* ibid for the native client
* ibid for the gateway
* ibid for the mixnode
* clippy
* cleaned up MixProcessingError
* Added Error impl to (hopefully) all error enums in the codebase
* Replaced all occurences of error("{0}") with error(transparent)
* Changelog entry
* Add PersistentState
* Save and load state to/from disk
* If in progress, don't continually write the same state
* Fix tests and add serde one
* Update changelog
* Fix clippy
* Save to disk coconut keypair
* Check verification keys of the other signers
* Post verification key to chain
* Add multisig propose/vote for vks
* Execute the proposal
* Parse announce address argument
* Gateway uses chain data
* Network requester uses chain data
* Native&socks5 clients use chain data
* Credential client signature uses chain data
* Remove redundant api endpoints
* Undo debugging logging
* Fix some tests
* Fix clippy
* Fix wasm client and contract test
* More contract clippy
* Update CHANGELOG
* Use a bigger expiry period then the testing one
* Setup with 1 epoch and full test that skips key update
* Remove a bunch of epoch code
* Remove unnecessary map from one element vector
* Remove tau, epoch and lambda_t
* Removed lambda_t completely
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Clients use env
* Explorer api uses env
* Mainnet and qa env files
* Set CONFIGURED on the mainnet defaulting
* Gateway uses env
* Mixnode uses env
* Wallet error simplification
* Network requester takes only mainnet client address
* Validator api uses env
* Mixnet contract uses denom from instantiate
* Vesting contract uses denom from instantiate
* More contract test refactoring
* Coconut bandwidth contract uses denom from instantiate
* Bandwidth claim contract uses denom from instantiate and remove from Cargos
* More remove from Cargos and one missed DEFAULT_NETWORK
* Refactor some other missed places
* Minor fixes
* Test and clippy fixes
* Update CHANGELOG
* Added abci::Data field to ExecuteResult
* optional serde support for ed25519 keys
* optional serde support for x25519 keys
* actually calling dotenv at validator API startup
* Added STATE_DENOM network specific constant
* unit test fixes
* Work in progress NIDKG
* Encryption of multiple shares
* Extracted baby-step giant-step lookup table as a separate entity
* Proof of discrete log
* Adjusted discrete log domainn
* Producing proof of log during keygen
* Zeroize for epoch
* Proof of secret sharing
* empty main for compiler appeasement
* Construction of proof of chunking
* Initial untested verification of proof of chunking
* Converted chunk responses from Scalar to u64
* Additional tests for proof of chunking
* Minor cleanup and reorganisation
* Fixed enc/dec to use f0
* Deriving node coverage of required tree nodes
* Finally seemingnly working encryption under nonzero epoch
* Branch park
* Decryption key updates to specified epochs
* Ciphertext integrity checks
* Progress in integration tests
* Fixed ciphertext combining and integration test
* Dealing type and simplification of the integration test
* Benchmark for creation of baby-step-giant-step lookup table
* Initial import cleanup + broken 2nd integration test
* Using correct assertions in the integration test (and correctly combining shares)
* Removed unused modules
* Changed proof of sharing to allow for node indices being different from [1,2,...n]
* Reorganised bte module
* Benchmark for g2 precomputation
* Created more strongly typed Epoch type
which is essentially a Tau such that it is a leaf node
* Extending tau with a temporary oracle output
* Using random oracle for tau extension
* More benchmarks!
* encryption-related benchmarks
* Serialization of PublicKeyWithProof
* Typos
* Removed any changes made in validator-api or smart contracts
* Made the integration test slightly more concise
* Further purge of unused modules
* Fixed combining share to use lagrangian interpolation
* Recovery of verification keys from the dealings
* Verification key verification + extended integration tests
* Fixed Tau not being included in digest for producing Tau_h
* Tau serialization
* Serialization of a BTE Node
* Serialization of DecryptionKey
* Serialization of PublicCoefficients
* Utility method for setting constant coefficient of a polynomial
* Serialization of Ciphertexts
* Serialization of Proof of Secret Sharing
* Serialization of Proof of Chunking
* Serialization of Dealing
* Adjusted capacity of responses_r in proof of chunking
* Made notation more consistent with the paper equivalents
* Optional arguments for creating/verifying resharing dealings
By attaching network defaults to the selector enum, we can get them
either from DEFAULT_NETWORK or a selector passed as a dependency.
Hopefully this opens up some venues for being able to toggle between
networks at runtime.
* Fix clippy on relevant lints
return_self_not_must_use still produces errors, but that will be
auto-fixed once the change to move it to pedantic is released to beta
channel
* Run fmt
* Moving sign_text method into common/crypto to dry it up
* Moved bech32 address validation into common/crypto
* ibid
* Gateway now requires a --wallet-address arg on init
* Add Makefile to make running all checks easier locally
* Different workshare calculation for active vs rewarded set
* Rework omega calculation, update tests
* Remove ZERO const
* unym -> DENOM
Co-authored-by: Drazen Urch <durch@users.noreply.guthub.com>
* Base58 representation of ed25519 signature
* Helper for verifying ed25519 signature on sender address
* Signature verification for gateway bonding
* Signature verification for mixnode bonding
* Added owner signatures for bonding in vesting contract
* Fixed choosing mixnode layer test
* Added owner signature fields to nymd client for bonding
* 'Updated' tauri wallet with new bond requirements
* Mixnode sign command with extra address validation
* Sign command for the gateway
* Signing own gateway's address derived with known mnemonic in not(coconut) case
* Fixed imports post-merge
* Update hmac and blake3
* Remain paranoid for `0.*` crates
* Most paranoid versions :)
* Updated aes and using published version of blake3
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>