* Preserve information about original transmission lanes when buffering reply packets
* Attempting to send partial data in 'handle_send_reply' if we don't have enough surbs immediately
* Display logging of reply surb request target
* promoted reply_controller to a directory
* moved channels and messages to separate file
* simplifications due to rust 1.66
* Using a shoarthand for obtaining connection_id
* made TransmissionBuffer generic
* Moved transmissaion buffer to a higher level directory + defined wasm helpers
* Using transmission buffer in reply controller
* Using the pending replies size in lane lenghts queries
* fixed an out of bounds use of fragments
* Fixed dropped channel in getting lane queue length
* Fixed an edge case failure for reply retransmissions
* measuring (and logging) time it takes to obtain lane lenghts
* decreased logging level
* Removed non-wasm lock on total_size
* Renaming validator-api to nym-api
* nym-api: simplified crate name
* Added nym-api rename to changelog
* Changed some output messages
* Renamed validator-api-requests to nym-api requests
* Removing more references to validator-api-requests
* Additional lockfile name changes after full build
* Removing mistakenly added merge files
* ibid
* ibid
* Getting rid of ref to validator_api deep inside validator-client
* Fixing file storage paths
* Renaming struct function names referring to validator_api
* Simplifying struct init
* Fixed up all other instances of nym_api.
* Renaming validatorApi to nymApi in TypeScript client for consistency
v
* Found a few more Rust instances
* Changed examples in TypeScript SDK
* Found one more instance of the use of validator instead of nym apis
* Aliasing config key name for deserialization to preserve compatibility with old configs
* Feature/multi surbs (#1796)
* bunch of wip with focus on serialization
* Being able to send normal data (NO SURBS yet) to yourself again
* Fixed RepliableMessage deserialization
* Recovering data from surb messages
* Extracted common code in sphinx payload construction
* Cleanup within received buffer
* requesting, sending and using additional reply surbs
* Following discussion with @simonwicky, removing sender proof and decreasing size of sender tag
* Made sender tag more easily configurable
* Refactoring of message creation
* Propagating reply surb acks but not retransmitting them yet
* Surb retransmissions
* requesting additional surbs from the retransmission flow
* correctly determining the point of requesting additional surbs
* Ability to use socks5 (and network requester) with surbs
* Improved surbs retranmsission reliability
* naive way of not over-requesting surbs
* wip on tag storage
* Improved error propagation for message construction
* Requesting more surbs for stale entries
* Better controlling the point of having to request additional surbs
* Using pseudorandom sender tag instead of a hardcoded one
* First cleanup round in MessageHandler
* Error cleanup and if simplification
* Assigned a more permanent name to the ReplyController
* Removed PendingReply redundant type
* Made socks5 client less eager to over-send reply surbs
* 'anonymous' field on socks5 client to decide whether to use surbs or attach address
* Dead code and import removal in client-core
* Updating ClientRequest variants
* Adjusted decision threshold for requesting more surbs
* Native client cleanup
* Made socks5 client usage of surbs configurable
* Restored statistics in network requester
* Validator-api compiles once again
* Further improved surb request logic
* boxing the recipient in controller requests
* Removal of hardcoded values in favour of propagating them from the config
* more validation during surb requests
* Fixed ClientRequest::Send deserialization
* Added length checks for request deserialization
* post-merge formatting
* Unit tests once again compile and pass
* controlling retransmission_reply_surb_request_size from config
* More Recipient boxing action
* Requesting additional reply surbs for retransmission BEFORE dipping below the threshold
* Making clippy generally happier
* Wasm client compiles (but might not yet work correctly)
* Feature/use expect instead of panicking (#1797)
* Implementation of 'Debug' on 'RealMessage'
* expect with failed channel name instead of throwing empty panics
* Introduced Debug trait constraint in ProxyRunner
* Derive Debug for socks5_requests::Message
* Fix decrypting stored received msg (#1786)
* Fix decrypting stored received msg
* rustfmt
* Moving binary message recovery to separate function
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* real_traffic_stream: reduce frequency of status print (#1794)
* Properly defined unnamed errors
* Dealing with previously ignored errors
* logging improvements
* Removed old example code
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* Missing changelog entry for multi-surbs (#1802)
* Making anonymous sender tag human readable (#1801)
* Created wrapper with string serialization for AnonymousSenderTag
* Using Display implementation of AnonymousSenderTag for logs
* Using Display implementation of MessageRecoveryError when logging (#1803)
* Using Display implementation of MessageRecoveryError when logging
* Updated changelog
* Defined socks5 client startup flag to enable reply-surb communication (#1804)
* Feature/persistent surbs data (#1835)
* prototyping wip
* Implemented ReplyStorageBackend trait for the sql-backed storage
* Storing correct surb threshold
* using correct database path
* Starting surb persistent storage in native and socks5 clients
* loading or creating fresh surb storage in socks5 and native clients
* making clippy happier + fixing config templates
* Creating status table on database rotation
* Completed the 'Empty' ReplyStorageBackend
* feature locking wasm-incompatible bits and pieces
* Feature/develop resync (#1844)
* Network-requester: throttle inbound connections (#1789)
* Return and handle ClientRequest::LaneQueueLenghts
* Pass lane queue lengths to inbound future
* Remove unused self reference
* Request lane queue lengths periodically for all open connections
* Add timeouts
* Rename to ConnectionCommandSender and Receiver
* Rename to client_connection_tx/rx
* Fix wasm build
* Replace bool with enum
* rust: bump required version to 1.65 in some crates that need it
* Add step to release GH actions (#1792)
* feat: add a release step to nym contracts GH action
* feat: add shrinking the size of wasm
* Possibilty to change gateway ws listener (#1779)
* add: set gatewayListener
* Update types.ts
* Update worker.ts
* Update contracts-build.yml
* real_traffic_stream: reduce frequency of status print (#1794)
* Update wallet and connect lock files (#1793)
* client-core: add warning when delay multiplier is larger than 1
* Fix decrypting stored received msg (#1786)
* Fix decrypting stored received msg
* rustfmt
* Moving binary message recovery to separate function
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Feature/use expect instead of panicking (#1797)
* Implementation of 'Debug' on 'RealMessage'
* expect with failed channel name instead of throwing empty panics
* Introduced Debug trait constraint in ProxyRunner
* Derive Debug for socks5_requests::Message
* Make connection_id optional in ClientRequest::Send (#1798)
* changelog: add missing entry for fixing message decrypt in gateway-client
* websocket-requests: fix length check before deserialize (#1799)
* Fix export dkg contract addr (#1800)
* Export dkg contract for mainnet when no config file present
* Remove redundant env files
* nym-cli: improve error reporting/handling and changed `vesting-schedule` queries to use query client instead of signing client
* Feature/gateway client protocol version (#1795)
* Introducing concept of gateway protocol version
* Remove version-based gateway filtering
* Fixed the unit test
* grammar
* Set build on latest release on schedule event
* Added nightly build workflow on second latest release
* socks5: if any task panics, signal all other tasks to shutdown (#1805)
* socks5: signal shutdown on error
* Mark as success
* Tidy
* Reduce wait to 5 sec
* Replace unwrap with expect
* Two more unwraps
* Update changelog
* client-core: less frequent status logging (#1806)
* Feature/nym connect UI updates (#1784)
* create custom titlebar
* create help page
* create generic modal component
* create separate connection time component
* link to shipyard docs
* move timer to separate component and update connection status component usage
* use separate component for copying ip and port details
* only show infomodal once after connection
* set service provider on tauri side
* Emit events when stopped
* listen and unlisten for tauri events
* connect: add trace log to get_services
* Add back CI notifications
* Update README
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
* Use default serde value for upgrade (#1807)
* fix ui overflow bug (#1808)
* update nym connect error text (#1809)
* set flag to false
* Fix wait_for_signal_and_error on win (#1811)
* Add socks5-client changes to nym-connect changelog
* Fix links in nym-connect changelog
* More entries in nym-connect CHANGELOG
* Fix typo in changelog
* Update CHANGELOG.md
* Experiment/client refactoring (#1814)
* experimenting with extracting more common client code
* drying up the wasm client
* allowing some dead code for the time being
* fixed formatting in nym-connect
* made socks5 client inside nym-connect immutable
* made clippy a bit happier
* hidden away target locking for recv timeout
* New transactions for increasing amount of pledged tokens
* unit tests
* Added an option to pledge extra tokens through the vesting contract
* Introduced wallet endpoints for new operations
* Using updated pledge cap in the vesting contract
* Bumping version numbers
* Changelog for v1.1.1
* Bumping final version numbers for 1.1.1
* Bumping nym-cli version, missed it last time
* socks5-client: SOCKS4a support (#1822)
* socks5-client: SOCKS4a support
* Tidy
* Fix a few errors in socks5 client and network-requester (#1823)
* Fix two unwraps in socks5 and network-requester
* Make sure client task never sends shutdown signal
* Fix panic on getting socks version
* wip
* connecting to the back and making the requests work
* display details modal
* logs removal
* Feature/pledge more (#1679)
* New transactions for increasing amount of pledged tokens
* unit tests
* Added an option to pledge extra tokens through the vesting contract
* Introduced wallet endpoints for new operations
* Using updated pledge cap in the vesting contract
* Changelog update
* nym-connect: update lock file
* avoid mix tokens pools
* amount error
* envs/mainnet: update to latest mixnet contract and nymd validator url
* validator-api: add missing shortform for --config-env-file (#1830)
* gateway-client: handle shutdown listener (#1829)
* WIP
* WIP: try another approach
* WIP
* Reworked
* Tidy
* fix
* validator-api: remove storage dependency in contract cache (#1685)
* validator-api: remove storage dependency in contract cache
* validator-client: update detailed routes
* contract_cache: forward to new endpoints for compat
* Move reward_estimate
* client: add --no-cover and update --fastmode (#1831)
* adding a oversaturaded bonding more modal
* common/task: extract out spawn_with_report_error (#1837)
* stop panic on failed buffer request
* Compilable wasm client
* Enabled hard error on lack of gateway-client protocol version
* Missing generic parameter for ClientCoreError in BackendError
* Removed unused imports
* Additional wasm feature locking
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Fran Arbanas <arbanasfran@gmail.com>
Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
Co-authored-by: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
Co-authored-by: Raphaël Walther <raphael@nymtech.net>
Co-authored-by: Fouad <fmtabbara@hotmail.co.uk>
Co-authored-by: Gala <calero.vg@gmail.com>
Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
* Making native client wait for shutdown
* Marking dead test code
* Feature/multi surbs invalidation (#1858)
* Cleaned up RealMessagesController constructor
* introduced config field for maximum_reply_surb_age
* Handling edge-case reply-surb failures
* invalidating old reply surbs
* Removing old reply keys from cache
* Invalidating old reply keys
* missing config changes
* logging created tag details
* Fixed clippy warning in test code
* Saving reply key timestamp on data flush (#1867)
* Remove panic if ReconstructedMessagesReceiver is closed (#1868)
Instead log error and return because presumably the shutdown procedure has started
* Feature/multi surbs basic wasm interface (#1846)
* Added builder to wasm client
* missing wasm_bindgen macros
* Added constructor macro on GatewayEndpointConfig
* Attempting to use updated wasm client api
* Removing dead code
* Exposed other messages types in wasm client
* cleanup in js-example
* Changed 'self_address' to be a method call
* Removed needless borrow when cloning an Arc
* Improving arguments in 'on_message' callback
* fixed wasm-client dependency/features
* Reverted hard requirement for gateway protocol presence (#1875)
* Feature/prioritise surb retransmission (#1883)
* Improved error messages + removed redundant variants
* Improved estimation of 'expected_forward_delay'
* Removed old wasm-specific startup code
* Removed old unused reply-related code
* hacky and temporary way of buffering retransmission data
* offloading retransmission reply handling to ReplyController
* fixed linter errors + rebuffering retransmission data on failure
* Removed unused fields from wasm client debug config
* Chore/v1.2.0 update (#2666)
* Network-requester: throttle inbound connections (#1789)
* Return and handle ClientRequest::LaneQueueLenghts
* Pass lane queue lengths to inbound future
* Remove unused self reference
* Request lane queue lengths periodically for all open connections
* Add timeouts
* Rename to ConnectionCommandSender and Receiver
* Rename to client_connection_tx/rx
* Fix wasm build
* Replace bool with enum
* rust: bump required version to 1.65 in some crates that need it
* Add step to release GH actions (#1792)
* feat: add a release step to nym contracts GH action
* feat: add shrinking the size of wasm
* Possibilty to change gateway ws listener (#1779)
* add: set gatewayListener
* Update types.ts
* Update worker.ts
* Update contracts-build.yml
* real_traffic_stream: reduce frequency of status print (#1794)
* Update wallet and connect lock files (#1793)
* client-core: add warning when delay multiplier is larger than 1
* Fix decrypting stored received msg (#1786)
* Fix decrypting stored received msg
* rustfmt
* Moving binary message recovery to separate function
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Feature/use expect instead of panicking (#1797)
* Implementation of 'Debug' on 'RealMessage'
* expect with failed channel name instead of throwing empty panics
* Introduced Debug trait constraint in ProxyRunner
* Derive Debug for socks5_requests::Message
* Make connection_id optional in ClientRequest::Send (#1798)
* changelog: add missing entry for fixing message decrypt in gateway-client
* websocket-requests: fix length check before deserialize (#1799)
* Fix export dkg contract addr (#1800)
* Export dkg contract for mainnet when no config file present
* Remove redundant env files
* nym-cli: improve error reporting/handling and changed `vesting-schedule` queries to use query client instead of signing client
* Feature/gateway client protocol version (#1795)
* Introducing concept of gateway protocol version
* Remove version-based gateway filtering
* Fixed the unit test
* grammar
* Set build on latest release on schedule event
* feat(wallet): buy page bootstrap
* feat(wallet-buy): tutorial
* feat(explorer-api): add route to fetch nym terms&cdts
* Revert "feat(explorer-api): add route to fetch nym terms&cdts"
This reverts commit 876f752697d89061b1904e1ddd1d5bcb7045dc5c.
* feat(wallet-buy-nym): buy page new ui
* fix(wallet-buy-nym): signature output
* feat(wallet-buy-nym): update signature modal ui
* Added nightly build workflow on second latest release
* socks5: if any task panics, signal all other tasks to shutdown (#1805)
* socks5: signal shutdown on error
* Mark as success
* Tidy
* Reduce wait to 5 sec
* Replace unwrap with expect
* Two more unwraps
* Update changelog
* client-core: less frequent status logging (#1806)
* Feature/nym connect UI updates (#1784)
* create custom titlebar
* create help page
* create generic modal component
* create separate connection time component
* link to shipyard docs
* move timer to separate component and update connection status component usage
* use separate component for copying ip and port details
* only show infomodal once after connection
* set service provider on tauri side
* Emit events when stopped
* listen and unlisten for tauri events
* connect: add trace log to get_services
* Add back CI notifications
* Update README
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
* Use default serde value for upgrade (#1807)
* fix ui overflow bug (#1808)
* feat(wallet): add link to nym exchange interface
* update nym connect error text (#1809)
* refactor(wallet): clean code
* set flag to false
* Fix wait_for_signal_and_error on win (#1811)
* Use config URLs in clients before the env values (#1813)
* Add socks5-client changes to nym-connect changelog
* Fix links in nym-connect changelog
* More entries in nym-connect CHANGELOG
* Fix typo in changelog
* Update CHANGELOG.md
* Experiment/client refactoring (#1814)
* experimenting with extracting more common client code
* drying up the wasm client
* allowing some dead code for the time being
* fixed formatting in nym-connect
* made socks5 client inside nym-connect immutable
* made clippy a bit happier
* hidden away target locking for recv timeout
* New transactions for increasing amount of pledged tokens
* unit tests
* Added an option to pledge extra tokens through the vesting contract
* Introduced wallet endpoints for new operations
* Using updated pledge cap in the vesting contract
* Feature/dkg integration tests (#1815)
* DKG contract e2e test
* Refactor to the same format as other contracts
* Vk share tests
* State tests
* Dealings tests
* Dealer tests
* Api dkg tests
* Fix path to contract after refactor
* Fix test target clippy
* Bumping version numbers
* Changelog for v1.1.1
* Bumping final version numbers for 1.1.1
* Bumping nym-cli version, missed it last time
* socks5-client: SOCKS4a support (#1822)
* socks5-client: SOCKS4a support
* Tidy
* Fix a few errors in socks5 client and network-requester (#1823)
* Fix two unwraps in socks5 and network-requester
* Make sure client task never sends shutdown signal
* Fix panic on getting socks version
* wip
* connecting to the back and making the requests work
* display details modal
* logs removal
* Feature/pledge more (#1679)
* New transactions for increasing amount of pledged tokens
* unit tests
* Added an option to pledge extra tokens through the vesting contract
* Introduced wallet endpoints for new operations
* Using updated pledge cap in the vesting contract
* Changelog update
* Feature/pledge more (#1679)
* New transactions for increasing amount of pledged tokens
* unit tests
* Added an option to pledge extra tokens through the vesting contract
* Introduced wallet endpoints for new operations
* Using updated pledge cap in the vesting contract
* Changelog update
* Fix a few errors in socks5 client and network-requester (backport) (#1824)
* Fix two unwraps in socks5 and network-requester
* Make sure client task never sends shutdown signal
* nym-connect: update lock file
* fix(wallet): typo
* avoid mix tokens pools
* fix(wallet): typo
* fix(wallet): buy tutorial ui responsivness
* amount error
* envs/mainnet: update to latest mixnet contract and nymd validator url
* validator-api: add missing shortform for --config-env-file (#1830)
* gateway-client: handle shutdown listener (#1829)
* WIP
* WIP: try another approach
* WIP
* Reworked
* Tidy
* fix
* validator-api: remove storage dependency in contract cache (#1685)
* validator-api: remove storage dependency in contract cache
* validator-client: update detailed routes
* contract_cache: forward to new endpoints for compat
* Move reward_estimate
* Node family management (#1670)
* Family management messages
* Add family queries
* Add queries to client
* Layer assignment message
* Paged family queries, annotate mixnodes with family
* Add layer assignments to epoch operations
* Remove family layer peristence
* Add NotImplemented error for kick
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Fixed layer distribution skewness check (#1766)
* client: add --no-cover and update --fastmode (#1831)
* adding a oversaturaded bonding more modal
* Use better naming on gateway credential handling (#1834)
* Fix comment in configuration file (#1836)
* common/task: extract out spawn_with_report_error (#1837)
* nym-connect/changelog: add note about disconnect fix
* Feature/simplify credential binary (#1841)
* Expose name of standard directories
* Use one command instead of two
* nym-connect: append error to failed message (#1839)
* nym-connect: append error to failed message
* changelog: add note
* Fix clippy
* remove extra checks to display vesting schedule(#1826)
* Set explorer to use rpc.nymtech.net
* update versions for platfrom, nym-connect and nym-wallet to v1.1.2
* changed nym-connect version to 1.1.1
* Modifying changelog for v1.1.2
* changed nym-connect version to 1.1.2
* update nym-connect CHANGELOG
* Updated changelog for wallet
* Feature/wallet content updates (#1825)
* fix up balance screen
* fix up app bar and nym logo alignment
* fix up delegation action icon font weight
* fix up bond page
* Corrected env variable name in workflows
* Use config URLs in clients before the env values (#1813)
* Feature/dkg integration tests (#1815)
* DKG contract e2e test
* Refactor to the same format as other contracts
* Vk share tests
* State tests
* Dealings tests
* Dealer tests
* Api dkg tests
* Fix path to contract after refactor
* Fix test target clippy
* Node family management (#1670)
* Family management messages
* Add family queries
* Add queries to client
* Layer assignment message
* Paged family queries, annotate mixnodes with family
* Add layer assignments to epoch operations
* Remove family layer peristence
* Add NotImplemented error for kick
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Fixed layer distribution skewness check (#1766)
* Use better naming on gateway credential handling (#1834)
* Fix comment in configuration file (#1836)
* nym-connect/changelog: add note about disconnect fix
* Feature/simplify credential binary (#1841)
* Expose name of standard directories
* Use one command instead of two
* Fix clippy
* feat(wallet): buy page bootstrap
* feat(wallet-buy): tutorial
* feat(explorer-api): add route to fetch nym terms&cdts
* Revert "feat(explorer-api): add route to fetch nym terms&cdts"
This reverts commit 876f752697d89061b1904e1ddd1d5bcb7045dc5c.
* feat(wallet-buy-nym): buy page new ui
* fix(wallet-buy-nym): signature output
* feat(wallet-buy-nym): update signature modal ui
* feat(wallet): add link to nym exchange interface
* refactor(wallet): clean code
* fix(wallet): typo
* fix(wallet): typo
* fix(wallet): buy tutorial ui responsivness
* update versions for platfrom, nym-connect and nym-wallet to v1.1.2
* changed nym-connect version to 1.1.1
* Modifying changelog for v1.1.2
* changed nym-connect version to 1.1.2
* update nym-connect CHANGELOG
* Updated changelog for wallet
* Resolve merge conflicts
* Update qa-qwerty.env
* Fixed URL to branch
* changed ubuntu-latest on GH actions to ubuntu-20.04
* docs: updated changelog for contracts release v1.1.2 and updated versions of mixnet and vesting contracts as well
* Add ignore to dkg expensive tests (#1856)
* introduce minimize button in custom title bar (#1843)
* refresh balance after sending tokens (#1857)
* Feature/fix client multi cred consume (#1859)
* Mark consumed credentials in the db
* Add signature log
* Fix wasm mock Storage trait
* Fix clippy
* Feature/verify bte proof (#1866)
* Update lock file
* Include bte public key verification
* Wallet - Buy, copy changes (#1855)
* use mix_id for account to get correct pending cost event (#1869)
* use mix_id for account to get correct pending cost event
* Properly add consumed to table (#1870)
* nym-connect: update Cargo.lock to 1.1.2
* Clients: save init results to JSON (#1865)
* clients: output results of init to json
* Remove leftover dbg
* Tidy
* Fix nym-connect
* Client: dedup setup gateway during init (#1871)
* clients: dedup gateway setup logic
* nym-connect: extract out print_save_config
* Feature/dkg state to disk (#1872)
* 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
* network-requester: return error on socket close (#1876)
* network-requester: return error when the socket closes
* changelog: add note
* clients: further deduplicate init code (#1873)
* client-core: move init helpers to module
* WIP
* socks5: return error instead of terminate in init
* Extract out reuse_existing_gateway_config
* rustfmt
* Remove comment out code
* nym-connect: use setup_gateway
* Linebreak
* changelog: update
* Tweak log
* rustfmt
* client: pick from old lanes probabilisticlly (#1877)
* Pick from old lanes probabilisticly
* changelog: update
* clients: dont panic in base client gateway client handling (#1878)
* client-core: fix some panics related to gateway-client
* changelog: update
* fix
* changelog: fix wording
* Use default mainnet values when nothing is specified (#1884)
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Fran Arbanas <arbanasfran@gmail.com>
Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
Co-authored-by: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
Co-authored-by: Raphaël Walther <raphael@nymtech.net>
Co-authored-by: pierre <dommerc.pierre@gmail.com>
Co-authored-by: Fouad <fmtabbara@hotmail.co.uk>
Co-authored-by: Gala <calero.vg@gmail.com>
Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
Co-authored-by: Drazen Urch <drazen@urch.eu>
Co-authored-by: durch <durch@users.noreply.github.com>
Co-authored-by: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Fran Arbanas <arbanasfran@gmail.com>
Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
Co-authored-by: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
Co-authored-by: Raphaël Walther <raphael@nymtech.net>
Co-authored-by: Fouad <fmtabbara@hotmail.co.uk>
Co-authored-by: Gala <calero.vg@gmail.com>
Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
Co-authored-by: pierre <dommerc.pierre@gmail.com>
Co-authored-by: Drazen Urch <drazen@urch.eu>
Co-authored-by: durch <durch@users.noreply.github.com>
Co-authored-by: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
* experimenting with extracting more common client code
* drying up the wasm client
* allowing some dead code for the time being
* fixed formatting in nym-connect
* made socks5 client inside nym-connect immutable
* made clippy a bit happier
* hidden away target locking for recv timeout
* Implementation of 'Debug' on 'RealMessage'
* expect with failed channel name instead of throwing empty panics
* Introduced Debug trait constraint in ProxyRunner
* Derive Debug for socks5_requests::Message
* Return and handle ClientRequest::LaneQueueLenghts
* Pass lane queue lengths to inbound future
* Remove unused self reference
* Request lane queue lengths periodically for all open connections
* Add timeouts
* Rename to ConnectionCommandSender and Receiver
* Rename to client_connection_tx/rx
* Fix wasm build
* Replace bool with enum
* 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
* WIP: QA network details
* Initial implementation to multiplex socks5-client sends
* Introduce TransmissionLane enum
* WIP
* WIP: client requests connection id
* WIP
* mulitplex somewhat done
* Remove closed lanes
* WIP: connection handling over ws
* Remove unused published active connections shared data
* Start on status timer
* Max number of connections, and prune
* Some tidy
* Remove commented out code and tweak log
* Tidy
* Tweak log output
* Rename to TransmissionBuffer
* Use number of msg sent instead of time to rank age of lanes
* Create client-connections crate
* Remove waker call that probably are not needed
* Extract out some types from real traffic stream module
* Revert to develop qa.env
* Tweak comments, tidy for getting ready to merge
* Update changelog
* wasm client compile fixes
* rustfmt
* client: add error type to native client, and start handling them
* client: handle two more error cases
* changelog: add note
* socks5: add error type and start handle run errors
* network-requester: add some error types
* rustfmt
* changelog: update note
* network-requester: remove unused import
* Rename to ExtendedPacketSize32
* Add two more extended packet sizes
* Update config handling for new packet sizes
* Update wasm-client
* Changelog: update
* wasm-client: fix ref
* Switch use enum instead of string for config
* Compiles but runtime time fails
* wip
* Beginning of clean-up - creation of config to keep things together
* Removed unused module
* Removed hardcoded constants
* Easier way of sending binary messages
* WIP cleanup before machine switch
* Upgrade wasm-bindgen to 0.2.83
* Fixed compilation warnings for wasm client
* all clients compiling without warnings
* disabling topology refresh in wasm
* Added a config option to disable loop cover traffic stream
* config changes
* Make webassembly work in a web worker
- `wasm-timer` modified to work in web worker
- add worker target to webpack
- add client to call from HTML
- update README to build WASM for bundling (this does not build ES modules)
* Restored topology refreshing
* correctly polling items in the wasm delay_queue
* Allow client to read up to 8 messages at once from gateway connection (#1669)
* Allow client to read up to 8 messages at once from gateway connection
* Importing tokio::select in wasm32 target
* Updated changelog
* missing imports
* Introduced disable_main_poisson_packet_distribution to force real_traffic_stream to disable poisson sending (#1664)
* Introduced disable_main_poisson_packet_distribution to force real_traffic_stream to disable poisson sending
* Updated changelog
* Adjusting default settings
* Introduced a client-configurable option to force it to use extended packet size
* local adjustments
* Removed warning associated with receiving extended packets
* Minimal v2-required changes
* Updated changelog
* explicitly allowing clippy drop_non_drop
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
* Introduced a client-configurable option to force it to use extended packet size
* cargo fmt
* Removed warning associated with receiving extended packets
* Updated changelog
* Import cw3-flex-multisig and cw4-group contracts
* Add release_funds to coconut-bandwidth-contract
* Create contract.rs file
* Add cw multi test and a test that uses it
* Use mnemonic for coconut mode too
* Stricter access to config file, which contains mnemonic
* Update tests
* Remove signed deposits dir after merging that into sql db
* Clippy nits
* More clippy
* Remove backtraces features to pass clippy tests
* Merge the same mnemonic for rewarding and coconut
* Simplify things, letting network monitor use testnet-mode with gateways
* Unify the nymd clients
* Sqlx common storage for buying/consuming credentials
* Link credential storage to credential client
* Trigger rewarded_set update on bootstrap error
* Fix bug on message signing
* Simplify coconut feature in code and set it in validator-api
* Update some local consts
* Link clients to credential storage
* Simplify sql query and change socks5 too
* Update attr handling such that public ones are usable
* Normalize test addresses
* Fix clippy
* Merge storages for (non)coconut creds
* Fmt miss
* Disable wasm client support for now
Co-authored-by: durch <durch@users.noreply.github.com>
* Save gateway owner for later use in erc20 bandwidth request
* Pass owner in network monitor
* Switch to variable length owner address
* Add erc20 bridge contract in validator client
* Check bandwidth credential refers to gateway
* Check the owner of the gateway from the eth event
* Fix wasm client
* Hack to avoid unused warning on coconut path
* Hacked, one-time payment
* Remove print
* Update arg format
* Fix token check
* Fix native template
* Use utokens instead of full token
... when talking to eth
* Fix parse event for new field
* Fix socks5 template
* Add estimation of gas call
* Make fs backup more reliable
* Fix clippy
* Fix unused import
* Update waiting time
* Remove defaults from run, as it they should be set on init
* Remove debugging prints
* Replaced unwrap with error
* Fix build
* Make eth contract address dependent of network
* Use tokio for sleep
* Add approve before spending token on bandwidth
* Put bandwidth claim only at the beginning of the process
* Removed outdated constant
* ClaimFreeTestnetBandwidth ClientControlRequest
* Configuration option for the testnet mode in gateway
* Made testnet mode deserialize to default value if not present
* Fixed testnet mode override
* Testnet config options for clients and validator api
* Changed error message for when gateway is not using testnet mode
* Incorporated testnet mode into gateway client
* Activating testnet mode based on config values
* Allowing clippy warnings
* Fixed use of moved value in wasm build
Co-authored-by: Bogdan-Ștefan Neacșu <bogdan@nymtech.net>
* Remove check for bandwidth for incoming packets
We should only accunt for packets that the client inputs to the mixnet
* Introduce BandwidthController for both types of bandwidth creds
* Add some non-coconut token bandwidth handling
* Use thiserror for gateway-client lib
* Add error handling
* Unable to build for wasm for now
* Fix wasm strange error
* Disable non-coconut credentials for wasm client
* Check for status and throw the error up
* Send encrypted token cred from client
* Gateway receive message and signature validation
* Put the correct amount of tokens that were burned
* [ci skip] Generate TS types
* Eth endpoint and secret key as config parameters
* Add eth_endpoint config argument for gateway
* Update test as well
* Separate panicable code from the safe one
* Move some bandwidth controller panics up the call stack
* Save contract corresponding to the eth endpoint
* Fix template
* Pass the web3 interface as well
* Made event reads possible in gateway
* Add checks for event data
* Cosmos contract for double spending prevention
* Add workflow for the new contract
* Add validator rest URL to config
* Rename eth_events to erc20_bridge
* Pass cosmos mnemonic as well, and put the nymd client in ERC20Bridge
* Call cosmos contract for final verification
* Ask for config parameters in cli
* Fix various stuff
* Increase timeout to allow gateway to check the two chains
* Put some logs for the new flow
* Set consumed bandwidth invariantly of coconut feature
* Fix clippy error
* Add non-coconut checks
* Use 2018 rust instead of 2021
* More verbose nymd error
* Explicitly specify TOKENS_TO_BURN constant
* Put eth burn function in a constant
* Replace to_vec & append with iter & chain
* Test for (de)serialization of TokenCredential
* Minor rename
* Separate credential creation from bandwidth claiming
* Switch from panics to errors when claiming coconut bandwidth
* Another append changed to chain
* Update QA cosmos contract address
* Simplify build/test/clippy separation on coconut feature
* Fix bad features arg positioning
* Use the start_after in cosmos contract query
* Set a limit in line with a range on cosmos queries
* Added unit tests for new cosmos contract
* Fix bandwidth_remaining comparation
* Get remaining bandwidth from gateway
* Add contract build flag
* Add a useful info log
* Use a more robust eth depth for release builds
* Include recipt logs in error message
* Fix clippy for tests
* Use Arc instead of clone
* Rename as_bytes to to_bytes
* Make signature verification in contract more verbose
* Missed rename of paging constant
* Fix gateway start with coconut enabled
* Rename function to claim_token
* Simplify nymd client setup
* Check with block buffer on gateway as well
* Update comment of double spending protection
* Correct contract address
* Backup the keypairs used for buying tokens, in case of error cases
* Don't take any chances with the gateway timeout
* [ci skip] Generate TS types
* Updated cosmos contract to latest QA address
* Add cli options for eth
* Update network monitor timeout value as well
Co-authored-by: neacsu <neacsu@users.noreply.github.com>
* 'Coconut' feature in gateway
* Enabled coconut feature in gateway-requests
* Native client coconut feature
* Ibid for socks5 client
* Ibid for wasm client
* Coconut feature flag for validator-api
* Added coconut feature flag to our CI
* build.yml typo
* Continue on windows errors
* Missing quote
* Another typo in build.yml
* Reclaiming disk space when building for windows on CI
* Added separate gateway active set size
* Grabbing contract state
* Defined PartialOrd on MixnodeBond and GatewayBond
* Some initial stub for active set
* Unit tests for mixnode and gateway bond partialord implementation
* Obtaining active sets
* Active nodes routes
* Additional methods on validator client
* Added state migration
* Feature locking unused import
* Fixed State test fixture
* Included block height for partial_ord
* Missing post-merge imports
* api on the client for active nodes
* Native/socks5/wasm clients using active nodes
* Rewarding only active nodes
* Updated validator client StateParams definition
* Gateway active set size
* Contract migration update
* Cargo fmt
* Updated TauriStateParams
* [ci skip] Generate TS types
Co-authored-by: jstuczyn <jstuczyn@users.noreply.github.com>
* Calculating gas fees
* Ability to set custom fees
* Added extra test
* Removed commented code
* Moved all msg types to common contract crate
* Temporarily disabling get_tx method
* Finishing up nymd client API
* Comment fix
* Remaining fee values
* Some cleanup
* Removed needless borrow
* Fixed imports in contract tests
* Moved error types around
* New ValidatorClient
* Experiment with new type of defaults
* Removed dead module
* Dealt with unwrap
* Migrated mixnode to use new validator client
* Migrated gateway to use new validator client
* Mixnode and gateway adjustments
* More exported defaults
* Clients using new validator client
* Fixed mixnode upgrade
* Moved default values to a new crate
* Changed behaviour of validator client features
* Migrated basic functions of validator api
* Updated config + fixed startup
* Fixed wasm client build
* Integration with the explorer api
* Removed tokio dev dependency
* Needless borrow
* Fixex wasm client build
* Fixed tauri client build
* Needless borrows
* Fixed client upgrade print
* Removed redundant comments
* Made note on aggregated verification key into a doc comment
* Removed mixnet contract references from verloc
* Modified default validators structure
* Reformatted validator-api Cargo.toml file
* Removed commented code
* Made the doc comment example a no-run
* Fixed a upgrade print... again
* Adjusted the doc example
* Removed unused import
* Hand coconut issuance off the validator-api
* git to cargo
* Move to own module
* Integrate tauri-client, extract common interface
* cargo fmt
* Ergonomics
* Facelift
* Wrap up tauri client
* Set up publish
* Fix fmt
* Install CI dependencies
* Inline deps
* Remove mac deps
* Add dist dir
* Fix beta clippy nag
* Commit some gateway work
* Thread coconut creds through gateway handshake
* Push in progress patch
* Move State from tauri client to coconut interface
* Move get_aggregated_signature from tauri client to coconut interface
* Move prove_credential from tauri client to coconut interface
* Update sphinx version
* Mount coconut routes and manage config file in rocket
* Split default validator endpoint into host and port
* Add init for simple credential initialization
* Fix common gateway client
* Add coconut cred to webassembly client
* Add coconut cred to socks5 client
* Add coconut cred to native client
* Remove direct coconut-rs dependency
* Use only coconut interface in validator api
* Leave validator-api out of workspace and update Cargo.lock
* Fix clippy warnings and update Cargo.lock after rebase
* Switch from attohttpc to reqwest for async gets
This is not only needed for using async requests, but also because attohttpc
causes OpenSSL issues when cross compiling the webassembly client.
* Replace attohttpc with reqwest for puts too
* Make tauri client commands async
* Fix borrow error
* Guard gateway server code from compiling for wasm (client)
* Fix clippy wasm client
* Fix tests
* Fix clippy in tauri client
* Remove commented code
* Update comment of init message
* Remove unnecessary hex dependency
* Replace config argument with key_pair
* Use `trim()` for whitespace removal
* Move verification key query higher up the function calls
* Put KeyPair instead of Config into rocket's managed items
* Re-enable tauri client verify button
* Move verification key up the function calls for prove_credential
* Use consts for verification_key and blind_sign routes of validator-api
* Replace `match` with `map_err`
* Fix typo
* Remove now unnecessary `Clone` derives
... as config is no longer managed by rocket
* Replace `match` with `map_err`
* Make `InternalSignRequest` really internal to validator-api
* Make `with_keypair` live up to its name
* Update Cargo.lock after rebase
* Replace String error with HandshakeError
* Add CoconutInterfaceError to coconut-interface
* Format the new error in tauri client
* Remove from default, as wasm client doesn't build
* Put public key as init argument...
... for the public attributes of the credential
* Use the hash_to_scalar function to make public key into attribute
Use the function from cli-demo-rs from https://github.com/nymtech/coconut
to make the identity public key into a public attribute.
* Replace vector with array for InitMessage
As we know beforehand the size of the keys, we can use fixed size array
instead of vectors. This eliminates the need for a prefixed length in
the serialized form of the InitMessage structure and enables a easy
deserialization of the remote identity before the actual bincode
deserialization that we do in the handshake process.
Before this, the `extract_remote_identity_from_register_init` function
attempted to deserialize into a public key the length-prefixed public key
received from the client, thus failing sporadically with a `Cannot decompress
Edwards point` error.
* Pass public and private attributes to state `init` instead of PublicKey
* Make tauri call with dummy attributes
* Make clients call with their keypairs
* Revert "Make clients call with their keypairs"
This reverts commit b348f47f7a.
* Put dummy, bandwidth private attribute
Co-authored-by: Bogdan-Ștefan Neacșu <bogdan@nymtech.net>
* Basic storage stub
* New models for new node status api
* Route handling
* Mounting new routes
* Missing selective commit
* Moved network monitor related files to separate package
* Starting to see some sqlx action
* Schema updates
* Log statement upon finished migration
* Removed old diesel related imports
* Converted mixnode cache initialisation into a fairing
* Moved cache related functionalities to separate package
Also defined staging there
* Created run method for validator cache + removed unwrap
* Removed old node-status-api types and left bunch of todo placeholders in their place
* Fixed managing validatorcache
* Status reports are starting to get constructed
* Submitting some dummy results to the database
* Removing duplicate code for generating reports
* Removed statuses older than 48h
* Initial attempt at trying to obtain reports for all active nodes
* Removed duplicates from the full report
* Grabbing uptime history
* Updating historical uptimes of active nodes
* Updated sqlx-data.json
* Removed all placeholder foomp owner values
* Changed Layer serde behaviour for easier usage
* Extended validator api config
* Initial (seems working !) integration with network monitor
* Added database path configuration to config
* Using ValidatorCache in NetworkMonitor
* Flag indicating whether validator cache has been initialised
* Introduced a locla-only route for reward script to perform daily chores
* Flag to save config to a file
* Moved spawning of receiving future to run method rather than new
* Removed arguments that dont make sense to be configured via CLI
* Removed dead code from config file
* More dead code removal
* Added validator API to CI
* Corrected manifest-path arguments
* Constructing network monitor by passing config
* Combined validator API CI with the main CI file
* Using query_as for NodeStatus
* Checking if historical uptimes were already calculated on particular day
* Making id field NOT NULL
* More query_as! action
* Updated sqlx-data.json
* Removed unused chrono feature
* Renamed the migration file
* Changed default validator endpoint to point to local validator
* Removing unnecessary clone
* More appropriate naming
* Removed dead code
* Lock file updates
* Updated network monitor address in contract code
* Don't stage node status api if network monitor is disabled
* cargo fmt
* Updated all license notices to SPDX
* Add validator-api common client
* Call validator-api from different clients for gateway topology
* Call validator-api from different clients for mixnode topology
* Use consts for the validator-api queries
* Rename the new query_validator function to query_validator_api
* Add mut to mixnode validator client
* Add refreshValidatorAPIGateways as a way to get the gateways...
... from validator-api
* Add refreshValidatorAPIGateways as a way to get the mixnodes...
... from validator-api
* Add yet another mut
* Change the port to validator-api service when querying the topology
* Add parsing check on the config phase...
... to make sure the validator URLs are in the correct format.
* Fix another clippy error
* Use all provided validators instead of just the first one
* The mutable reference was not actually needed, so remove it
* Use global variable for validator-api port
* Use url crate for checking the format and changing the port
* Use URL for parsing and move constants of validator-api to index.ts...
... until we find a way to link to the values from the validator-api
crate.
* Change global variables naming and have the API version into each API query
* Revert the changes to the index on connect...
... as they were working correctly before.
* Use all provided validators for mixnodes as well
* Remove location and layer
* Rust half done
* Removed the temporary 'test'
* Using multiple validator endpoints in the javascript client
* Dont attempt any switches with a single validator endpoint
* Removed the unused temporary function
* Updated validator-client version
* Updated all non-breaking dependencies
* Updated common/crypto dependencies
* Updated all tokio [and associated] dependencies to most recent version
* Bumped version of rand_distr
* Fixed api changes in tests
* Made clippy happier about the acronym
* Fixed the type while trying to make clippy even happier
* nightly cargo fmt