* split up coconut module a bit
* internal tool for watching dkg state and updating group contract
* debug dkg state
* display past dealer data
* improved EpochState Display impl
* display contract errors + advance epoch state
* check admin
* panic handler
* simplify app.rs
* split action enum
* added new tab with logger information
* new dealing display
* sort by index
* [fixedup] wip: updating epoch issued credentials - OG 92ade10384a6d7b6c6c222d2e29d69d3b3446a4c
* storing and signing partial blinded credentials
* starting cleanup
* fixed coconut tests + clippy
* fixed nym-api tests
* removed dkg-manager tool
it was moved to a different branch
* implemented remaining endpoints
* unit tests + bug fixes
* clippy
* added persistent identity keys to nym-api
theyre not yet announced - this will be in another PR
* cargo fmt
* clippy
* fixed loading of old configs without storage paths set
* added additional logs for blind-sign endpoint
* fixed up licenses
* lowercasing error variants
* changed 'issued_credentials' to a post
* added minimal client support
* fixed the unit test
* Squashing all the changes
initial router
started expanding the API
initial empty openapi/swagger
populated build-info endpoint
wip: populating rest of swagger
missing swagger data + using closure capture for immutable state
running the api as a proper task in gateway 'run'
fixing some version/feature clashes
refactored routes structures
initial host information endpoint
expanded on gateway-related endpoints
signing host information
moved all models to separate crate
unified http api client
routes unification + node api client
new generic cache and refresher
nym-api caching node self described information
removed old cache type
temporarily wired up NymContractCache to NodeDescriptionProvider
caching self reported host info
clients using self-described gateway information
fixed request timeouts for wasm
fixed wasm builds
post rebase fixes
cargo fmt
brought in wg routes into nym-node router
added ErrorResponse for wireguard routes
basic swagger support for wg endpoints
turns out swagger can be happy with strongly typed requests
output type support for wg routes
using concrete error type for nym node request error
fixed the registration test
landing page configurability
increased configurability
fixed build and lints of other crates
added default user-agent to http-api-client
reduced severity of gateway details lookup failure
changed default http port from 80 to 8080
nym-api using new default port for queries
added health endpoint
nym-api trying multiple ports for the client
using camelcase for node status
corrected health endpoint description
restored and revamped 'force_tls' flag to filter all gateways that support the wss protocol
fixed 'pub_key' path param in open api schema
derived Debug on 'NymNodeDescription'
ensuring valid public ips
added init and run flags to set hostname and public ips
fixed listening address being pushed to public ip
fixed the positional local flag
logging remote ip address of the request
updated helper function to query for described gateways
enabled tls in gateway client
removed hack-opts from mix fetch
additional changes after rebasing against origin/develop
* clippy
* wasm-related target locking
* more clippy, but this time in tests
* 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