* Add nym-socks5-listener to main workspace
* add socks5-listener to CI build path trigger
* Using repr(u8) instead of repr(C) for ClientState enum
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* initial crate
* foomp
* Make it work for x86_64-linux-android
* remove unused stuff
* Add header
* another layer of hacks
* additional target os locking
* cleanup
* bootstrap android app
* android jni function
* instructions + xcode project
* update jni name
* add native socks5 class
* typo
* gitkeep android native lib path
* add native socks5 class
* add socks5 native lib in java
* add build script
* fix jni dependency declaration
* wip
* Update build.sh
* Move build.sh to new subdir
* rename to build-android.sh
* fix typo in FFI function name
* use a good SP
* wip not crashing state
* add android network permissions
* android_logging
* starting client on button in swift + safer ffi
* set tag for libnyms5 logs
* testing callbacks
* android: start socks5 process in a separated thread
* non-blocking client with callbacks
* Remove the old non-working logger
* Restore commented out functionality in socks5 client
* basic file write/load + possible android fix
* Fully working state (minus task manager)
* Remove unused function
* data persistence + cb with address
* Remove stray old MyClass file from the merge
* Make storage_dir and Option
* Fix char_p for android
* Android now works with the new branch
* Tidy up a little in the jni code
* Move android mod to seperate file
* jni wrap start/stop
* Add android build to Makefile
* android: add basic UI and start/stop actions
* typo
* add nym word
* dirty persistence restored
* dirty android fixes
* even dirtier workaround
* Move rust crate to sdk/lib
* Update cargo.toml
* Strip release binary
* Update lib name in android project
* Move ios project to nym-connect directory
* remove old gitignore file
* Move ios client one step deeper
* fixed xcode lib paths
* removed old tracked file
* move android app under new path
* a bit of cleanup
* hopefully fixing the CI issues (🤞)
* Update Makefile
* android: add better support for persistent state
* updating ios UI on ffi callbacks
* missing dead code
* Added toggle button (wip)
* swapped connect and disconnect methods around
* icon
* fixed android build
* reset button + reuse service provider
* disabling reset button
* android: run proxy in a worker as foreground service
* todo user cancel action
* android build script: add aarch64
* add stop action from notification
* add simple callbacks to the socks5 bridge
* pick a sp randomly
* pass stop cb to lib call
* add loading state support
* refactor(android): base connection state on callback calls
* android: add optimistic ui
* android: unique instance of libnym
* removing deadcode
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Co-authored-by: pierre <dommerc.pierre@gmail.com>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Include ephemera node code in repo
* Upgrade deps
* Bump minor version of cosmwasm-std
* Include ephemera in nym-api dep and downgrade rusqlite
* Fix clippy and ephemera docs code
* More clippy on ephemera
---------
Co-authored-by: Andrus Salumets <andrus@nymtech.net>
* wip
* semi-hacky way of persisting wasm-client gateway config
a better way shall be introduced after config refactoring
* cargo fmt
* wasm client clippy
* removed artifacts from other branches
* socks5 inbound: stop reading when closing connection
* Wait for lane at select top-level
* Allow closing connection while waiting for lanes to clear
* Some tidy in inbound.rs
* Put chained future back inline in the select
* Remove commented out line
* Disable the read data branch on is_finished
wasm-opt has a known issue on Apple Silicon:
https://github.com/rustwasm/wasm-pack/issues/913
The workaround currently seems to be running wasm-opt locally instead of
defining it as part of the Rust package's build pipeline in Cargo.toml.
I hope this is okay!
* allow loading modal to display custom text
* use loading modal
* dont repeatedly reset delegation state
* show loading modal when loading + no other modal is open
* fix lint errors
* log any delegations errors
* fix typo
* refresh interval in delegations page
* added cargo config file to explicitly specify build target
* wip
* Config option to disable topology refreshing
* extracted common parsing code
* helper trait for working on wasm topology
* wasm topology parsing
* restored (slightly modified) old js-example
* wip
* Moved message preparation into a trait
* wip
* long-winded way of sending test packet
* standalone NymNodeTester
* finishing the test upon receiving all packets even if timeout wasnt reached
* initial round of cleanup
* sending multiple test packets in normal NymClient
* javascript-side cleanup
* starting mixnode test on btn click
* Improved NymNodeTester constructors
* improved error handling and constructors
* tester utils error handling
* further cleanup + using BTreeMap for NymTopology mixnodes
* handling missed errors
* splitting up 'test_node'
* split up and cleaned up generation of test result
* clippy + fixed example
* post rebase fixes
* another broken test
* prevent running multiple parallel tests
* cargo fmt
* Added nym- prefix to node tester utils
* reduced noise in CODEOWNERS
* Add @octol to codeowners
* added @mfahampshire as owner of /documentation
---------
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* basic contract work for 'decrease_pledge' functionality
note: it doesn't yet return tokens back to the operator
* returning extra tokens after decreasing pledge
* added vesting message to track pledge decrease
* attaching the track message when processing delegation decrease
* checking for zero value request
* fixed event test
* allowing to decrease pledge from the vesting contract
* integration test for the feature
* reorganised the integration tests
* updated nyxd client traits
* wallet support
* typescript helpers
* moved 'pledge more' functionality to operator commands
* cli commands for decreasing pledge
* changed error variant to make clippy happier
* removed unused import
* eslint
* fixed post-rebase imports
* added cargo config
* added PendingMixNodeChanges to MixNodeDetails
* returning event id after creating it
* Streamlined getting mixnode details by identity key
* setting pending pledge changes on increase/decrease
* clearing the value on resolving the event
* checking for correct invariants when clearing events
* further pending events unit tests fixes
* new unit tests for tx endpoints
* queries for pending events (by id)
* migration code
* using default value for pending changes if unavailable
* improved integration test assertions
* Reduce logging of warnings associated with Poisson process throttling
* More granularity when logging about slow gateway
* Refine logging of elevated delay multiplier
* clippy
* Tweak output when printing address
* rustfmt
* Fix initial delay
Tidy the service provider directory contract after implementing query
methods on the validator-client.
- split out response types and use consistently
- query msg use "By" prefix
- pass address as String and validator
* Replace expect with error
* Move PersistentStorage in separate file
* Add in-memory cred manager
* Make wasm and mobile build
* Unify wasm and mobile cred storage
* Network defaults has mainnet default
* Add network_details to SDK
* Move BandwidthController in its own crate
* Move out credential into lib crate
* Remove nyxd arg in credential binary
* Use acquire cred in sdk
* Add example file, in sandbox
* Mobile lock file
* Update changelog
* Clearer builder methods and more documentation for them
* Sign only amount, without denom
* Toggle credentials mode on when enabled
* POC measurement
* parent ce76790761
author durch <durch@users.noreply.github.com> 1680116778 +0200
committer durch <durch@users.noreply.github.com> 1680683399 +0200
Instrument packet processing
* Cleanup and format
* Feature gate tracing
* Add .gitkeep to wallet dist
* Squashed commit of the following:
commit 0b1b6947e8
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:28:28 2023 +0200
Replace mobile flag with target_os = android (#3278)
* Remove old lock file
* Start replacing mobile with android
* Regex replace all mobile with android
* Remove the mobile feature flag
* keep the cfg mobile in tauri
commit c79b2cfb78
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:27:38 2023 +0200
Service provider directory contract (#3220)
* first commit of service provider directory contract proof of concept
* *added config set on instantiation,
*removed greetQuery test function
* commit before mapping change
* *changed mapping of service to use client address instead of cosmos addr
* commit before mapping change
* added acl to delete()
* added test for acl in delete()
* changed whitelist<vec> to standrd_whitelist bool in Service struct
* removed old comments and commented out code
* rustfmt
* wup
* wup
* Older version of cw-multi-test that works with 1.0.0
* wip
* Remove .gitignore
* Basic tests for announce and query now works
* Restore tests for delete as well
* Consolidate tests
* Tidy
* fmt
* Start reworking test helpers
* Tidy tests
* More test work
* More test improvements
* More work on tests
* Tweaks
* Further tests
* rustfmt
* Add some comments
* Initial work on requiring deposit
* wip
* Work on updating tests for handling funds
* Start updating integration tests
* Integration tests updated
* merge test mods in state
* Address review comments
* Enable wasm-opt
* Unify Result type
* consistent amount in error type
* WIP: paging output
* IndexedMap working
* extract to config file
* WIP: middle of extracting out types
* Extract types
* wip
* Types now extracted out:
* Paged response type too
* rustfmt
* Start working on switching to cw Admin
* Complete switch to Admin
* Remove owner from announce msg
* remove unused imports
* Assert owner
* Extract out types to common crate
* Fix test compilation
* Add query by owner and nym address
* Move msg to common crate
* rustfmt
* tests for service id
* service storage tests
* state services tests
* function rename
* tidy
* Fix clippy warning
* User ServiceId instead and not u32
* Delete by nym address
* Emit explicit events
* Swap ToString for Display
* Move all storage keys to constants.rs
* clippy
* Test for deleting by name
* Tidy integration tests
* Remove to_string
* Some comments to tests
* Integration test for paging
* serde snake_csae for NymAddress and ServiceType
* Add migrate entry point
* Add query contract version
* A few more asserts for balance
* Make MigrateMsg a struct
---------
Co-authored-by: mx <maxhampshire@pm.me>
commit dd699bce9a
Merge: 5ce017ef3e6957e7a9
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 10:18:16 2023 +0100
Merge pull request #3235 from nymtech/feature/performance-active-set-selection
Feature/performance active set selection
commit 5ce017ef3d
Author: benedetta davico <46782255+benedettadavico@users.noreply.github.com>
Date: Wed Apr 5 10:57:45 2023 +0200
adding vesting tests (#3279)
commit 59c1ce2639
Merge: 4fb63d889276edfd56
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 09:50:53 2023 +0100
Merge pull request #3261 from nymtech/feature/refresh-allow-list
Feature/refresh allow list
commit 4fb63d8892
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Wed Apr 5 09:22:43 2023 +0100
Feature/vesting delegation amount query (#3229)
* moved queries and transactions out of contract.rs
* added queries for vesting delegation details
* nyxd_client support
commit 276edfd562
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:56:21 2023 +0100
clippy
commit 605f8fcde3
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:06:12 2023 +0100
updated and cleaned up tests
commit f0e4d1a7cf
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 14:01:36 2023 +0100
configurable stored lists locations
commit 055ec4bdd5
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:57:02 2023 +0100
updating stored allow list on file changes
commit 5761f9ac7f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:15:45 2023 +0100
file watcher
commit 32620fd55f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 17:47:12 2023 +0100
updating standard list in a timer
commit abb5cdbe06
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 16:43:58 2023 +0100
extracted domain and ipnet information to separate struct
commit e6957e7a99
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 11:25:43 2023 +0100
use combination of stake and performance for rewarded set selection
commit de2406a2c7
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 10:54:14 2023 +0100
Moved MixnodeWithPerformance to helpers
* Squashed commit of the following:
commit 0b1b6947e8
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:28:28 2023 +0200
Replace mobile flag with target_os = android (#3278)
* Remove old lock file
* Start replacing mobile with android
* Regex replace all mobile with android
* Remove the mobile feature flag
* keep the cfg mobile in tauri
commit c79b2cfb78
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:27:38 2023 +0200
Service provider directory contract (#3220)
* first commit of service provider directory contract proof of concept
* *added config set on instantiation,
*removed greetQuery test function
* commit before mapping change
* *changed mapping of service to use client address instead of cosmos addr
* commit before mapping change
* added acl to delete()
* added test for acl in delete()
* changed whitelist<vec> to standrd_whitelist bool in Service struct
* removed old comments and commented out code
* rustfmt
* wup
* wup
* Older version of cw-multi-test that works with 1.0.0
* wip
* Remove .gitignore
* Basic tests for announce and query now works
* Restore tests for delete as well
* Consolidate tests
* Tidy
* fmt
* Start reworking test helpers
* Tidy tests
* More test work
* More test improvements
* More work on tests
* Tweaks
* Further tests
* rustfmt
* Add some comments
* Initial work on requiring deposit
* wip
* Work on updating tests for handling funds
* Start updating integration tests
* Integration tests updated
* merge test mods in state
* Address review comments
* Enable wasm-opt
* Unify Result type
* consistent amount in error type
* WIP: paging output
* IndexedMap working
* extract to config file
* WIP: middle of extracting out types
* Extract types
* wip
* Types now extracted out:
* Paged response type too
* rustfmt
* Start working on switching to cw Admin
* Complete switch to Admin
* Remove owner from announce msg
* remove unused imports
* Assert owner
* Extract out types to common crate
* Fix test compilation
* Add query by owner and nym address
* Move msg to common crate
* rustfmt
* tests for service id
* service storage tests
* state services tests
* function rename
* tidy
* Fix clippy warning
* User ServiceId instead and not u32
* Delete by nym address
* Emit explicit events
* Swap ToString for Display
* Move all storage keys to constants.rs
* clippy
* Test for deleting by name
* Tidy integration tests
* Remove to_string
* Some comments to tests
* Integration test for paging
* serde snake_csae for NymAddress and ServiceType
* Add migrate entry point
* Add query contract version
* A few more asserts for balance
* Make MigrateMsg a struct
---------
Co-authored-by: mx <maxhampshire@pm.me>
commit dd699bce9a
Merge: 5ce017ef3e6957e7a9
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 10:18:16 2023 +0100
Merge pull request #3235 from nymtech/feature/performance-active-set-selection
Feature/performance active set selection
commit 5ce017ef3d
Author: benedetta davico <46782255+benedettadavico@users.noreply.github.com>
Date: Wed Apr 5 10:57:45 2023 +0200
adding vesting tests (#3279)
commit 59c1ce2639
Merge: 4fb63d889276edfd56
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 09:50:53 2023 +0100
Merge pull request #3261 from nymtech/feature/refresh-allow-list
Feature/refresh allow list
commit 4fb63d8892
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Wed Apr 5 09:22:43 2023 +0100
Feature/vesting delegation amount query (#3229)
* moved queries and transactions out of contract.rs
* added queries for vesting delegation details
* nyxd_client support
commit 276edfd562
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:56:21 2023 +0100
clippy
commit 605f8fcde3
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:06:12 2023 +0100
updated and cleaned up tests
commit f0e4d1a7cf
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 14:01:36 2023 +0100
configurable stored lists locations
commit 055ec4bdd5
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:57:02 2023 +0100
updating stored allow list on file changes
commit 5761f9ac7f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:15:45 2023 +0100
file watcher
commit 32620fd55f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 17:47:12 2023 +0100
updating standard list in a timer
commit abb5cdbe06
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 16:43:58 2023 +0100
extracted domain and ipnet information to separate struct
commit e6957e7a99
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 11:25:43 2023 +0100
use combination of stake and performance for rewarded set selection
commit de2406a2c7
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 10:54:14 2023 +0100
Moved MixnodeWithPerformance to helpers
* Remove old lock file
* Start replacing mobile with android
* Regex replace all mobile with android
* Remove the mobile feature flag
* keep the cfg mobile in tauri
* first commit of service provider directory contract proof of concept
* *added config set on instantiation,
*removed greetQuery test function
* commit before mapping change
* *changed mapping of service to use client address instead of cosmos addr
* commit before mapping change
* added acl to delete()
* added test for acl in delete()
* changed whitelist<vec> to standrd_whitelist bool in Service struct
* removed old comments and commented out code
* rustfmt
* wup
* wup
* Older version of cw-multi-test that works with 1.0.0
* wip
* Remove .gitignore
* Basic tests for announce and query now works
* Restore tests for delete as well
* Consolidate tests
* Tidy
* fmt
* Start reworking test helpers
* Tidy tests
* More test work
* More test improvements
* More work on tests
* Tweaks
* Further tests
* rustfmt
* Add some comments
* Initial work on requiring deposit
* wip
* Work on updating tests for handling funds
* Start updating integration tests
* Integration tests updated
* merge test mods in state
* Address review comments
* Enable wasm-opt
* Unify Result type
* consistent amount in error type
* WIP: paging output
* IndexedMap working
* extract to config file
* WIP: middle of extracting out types
* Extract types
* wip
* Types now extracted out:
* Paged response type too
* rustfmt
* Start working on switching to cw Admin
* Complete switch to Admin
* Remove owner from announce msg
* remove unused imports
* Assert owner
* Extract out types to common crate
* Fix test compilation
* Add query by owner and nym address
* Move msg to common crate
* rustfmt
* tests for service id
* service storage tests
* state services tests
* function rename
* tidy
* Fix clippy warning
* User ServiceId instead and not u32
* Delete by nym address
* Emit explicit events
* Swap ToString for Display
* Move all storage keys to constants.rs
* clippy
* Test for deleting by name
* Tidy integration tests
* Remove to_string
* Some comments to tests
* Integration test for paging
* serde snake_csae for NymAddress and ServiceType
* Add migrate entry point
* Add query contract version
* A few more asserts for balance
* Make MigrateMsg a struct
---------
Co-authored-by: mx <maxhampshire@pm.me>
* Use full socks5 config when setting client config
Also move socks5 setup sleep inside the sdk function
* SDK Socks5 Mixnet Client
* Remove NymClientConfig from sdk
* Update changelog
* Remove pub modifier
* Replace sleep with waiting on the control channel
* Add error on simple connect if socks5 configured
* Move client-core to common dir
* Factor out socks5-client in its own crate
* Possible sdk-socks5 integration
* Update changelog
* Remove socks5 client lib
* Rename crate to include nym- prefix
* Trim the socks5 wrapped message so that it's printable
* Fix intellij auto refactoring
* Post merge fixes
* renamed secp265k1 to secp256k1
* added optional 'explicit_signer_data' argument for sign method
* wip
* made client signer generic
which required to undertake an adventure into coconut bandwidth trait bounds...
* separate wrapper for TxSigner
* moves signing-related features to separate module
* fixed build of binaries from outside default workspace
* offline signing example
* fixed wallet build
* post rebasing formatting
* fixed bity integration build
* making clippy happier
* fixed post-rebase bip39 dependency version
* wip family creation signatures + cli
* nym-cli commands for creating families
* Changed family join signature inside the contract
* Generating family join permit via nym-cli
* ability to join families via nym-cli
* more strongly typed FamilyHead arguments
* initial work on removing redundant family signatures
* removed all redundant signatures from families in the mixnet contract
* moved up the call stack
* nym-cli family operations
* fixed family related unit tests
* family member kick
* removed family operations from the wallet
* clippy
* add gateway settings button
* remove unneeded mixnode type check
* add additional properties to gateway type
* update node settings nav options
* set up gateway update requests
* create gateway settings page
* use update gateway validation
* PR updates
* dont show playground on gateways
* set up gateway config update
* fix lint errors in wallet
* run cargo fmt
* Generalise MessageReceiver
* Generics all the way
* Generalise MessageReceiver
* Generics all the way
* Fix Cargo.lock
---------
Co-authored-by: benedettadavico <benedetta.davico@gmail.com>
* Reorder Makefile
* split out the fmt targets
* split cargo test
* Split up clippy targets
* Add commit
* Use env variable for no-mobile instead
* Extract out target generation to use function
* Remove commented out code
* Add comment
* Minor tidy
While developing the service-provider-directory contract I ran into
issues with the lock file being inconsistent for cosmwasm-std (1.0 vs
1.2) and was hidden due to ignoring the lock file
* Compare verified vks against current group instead of initial dealers
* Fix various dkg logs
* API auto-advance epoch even on corrupt states
* Use verified vks as ultimate truth for dealers
* Set initial dealers based of verified vk
* Extend register period even more
* Fix test
* Use shares from current epoch
* Save initial dealers only when triggering resharing
* Fix tests
* Backup the last InProgress state too
* Reset previous signers that are not initial dealers
* Add unit test for bug reproduction
* More verbose debug logging
* Handle edge case for coconut keypair removal
* Update dkg api test
* Remove dealings directly for each key
* Replacement data is saved only on the first reshare start
* More debug logging
* On failed DKG, just reset
* Clippy fix
* updated bip39 dependency to simplify our zeroize story
* Replaced UserPassword wrapper with Zeroizing type alias
* fixed wallet-types cosmwasm-std dependency version
* additional unfiltered endpoints for nym-api
* add poor performance UI
* display appropriate UI when node is blacklisted
* update explorer api with blacklisted nodes
* add new unfiltered endpoint
add new unfiltered endpoint
* show blacklisted detail even when node description is unavailable
remove console.log
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* create service providers route
* make request for well known service providers
* fetch and display service providers
* service provider overview
handle undefined data
fix linting
fix type
* use full width column
* update tooltips for routing and average score
* fix up table alignment
fix lint errors
* add node_performance to explorer api response for mixnodes
* use mixnode node_performance for avg and lastest values
* move stake sat to top table
fix lint errors
* update stake saturation text color
* 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
* oak-2
* oak-8
* oak-13
* oak-15
* oak-18
* Minor clippy nit
* 2023-01-13-OAK-6
* 2023-01-13-OAK-3
* 2023-01-13-OAK-13
Implemented via direct dependency on cw2 and calling the appropriate code on migration
* Removed few instances of password being unecessarily copied
* 2023-01-13-OAK-10
* 2023-01-13-OAK-12
* 2021-09-13-JP-S-NYM-02
* 2021-09-13-JP-S-NYM-03
* Removed further instances of needlessly copying the mnemonic
* 2021-09-13-JP-O-PROT-03
* 2021-09-13-JP-S-NYM-01*
*: we still have one vulnerability on 'time' pulled from chrono via sqlx. However, apparently its usage is fine... Having said that, I'd still recommend removing all dependencies on chrono, but this will require some database migrations...
* 2023-01-13-OAK-11 (#3009)
* wip
* Introducing the concept of starting epoch transition in `nym-api`
* split epoch operations into multiple files
* epoch operation failure recovery
* sending rewarding transactions in correct order
* tests and fixes due to epoch state progression
* lint
* missed rebasing import changes
* Setting cw2 contract version during first migration run
* calling 'reconcile_epoch_events' at least once
* Made message to BeginEpochTransition more consistent with other variants
* Merge layer assignment updates
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* nym-api: cache updates as node performance
* nym-api: update get mixnode avg_uptime endpoint
* nym-api: mixnode report to use cached data
* nym-api: annotate gateway bond with node performance
* nym-api: gateway report to use cached data
* wip
* Add get_gateway_avg_uptime
* Add comment
* update NR gateways to include node_performance on frontend
* use node_performance values on frontend
* fixup select gateway from list
* fix up lint errors
---------
Co-authored-by: fmtabbara <fmtabbara@hotmail.co.uk>
* wip
* new option to select gateways based on latency
* further changes for wasm-compatibility
* post rebase fixes + clippy
I know, I should have probably included them properly during rebasing ¯\_(ツ)_/¯
* android change
* wasm: the gift that keeps on giving
* revamped calculation of spendable coins and behaviour of stakes
* added new queries to the VestingQueryClient
* fixed return types for the query client
* updated wallet commands
* updated common commands
* 🔥 removed dead and commented out code
* comment regarding the 'state_dump_decoder'
* query for withdrawn coins
* Rename to nym-task
* Update imports to use nym_task
* Update to nym_task in explicit module prefix
* Touchups and rustfmt
* rustfmt
* crate metadata
* fix nym-connect-android
* network-requester: replace websocket with mixnet client
* network-requester: mini tidy
* network-requester: add info line about own address
* network-requester: update to nym-crypto rename
* Add new route and initial UI
* allow IdentityKeyFormField to have a small size option
* add disabled prop to the shared IdentityKeyFormField component
* defined custom gateway type
* use custom gateway in state
* set and validate custom gateway in settings page
* validate user gateway when moving away from page
* use storage
* hide gateway input when inactive
* add explorer link to settings page
* nym-sdk: remove unneeded function
* rust-sdk: rework send api a bit
* rust-sdk: add send_wait without impl
* fix doc test failures
* more doctest fixes
* feat(nc-android): fit the design to mobile
* refactor(nc-android): resync with nc desktop
* fix(nc-android): tauri version
* refactor(nc-android): resync with nc desktop (rust)
* chore(nc-android): format code
* chore(nc-android): bump version
* add button animations
* pulse and disable button on connecting/disconnecting status
* update button component story
* disabled hover on connecting/disconnecting
* add transition delay
fix up overflow
* Add resharing parameter
* Fix equality of dealers and members
* Contract resharing handling
* Dealer verification unit test
* Dealing commit unit test
* Epoch state unit tests
* Fix clippy
* Fmt
* Query initial dealer data
* Resharing nym-api changes
* Implement the mockups for nym-api dkg tests
* Dealing test
* Vk unit test
* Fix skipping vk submission
* Fix clippy
* Missing dealing for noninitial resharing dealer
* Check master vk holds after resharing on nym-apis
* Update changelog
* Fix clippy
* chore(nc-android): prepare for production build
* refactor(nc-android): remove dead code
* feat(nc-android): update native color theme
* feat(nc-android): update native color theme
* build(nc-android): fix rfd version issue
* build(nc-android): fix dist dir no such file error
* fix(nc-android): post rebase changes
* added additional workspace-wide dependencies
* Added conditional serialization on 'BinaryBuildInformationOwned'
* initial framework for service provider messages
* updated request/response tags to account for existing variants of Socks5Message
* handling legacy deserialization
* another serialization revamp to account for legacy version
* legacy client working with versioned network requester
* socks5 client deserializing responses into updated structures
* using new structures for sending in socks5 client
* SendRequest wrapper for Request::Send variant
* created named fields for all variants of 'ControllerCommand'
* Versioning socks5 requests + moving to proper Socks5Request struct
* Updated backwards compatible Socks5Response
* unused imports
* poc ServiceProvider trait
* wip
* implemented 'ServiceProvider' trait on the Network Requester
* Socks5RequestError
* added properly serialized ErrorResponse to ControlResponse
* fixed version serialization + feature selection
* handling of version control requests
* improved SocksProxyError by providing more concrete variants and removing generic case
* got rid of ServiceProviderClient trait and wrote simple example showing control requests
* tests for serialisation backwards compatibility
* post-merge fixes due to method renaming
* enum boxing to make clippy happier
* making sure to not drop buffer channel when starting `DirectClient`
* Using nym-sdk in the example
* Replaced printing version to stdout with proper log call
* reduce window size
* use new highlight color
* use react router
* render new routes
* remove old help page
* render app routes
* update connection status UI
* remove service provider info
* remove unneeded additional step
* render title from route
* experimental warning as component
* render connection page
* nym-connect: connectivity status improvements (#2915)
* connect: keep track of connectivity state
* nym-connect: query connection state
* nym-connect: function for kicking of the health check task
* rustfmt
* nym-connect: extract out into function
* nym-connect: extract out events.rs
* add app version to menu page
* help page content and style updates
* update guide content
* use layout component on disconnect page
* handle gateway issues
* only show info modal once after connecting
* power button colors
* update stories and button colors
---------
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Remove `--all-features` from the clippy command because
1. with the removal of `cocunut` it's not really needed
2. the new `mobile` flag is a bit hacky and mutually incompatible with
some existing configs
* feat: adding routing score on gateway list
* feat(explorer): adding routing score on gateway list
* feat(explorer): add routing score on gateway list
* connect: keep track of connectivity state
* nym-connect: query connection state
* nym-connect: function for kicking of the health check task
* rustfmt
* nym-connect: extract out into function
* nym-connect: extract out events.rs
* Setting default 'id' if not provided
* Modified 'NymConfig' to always require 'id'
* moved creation of nym-api directories away from 'override_config'
* missing optional id usage in nym-connect
* changelog
* Removed default value for '--id' argument
* WASM Client: simplify sending of custom messages by always setting headers and a mime-type for the content
* Use rollup to bundle the web worker script to support more downstream bundlers
The WASM bundle is embedded as a base64 encoded resource and loaded synchronously, because this is the only mechanism widely supported to load WASM inside a web worker currently. Hopefully in the future this can be changed to pure modules.
* Suppress errors in build script
* Add Parcel 2.0 example
* WASM client: fix tests
* Update SDK docs and images
* wasm-client: add method to validate a recipient's address
* Revert "Removing unused prestart"
This reverts commit cbeac10383.
* Revert "Removing pointless dependency build command from TypeScript SDK example"
This reverts commit 0e0a62938d.
* Add typing for React 18
* Improve README files
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* clients: make surb storage more flexible
- in the rust-sdk we make the surb storage generic and pluggable, with
the fs_backend the default.
- make it possible to disable fs_backend at runtime
* Add comment
* changelog: add note
* client-core: tidy up some minor things
* Reset contract state when dkg needs rerun
* Reset nym-api for rerun
* Gateway updates signer APIs at runtime
* Fix clippy
* Add epoch id
* Use IndexedMap for shares
* Query with epoch id
* Add Clone to client traits
* Pass nyxd client instead of api data
* Get the specific epoch vk
* Make wasm work
* Remove wasm test runs
As there are no wasm tests and the target_arch macros are not compatible
with the cargo test environment, we can safely remove (for now) the wasm
test target runs.
* Put epoch_id in storage pk
* Gateway uses old keys but current verifiers
* Add group contract to env
* Move group msg in common
* Only run DKG if part of group
* Clippy test
* Rename wasm_storage to wasm_mockups
* Update changelog
* Changed `listening_address` to `websocket_address` to make things a bit more clear
Stricly speaking, service providers don't "listen" on a port, they make
an outbound connection to a websocket which is already listening on the
provided port on localhost.
* Using un-imported network_defaults module name as it fits nicely
and reduces guessing as to what's going on in the code
* Using full module path for logs
* Some minor renames and extractions
* Fixing a few clippy warnings about double references
* Ripped the allowed_hosts module out into separate module files
* Removing old comment
* Removing unused import
* Knocking down visibility on function
* Docs on OutboundRequestFilter
* Removing a function that doesn't justify its existence
* Keeping struct with its impl
* Renamed a few modules
* Smoothing and rearranging code, no big changes
* It's now possible to inject a standard allowed_list
* Logging all standard allowed domains at network requester startup
* Fixing printed comment
* task dependency
* unifying some startup code and passing TaskClient around
* graceful shutdown handling for mix socket listener
* graceful shutdown handling for clients listener
* graceful shutdown handling for packet forwarding
* unified waiting for interrupt across binaries
* made 'validate_bech32_address_or_exit' into a function that returns proper Result
* printing formatted message on main error
* fixed failing test
* removed duplicate code that should have been gone ages ago
* ibid
* removed biased selection for authenticated handler
* minor refactoring to 'ensure_config_version_compatibility'
* new react and reactdom packages in wallet
* new react and reactdom packages in root
* new react and reactdom packages in nym connect
* new react and reactdom packages in root
* update react and reactdom for explorer
* react and react-dom upgrade for ts-packages
remove unused import
fix linting error
* use custom FC typing
move typings folder
* fix type error
* Fixed typo in node_status_cache constant
* ibid
* Moved some caching stuff around so I can see what depends on what
* Finishing merge of conflicted files
* Minor smoothing
* Got cache reads working for circ supply and refactored common cache
* Refactored nyxd client usages to make things bit more clear
* Moved caching support stuff into the support folder
* Moved storage code into support module
* Removed dead code
* Tweaks
* Handling cases a little more nicely in circulating supply api
* Renamed nymd_client to nyxd_client
* Pulled CacheNotification into the caching support module
* Pulled some domain-specific helpers out of cache refresher
* Moving some more helper methods out of the cache refresher
* Deleting unused code
* Extracted a few more functions out of the cache refresher
* A few comments as breadcrumbs
* Renaming the anemic "helpers" to "node_sets"
* Renaming the validator_cache module to nym_contract_cache
* Renaming nym contract cache stuff to make things clearer
* Renamging a few things in comments
* Renaming validator_cache to nym_contract_cache
* foomp
* Started refactoring http and cli
* Extracted cli arg parsing into its own module
* Cleanup
* Extracted start methods into various modules to clean main up
* WIP commit
* Build working, swagger not
* Fixed swagger docs metadata
* Removed log statement
* Circulating supply cache now working with simple logic
* Fixed up circulating supply method names
* Starting to work in some (wrong) constants
* Documented the cache
* Renaming circulating-supply route
* nym-api compiling after the rebasing
but most likely not fully working yet
* removed unused imports
* only starting RewardedSetUpdater if the config flag is set
* nym-api compiling with coconut feature
* removed redundant process_runner
* removed generic aspect of nym-api nyxd::Client
* signle entry point for starting nym_contract_cache
* do not eagerly grab instances of managed state
* inlining openapi route spec
* CirculatingSupplyResponse type
* fixed compilation of coconut tests
* calculating circulating supply based on mixmining reserve and vesting tokens
* separated different variants of caching intervals
* allow nym-api to specify address of the vesting contract
* fixed types export
* renamed the query on the vesting contract
* reorganised startup procedure and made all start methods independent from rocket
* cleaned up startup procedure for nym-api
* startup checks for rewarding permisssions
* updated changelog
* added config flag to control whether circulating supply should be updated
Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
* set up ui for gateway performance in nym-connect
remove duplicated imports
* set and reset (when necessary) gateway performance
* remove unneeded useEffect
* remove log
* set up ui for gateway performance in nym-connect
* reset gateway performance state periodically
* remove duplicated imports
* set and reset (when necessary) gateway performance
* align gateway performance text left
* checks for existing staking account
* removed code for v2 migration
* using stronger types for storage keys
* Added type alias for the storage key and documented each `Map`
* remove the hacky way of storing staker information
* allow the staking address account to perform delegations with the additional msg argument
* new unit tests
* updated client code
* modified migrate msg to explicitly require confirming having performed manual checks
* re-ordered arguments
* wip
* Introduced paged queries for getting list of all vesting accounts and for amount of vesting coins
* Added the queries to VestingQueryClient trait
* Added default implementations to all trait queries
* Fixed naming for the vesting coins query
* Helper functions for dealing with paging
* Updated changelog
* Defined OptionalSet trait
* extended the trait to handle environment
* sample implementation for the gateway
* implementation for mixnode
* Added the same feature to nym-api config + made some config types stricter
* fixed compilation and linter issues
* keeping track of parsing error
* attempt at using the trait for the client configs
* Streamlined more arguments
* Removed deprecation on setters
* fixed incorrect test constructor
* missed rebase fixes
* Renaming all instances of nymd to nyxd
* Might as well get the changelogs too
* Making it clearer that an ApiClient is a NymApiClient
* Lining up config templates with struct keys on gateway
* Changed the last references to validator_urls to nyxd_urls
* Fixed up a few type errors after refactoring
* Changed the changelog
* Fixed typo in changelog
* Further instances of renaming 'nymd' + introducing additional clap aliases
* updated environmental variables and allowed usage of deprecated variants
* missing occurences of coconut-locked environmental variables
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* 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
* Renamed "address" argument in "sign" command to "wallet-address"
* Ability to optionally describe mixnode with command line arguments
* renamed 'validators' arguments to 'nym-apis' in mixnode binary
* cleaned up gateway validator-related url arguments
* fixup! Renamed "address" argument in "sign" command to "wallet-address"
* renamed 'use_anonymous_sender_tag' to 'use_anonymous_replies'
* 'nymd_endpoints => 'nymd_validators'
* more consistency for nymd_validators and nym_apis urls arguments
* updated changelog
* initial ui for test my node
use svg for node path
add stories for test my node
* add initial rewards calculation
* update validation for rewards playground
* init playground with default values
* get node uptime
* get mixnode reward estimation
* calculate saturation
calculate stake saturation
* Make ComputeRewardEstParam derive Debug
* set active set to be always true
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* 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
* initial ui for test my node
use svg for node path
add stories for test my node
* add initial rewards calculation
* update validation for rewards playground
* init playground with default values
* get node uptime
* get mixnode reward estimation
* calculate saturation
calculate stake saturation
* Make ComputeRewardEstParam derive Debug
* set active set to be always true
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* Add dkg epoch
* Make epoch state advancement dependent only on time
* Nym api tries advancing the dkg epoch state
* Update the time table a bit
It still needs to be changed before production, as the sign-up timeframe
needs to be something like a few days.
* Update changelog
* Fix tests
* Fix clippy after rustc update
* socks5: send network-requester error in status channel
* Minor tidy
* task-manager: send status msg to indicate ready
* changelog: add note
* coconut/tests: fix clippy for rustc 1.66
* 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
* 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
@@ -34,8 +35,8 @@ Notifications are run by adding the snippet above to a GitHub Action, and:
1. Installing node packages needed at run time
2. Set the env vars as required:
-`NYM_NOTIFICATION_KIND` matches the directory in `.github/workflows/support-files/${NYM_NOTIFICATION_KIND}` to provide the templates and extra scripting in `index.js`
-Keybase credentials, channel and other env vars for the status of the build and repo
3. Replacing the default entry point shell script on the `keybaseio/client:stable-node` docker image to run `.github/workflows/support-files/notifications/entry_point.sh`
-Matrix credentials, room and other env vars for the status of the build and repo
3. Replacing the default entry point shell script on the `keybaseio/client:stable-node` docker image to run `.github/workflows/support-files/notifications/entry_point.sh`
### Running locally
@@ -43,7 +44,7 @@ You will need:
- Node 16 LTS
- npm
Copy `.github/workflows/support-files/.env.example` to `.github/workflows/support-files/.env` and valid Keybase credentials.
Copy `.github/workflows/support-files/.env.example` to `.github/workflows/support-files/.env` and valid Matrix credentials.
- Explorer - Fix sorting function on Stake Saturation. It is currently working per page and not globally ([#3320])
- Poisson process gets stuck at too slow rate. Rework to more aggressively up-regulate ([#3309])
- decrease the logging level of warnings associated with clients dropping packets due to gateway being overloaded (I'd say reduce it to debug/trace) - there are few sources of those, e.g. in real and cover traffic streams ([#3299])
- Make the buffer size in `AvailableReader` depend on packet sizes the client is using + introduce read timeouts ([#3213])
- Rust SDK - Support coconut, credential storage etc ([#2755])
- version bump for next release ([#3349])
- added coconut credential generation example ([#3339])
- update mix-node setup docs with node description ([#3325])
- exposed missing gateway commands in nym-cli ([#3324])
- make sure to clear inner 'ack_map' in 'GatewaysReader' ([#3300])
- Fix verloc being stuck waiting for shutdown signal ([#3250])
- Introduce `--output json` flag to `sign` command to allow to more easily capture the output ([#3249])
- Explorer - Dont fetch Service Provider list on Testnet ([#3245])
- When determining active set, rather than weighting the nodes by just the `stake`, use `stake * performance` ([#3234])
- Introduce dual packet sizes to our clients (as in use two packet sizes at the same time depending on message size) ([#3189])
- Experiment with offline signing in our validator client ([#3174])
- Modify network requester binary to reload `allowed.list` periodically to pull in any changes made upstream without having to restart the service ([#3149])
- Standardise all `--output json` on binary inits, we pass the output json at different points for different binaries. ([#3080])
- Service provider directory contract: initial version ([#2759])
- Fix issue where network-requester run failed on fresh init due to missing allow file ([#3316])
- NE - instead of throwing a "Mixnode/Gateway not found" error for blacklisted nodes due to bad performance, show their history but tag them as "Having poor performance" ([#2979])
- NE - Upgrade Sandbox and make below changes: ([#2332])
- Explorer - Updates ([#3168])
- Website v2 - deploy infrastructure for strapi and CI ([#2213])
- The nym-api db.sqlite is broken when trying to run against it it in `enabled-credentials-mode true` there is an ordering issue with migrations when using the credential binary to purchase bandwidth ([#3100])
- Feature/latency based gateway selection ([#3081])
- Fix the credential binary to handle transactions to sleep when in non-inProgress epochs ([#3057])
- rust-sdk - update API following implementation experience with the network-requester ([#3001])
- Prevent coconut deposits in incompatible states ([#2991])
- Support unavailable signer within threshold ([#2987])
- Implement DKG re-sharing ([#2935])
- contracts: add nym prefix to mixnet and vesting contract packages ([#2855])
- Introduce common interface for all service providers to allow obtaining information such as whether they're online, what binary version they're running, etc. ([#2758])
- Add client functionality to nym-network-requester ([#1900])
- nym-api: uptime rework ([#3053])
- ci: update typescript-lint.yml ([#3035])
- contracts: add nym prefix to mixnet and vesting contract packages ([#2855])
- Separate `nym-api` endpoints with values of "total-supply" and "circulating-supply" in `nym` ([#2964])
### Changed
- native-client: is now capable of listening for requests on sockets different than `127.0.0.1` ([#2912]). This can be specified via `--host` flag during `init` or `run`. Alternatively a custom `host` can be set in `config.toml` file under `socket` section.
- mixnode, gateway: fix unexpected shutdown on corrupted connection ([#2963])
- nym-api: add endpoint listing detailed gateway info by @octol in https://github.com/nymtech/nym/pull/2833
### Changed
- streamline override_config functions -> there's a lot of duplicate if statements everywhere ([#2774])
- clean-up nym-api startup arguments/flags to use clap 3 and its macro-derived arguments ([#2772])
- renamed all references to validator_api to nym_api
- renamed all references to nymd to nyxd ([#2696])
- all-binaries: standarised argument names (note: old names should still be accepted) ([#2762]
### Fixed
- nym-api: should now correctly use `rewarding.enabled` config flag ([#2753])
[#2696]: https://github.com/nymtech/nym/pull/2696
[#2753]: https://github.com/nymtech/nym/pull/2753
[#2762]: https://github.com/nymtech/nym/pull/2762
[#2814]: https://github.com/nymtech/nym/pull/2814
[#2772]: https://github.com/nymtech/nym/pull/2772
[#2774]: https://github.com/nymtech/nym/pull/2774
## [v1.1.5] (2023-01-10)
### Added
- socks5: send status message for service ready, and network-requester error response in https://github.com/nymtech/nym/pull/2715
### Changed
- all-binaries: improved error logging in https://github.com/nymtech/nym/pull/2686
- native client: bring shutdown logic up to the same level as socks5-client in https://github.com/nymtech/nym/pull/2695
- nym-api, coconut-dkg contract: automatic, time-based dkg epoch state advancement in https://github.com/nymtech/nym/pull/2670
- DKG resharing unit test by @neacsu in https://github.com/nymtech/nym/pull/2668
- Renaming validator-api to nym-api by @futurechimp in https://github.com/nymtech/nym/pull/1863
- Modify wasm specific make targets by @neacsu in https://github.com/nymtech/nym/pull/2693
- client: create websocket handler builder by @octol in https://github.com/nymtech/nym/pull/2700
- Outfox and Lion by @durch in https://github.com/nymtech/nym/pull/2730
- Feature/multi surb transmission lanes by @jstuczyn in https://github.com/nymtech/nym/pull/2723
## [v1.1.4] (2022-12-20)
This release adds multiple Single Use Reply Blocks (SURBs) to allow arbitrarily-sized anonymized replies.
At the moment this is turned off by default, but available for use by application developers.
We will need to wait for network-requesters to upgrade to this new release, after which multi-SURB anonymization will become the default setting for the SOCKS proxy clients.
The release also include some additional work for distributed key generation in the Coconut signing authority nodes.
### Changed
- Feature/dkg contract threshold by @neacsu in https://github.com/nymtech/nym/pull/1885
- Multi-surbs by @jstuczyn in https://github.com/nymtech/nym/pull/2667
- Fix multi-surb backwards compatibility in pre 1.1.4 client config files by @jstuczyn in https://github.com/nymtech/nym/pull/2703
- fix: ignore corrupted surb storage and instead create fresh one by @jstuczyn in https://github.com/nymtech/nym/pull/2711
- socks5: rework waiting in inbound.rs by @octol in https://github.com/nymtech/nym/pull/1880
## [v1.1.3] (2022-12-13)
### Changed
- validator-api: can recover from shutdown during DKG process ([#1872])
- clients: deduplicate gateway inititialization, part of work towards a rust-sdk
- clients: deduplicate gateway initialization, part of work towards a rust-sdk
- clients: keep all transmission lanes going at all times by making priority probabilistic
- clients: ability to use multi-reply SURBs to send arbitrarily long messages fully anonymously whilst requesting additional reply blocks whenever they're about to run out ([#1796], [#1801], [#1804], [#1835], [#1858], [#1883]))
@@ -17,7 +321,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- network-requester: fix bug where websocket connection disconnect resulted in success error code
- clients: fix a few panics handling the gateway-client
- mixnode, gateway, validator-api: Use mainnet values as defaults for URLs and mixnet contract ([#1884])
- mixnode, gateway, validator-api: Use mainnet values as defaults for URLs and mixnet contract ([#1884])
- socks5: fixed bug where connections sometimes where closed too early
- clients: improve message logging when received message fails to get reconstructed ([#1803])
@@ -37,7 +341,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- gateway: Renamed flag from `enabled/disabled_credentials_mode` to `only-coconut-credentials`
- "Family" feature for node families + layers
- Initial coconut functionality including credentials and distributed key generation
- Initial coconut functionality including credentials and distributed key generation
@@ -85,7 +388,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- native-client/socks5-client/wasm-client: `use_extended_packet_size` Debug config option to make the client use 'ExtendedPacketSize' for its traffic (32kB as opposed to 2kB in 1.0.2) ([#1671])
- network-requester: added additional Blockstream Green wallet endpoint to `example.allowed.list` ([#1611])
- validator-api: add `interval_operating_cost` and `profit_margin_percent` to compute reward estimation endpoint
- validator-client: added `query_contract_smart` and `query_contract_raw` on `NymdClient` ([#1558])
- validator-client: added `query_contract_smart` and `query_contract_raw` on `NyxdClient` ([#1558])
- wasm-client: uses updated wasm-compatible `client-core` so that it's now capable of packet retransmission, cover traffic and poisson delay (among other things!) ([#1673])
### Fixed
@@ -100,7 +403,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- gateway-client: will attempt to read now as many as 8 websocket messages at once, assuming they're already available on the socket ([#1669])
- moved `Percent` struct to `contracts-common`, change affects explorer-api
- socks5 client: graceful shutdown should fix error on disconnect in nym-connect ([#1591])
- validator-api: changed error serialization on `inclusion_probability`, `stake-saturation` and `reward-estimation` endpoints to provide more accurate information ([#1681])
- validator-api: changed error serialization on `inclusion_probability`, `stake-saturation` and `reward-estimation` endpoints to provide more accurate information ([#1681])
- validator-client: made `fee` argument optional for `execute` and `execute_multiple` ([#1541])
- wasm-client: fixed build errors on MacOS and changed example JS code to use mainnet ([#1585])
- validator-api: changes to internal SQL schema due to the mixnet contract revamp ([#1472])
@@ -128,7 +431,6 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
@@ -181,9 +483,8 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- All binaries and cosmwasm blobs are configured at runtime now; binaries are configured using environment variables or .env files and contracts keep the configuration parameters in storage ([#1463])
- gateway, network-statistics: include gateway id in the sent statistical data ([#1478])
- network explorer: tweak how active set probability is shown ([#1503])
- validator-api: rewarder set update fails without panicking on possible nymd queries ([#1520])
- network-requester, socks5 client (nym-connect): send and receive respectively a message error to be displayed about filter check failure ([#1576])
- validator-api: rewarder set update fails without panicking on possible nyxd queries ([#1520])
- network-requester, socks5 client (nym-connect): send and receive respectively a message error to be displayed about filter check failure ([#1576])
[#1249]: https://github.com/nymtech/nym/pull/1249
[#1256]: https://github.com/nymtech/nym/pull/1256
@@ -277,9 +578,9 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- Bump minimist from 1.2.5 to 1.2.6 in /clients/tauri-client [\#1163](https://github.com/nymtech/nym/pull/1163) ([dependabot[bot]](https://github.com/apps/dependabot))
- Bump minimist from 1.2.5 to 1.2.6 in /clients/webassembly/js-example [\#1162](https://github.com/nymtech/nym/pull/1162) ([dependabot[bot]](https://github.com/apps/dependabot))
- Bump minimist from 1.2.5 to 1.2.6 in /clients/native/examples/js-examples/websocket [\#1160](https://github.com/nymtech/nym/pull/1160) ([dependabot[bot]](https://github.com/apps/dependabot))
- Bump minimist from 1.2.5 to 1.2.6 in /docker/typescript\_client/upload\_contract [\#1159](https://github.com/nymtech/nym/pull/1159) ([dependabot[bot]](https://github.com/apps/dependabot))
- Bump minimist from 1.2.5 to 1.2.6 in /docker/typescript_client/upload_contract [\#1159](https://github.com/nymtech/nym/pull/1159) ([dependabot[bot]](https://github.com/apps/dependabot))
- Feature/vesting full [\#1158](https://github.com/nymtech/nym/pull/1158) ([fmtabbara](https://github.com/fmtabbara))
- Fixes crash condition in validator API when calculating last day uptime [\#909](https://github.com/nymtech/nym/pull/909) ([jstuczyn](https://github.com/jstuczyn))
- Bug fix: Network Explorer: Add freegeoip API key and split out tasks for country distributions [\#806](https://github.com/nymtech/nym/pull/806) ([mmsinclair](https://github.com/mmsinclair))
- Bug fix: Network Explorer: Add freegeoip API key and split out tasks for country distributions [\#806](https://github.com/nymtech/nym/pull/806) ([mmsinclair](https://github.com/mmsinclair))
- Explorer API: port test now split out address resolution and add units tests [\#755](https://github.com/nymtech/nym/pull/755) ([mmsinclair](https://github.com/mmsinclair))
**Closed issues:**
@@ -380,7 +680,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
@@ -480,7 +780,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- Reverted gateway registration handshake to its 0.11.0 version [\#882](https://github.com/nymtech/nym/pull/882) ([jstuczyn](https://github.com/jstuczyn))
- Network Explorer [\#881](https://github.com/nymtech/nym/pull/881) ([mmsinclair](https://github.com/mmsinclair))
- Explorer-api: add API resource to show the delegations for each mix node [\#774](https://github.com/nymtech/nym/pull/774) ([mmsinclair](https://github.com/mmsinclair))
@@ -530,14 +830,14 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- Adding deps for building the Tauri wallet under Ubuntu [\#770](https://github.com/nymtech/nym/pull/770) ([futurechimp](https://github.com/futurechimp))
- Bump next from 11.1.0 to 11.1.1 in /wallet-web [\#758](https://github.com/nymtech/nym/pull/758) ([dependabot[bot]](https://github.com/apps/dependabot))
- Add block\_height in the Delegation structure as well [\#757](https://github.com/nymtech/nym/pull/757) ([neacsu](https://github.com/neacsu))
- Add block_height in the Delegation structure as well [\#757](https://github.com/nymtech/nym/pull/757) ([neacsu](https://github.com/neacsu))
- NetworkMonitorBuilder - starting the monitor after rocket has launched [\#754](https://github.com/nymtech/nym/pull/754) ([jstuczyn](https://github.com/jstuczyn))
- Enabled validators api argument [\#753](https://github.com/nymtech/nym/pull/753) ([jstuczyn](https://github.com/jstuczyn))
@@ -549,21 +849,21 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- Feature/cred after handshake [\#745](https://github.com/nymtech/nym/pull/745) ([neacsu](https://github.com/neacsu))
- Reinstate the POST method blind\_sign [\#744](https://github.com/nymtech/nym/pull/744) ([neacsu](https://github.com/neacsu))
- Reinstate the POST method blind_sign [\#744](https://github.com/nymtech/nym/pull/744) ([neacsu](https://github.com/neacsu))
- explorer-api: add pending field to port check response [\#742](https://github.com/nymtech/nym/pull/742) ([mmsinclair](https://github.com/mmsinclair))
- Feature/copy to clipboard [\#740](https://github.com/nymtech/nym/pull/740) ([fmtabbara](https://github.com/fmtabbara))
- Feature/update wallet with stake rates [\#739](https://github.com/nymtech/nym/pull/739) ([neacsu](https://github.com/neacsu))
- Add stake reward rates and bump version of client [\#738](https://github.com/nymtech/nym/pull/738) ([neacsu](https://github.com/neacsu))
- Bump next from 10.1.3 to 11.1.0 in /wallet-web [\#737](https://github.com/nymtech/nym/pull/737) ([dependabot[bot]](https://github.com/apps/dependabot))
- Bug/fix parking lot on wasm [\#735](https://github.com/nymtech/nym/pull/735) ([neacsu](https://github.com/neacsu))
- Explorer API: add new HTTP resource to decorate mix nodes with geoip locations [\#734](https://github.com/nymtech/nym/pull/734) ([mmsinclair](https://github.com/mmsinclair))
- Feature/completing nymd client api [\#732](https://github.com/nymtech/nym/pull/732) ([jstuczyn](https://github.com/jstuczyn))
- Feature/completing nyxd client api [\#732](https://github.com/nymtech/nym/pull/732) ([jstuczyn](https://github.com/jstuczyn))
- Explorer API - add port check and node description/stats proxy [\#731](https://github.com/nymtech/nym/pull/731) ([mmsinclair](https://github.com/mmsinclair))
- Updated used sphinx dependency to the most recent revision [\#722](https://github.com/nymtech/nym/pull/722) ([jstuczyn](https://github.com/jstuczyn))
- update state management and validation [\#721](https://github.com/nymtech/nym/pull/721) ([fmtabbara](https://github.com/fmtabbara))
@@ -582,10 +882,8 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- Bond and delegation alerts [\#698](https://github.com/nymtech/nym/pull/698) ([fmtabbara](https://github.com/fmtabbara))
- Bugfix/network monitor version check [\#697](https://github.com/nymtech/nym/pull/697) ([jstuczyn](https://github.com/jstuczyn))
- Using validator API instead of nymd [\#690](https://github.com/nymtech/nym/pull/690) ([futurechimp](https://github.com/futurechimp))
- Using validator API instead of nyxd [\#690](https://github.com/nymtech/nym/pull/690) ([futurechimp](https://github.com/futurechimp))
- Hang coconut issuance off the validator-api [\#679](https://github.com/nymtech/nym/pull/679) ([durch](https://github.com/durch))
- Update hmac and blake3 [\#673](https://github.com/nymtech/nym/pull/673) ([durch](https://github.com/durch))
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
\* _This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)_
Platform build instructions are available on [our docs site](https://nymtech.net/docs/stable/run-nym-nodes/build-nym).
Platform build instructions are available on [our docs site](https://nymtech.net/docs/binaries/building-nym.html).
Wallet build instructions are also available on [our docs site](https://nymtech.net/docs/stable/nym-apps/wallet#for-developers).
### Developing
@@ -32,7 +32,7 @@ For Typescript components, please see [ts-packages](./ts-packages).
### Developer chat
You can chat to us in [Keybase](https://keybase.io). Download their chat app, then click **Teams -> Join a team**. Type **nymtech.friends** into the team name and hit **continue**. For general chat, hang out in the **#general** channel. Our development takes places in the **#dev** channel. Node operators should be in the **#node-operators** channel.
You can chat with us in [Keybase](https://keybase.io). Download their chat app, then click **Teams -> Join a team**. Type **nymtech.friends** into the team name and hit **continue**. For general chat, hang out in the **#general** channel. Our development takes place in the **#dev** channel. Node operators should be in the **#node-operators** channel.
### Rewards
@@ -46,7 +46,7 @@ Node, node operator and delegator rewards are determined according to the princi
|<img src="https://render.githubusercontent.com/render/math?math=\lambda_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}\lambda_{i}#gh-dark-mode-only">|ratio of stake operator has pledged to their node to the token circulating supply.
|<img src="https://render.githubusercontent.com/render/math?math=\omega_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}\omega_{i}#gh-dark-mode-only">|fraction of total effort undertaken by node `i`, set to `1/k`.
|<img src="https://render.githubusercontent.com/render/math?math=k#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}k#gh-dark-mode-only">|number of nodes stakeholders are incentivised to create, set by the validators, a matter of governance. Currently determined by the `reward set` size, and set to 720 in testnet Sandbox.
|<img src="https://render.githubusercontent.com/render/math?math=\alpha#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}\alpha#gh-dark-mode-only">|Sybil attack resistance parameter - the higher this parameter is set the stronger the reduction in competitivness gets for a Sybil attacker.
|<img src="https://render.githubusercontent.com/render/math?math=\alpha#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}\alpha#gh-dark-mode-only">|Sybil attack resistance parameter - the higher this parameter is set the stronger the reduction in competitiveness gets for a Sybil attacker.
|<img src="https://render.githubusercontent.com/render/math?math=PM_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}PM_{i}#gh-dark-mode-only">|declared profit margin of operator `i`, defaults to 10% in.
|<img src="https://render.githubusercontent.com/render/math?math=PF_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}PF_{i}#gh-dark-mode-only">|uptime of node `i`, scaled to 0 - 1, for the rewarding epoch
|<img src="https://render.githubusercontent.com/render/math?math=PP_{i}#gh-light-mode-only"><img src="https://render.githubusercontent.com/render/math?math=\color{white}PP_{i}#gh-dark-mode-only">|cost of operating node `i` for the duration of the rewarding epoch, set to 40 NYMT.
@@ -70,7 +70,7 @@ Operator of node `i` is credited with the following amount:
If you're here because you're trying to figure out how to notify us of a security issue, go to Discord, and alert the core engineers:
Dave Hrycyszyn futurechimp#5430
Drazen Urch drazen#4873
Jedrzej Stuczynski "Jedrzej | Nym#5666"
Fran Arbanas | franarbanas#0995
Mark Sinclair | marknym#8088
Please avoid opening public issues on GitHub that contain information about a potential security vulnerability as this makes it difficult to reduce the impact and harm of valid security issues.
Please avoid opening public issues on GitHub that contain information about a potential security vulnerability as this makes it difficult to reduce the impact and harm of valid security issues.
error!("failed to setup persistent storage backend for our reply needs: {err}. We're going to create a fresh database instead. This behaviour might change in the future");
Copyright 2023 - Nym Technologies SA <contact@nymtech.net>
SPDX-License-Identifier: Apache-2.0
-->
## Credential binary
The credential binary is used to acquire coconut bandwidth credentials in exchange for nym tokens. Those credentials are stored in the client's `data` directory, so that they can be used as the client sees fit.
### Warning
The credential binary is still experimental software. The infrastructure for using it is not yet deployed to mainnet and it's still in the process of being deployed to sandbox.
### Building
From the project's root directory, run:
```
cargo build -p credential
```
which generates the `credential` binary in `target/debug/credential`.
### Running
For example, you can get a credential worth 3 nym (3000000 unym) in a socks5 client that was already initialized like so:
info!("In the next {} minute(s), a transition will take place in the coconut system. Deposits should be halted in this time for safety reasons.",SAFETY_BUFFER_SECS/60);
exit(0);
}
Ok(())
}
}else{
fnmain(){
println!("Crate only designed for coconut feature");
break;
}else{
// Use 1 additional second to not start the next iteration immediately and spam get_current_epoch queries
letsecs_until_final=epoch
.final_timestamp_secs()
.saturating_sub(current_timestamp_secs)
+1;
info!("Approximately {} seconds until coconut is available. Sleeping until then. You can safely kill the process at any moment.",secs_until_final);
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.