v0.9.0 (2020-11-13)
The main features of this release are:
- a reputation tracking system which starts to link node reputation to quality of service
- a new component, the
nym-network-monitor
, which tracks whether nodes are working properly and providing good service - automatic node registration and de-registration at node startup
- working Cosmos validators with a
nym
token - starting to decentralize the old directory server into the validators
- a new block explorer at https://testnet-explorer.nymtech.net which looks the same as the old dashboard but is the basis of something much more advanced. It can be run by anyone.
- de-coupling metrics collection from directory services to make the system scale better overall
- reliability and performance improvements for mixnode networking
See the changelog for detailed release notes.
Implemented enhancements:
- Nicer error if trying to run an uninitialised client/node #389
- Gateway announcement #383
- Add init flag for incentives address #382
- Ed25519 Identity Keys for Mixnodes #379
- Introduce version field to config files #375
- Change
init
to not blow away existing keys (if exist) #368 - Introduce an explicit
upgrade
command #367 - Show remote hostname in socks5 connection messages #365
- Make all
const
duration values more explicit. #333 - Feature/socks improvements #423 (jstuczyn)
- Feature/instant sending #359 (jstuczyn)
Fixed bugs:
- React wasm example not compiling #394
- Update main.js #441 (jstuczyn)
- Bugfix/metrics fixes #434 (jstuczyn)
- Bugfix/upgrade fix #421 (jstuczyn)
- Explicitly handling base58 key recovery errors #396 (jstuczyn)
- Corrected version on client-core #377 (jstuczyn)
Closed issues:
- Make validator URL configurable #438
- Change default directory location #432
- Crank up the default bandwidth settings. #429
- Change "sphinx-socks" to "nym-requester" #428
- Clients should use only "active" nodes #390
- Allow persistently changing config values from command line #387
- Remove
--config
flag inrun
#385 - Metrics server should return a metrics rate value #374
- Integer staking #372
- Mixnode and gateway blockchain registration #371
- Remove presence notifications #370
- Handle invalid base58 encoding for asymmetric key recovery (encryption and identity) #285
- Socks5 nym client + bitcoin service provider #254
- Message reception in webassembly client #204
- Simplest possible staking system #157
- Validator should hold topology #77
Merged pull requests:
- Removed incentives form url #451 (jstuczyn)
- Removed hardcoded 'good gateways' in favour of pseusorandom choice fr… #450 (jstuczyn)
- Fixed the URL of the websocket #449 (futurechimp)
- Extra argument to specify metrics websocket + long attribute #448 (jstuczyn)
- Explorer public folder being relative to the binary #447 (jstuczyn)
- Slightly friendlier upgrade argument description #446 (jstuczyn)
- Updated nym-run gateway id #445 (jstuczyn)
- Adjusted 'fastmode' settings #444 (jstuczyn)
- Added validators to dashboard + validator and block count #443 (jstuczyn)
- Adding keybase to allowed.list.sample #442 (futurechimp)
- Spawning rocket as a blocking task #440 (jstuczyn)
- Passing validator base url as an argument #439 (jstuczyn)
- Changing default validator location to make it clear we're testnet #437 (futurechimp)
- Added nym prefix to binary names #436 (jstuczyn)
- Feature/explorer #431 (jstuczyn)
- Updated default sending rates #430 (jstuczyn)
- Fixed bunch of clippy warnings #427 (jstuczyn)
- Starting cover traffic stream under correct condition #422 (jstuczyn)
- Updated validator topology #420 (jstuczyn)
- Added option to set incentives address during mix and gateway init #419 (jstuczyn)
- Flag to start network requester in open proxy mode #418 (jstuczyn)
- Renamed 'sphinx-socks' to 'network-requester' #417 (jstuczyn)
- Updated upgrade commands to set new default validator #413 (jstuczyn)
- Feature/network monitor file topology #412 (jstuczyn)
- Removed debug print statement #411 (jstuczyn)
- Feature/controlled reinit #410 (jstuczyn)
- Feature/max retry #409 (jstuczyn)
- Renamed directory arguments to validator #408 (jstuczyn)
- Feature/no run config flag #405 (jstuczyn)
- Feature/error on noninit #404 (jstuczyn)
- Using metrics interval received from server #403 (jstuczyn)
- Feature/validator api update #402 (jstuczyn)
- Feature/directory server transition #401 (jstuczyn)
- Feature/wasm client fix #399 (futurechimp)
- Fix compiler warnings for unneeded mut #398 (ethanfrey)
- Feature/fix dependabot alerts #393 (futurechimp)
- moved new_v4_with_node to test only section #392 (jstuczyn)
- Feature/duration cleanup #391 (jstuczyn)
- Feature/mix ed25519 identity #388 (jstuczyn)
- Feature/double init prevention #386 (jstuczyn)
- Feature/upgrade command #381 (jstuczyn)
- Feature/remove validator #380 (futurechimp)
- Feature/version in config #376 (jstuczyn)
- Feature/network monitor #369 (jstuczyn)
- Added sphinx socks to default workspace members #358 (jstuczyn)
- Feature/wasm update #341 (jstuczyn)
v0.8.1 (2020-09-28)
Closed issues:
- Hardcode two gateways for
client init
if none provided #352 - Make mixnodes take layer with fewest nodes #351
- Change default presence/metrics interval for mixnodes/gateways #349
- Mixnodes should only be able to enter layers 1, 2, or 3 #348
- Docs are inaccurate #337
- Figure out the cause of high packet loss on testnet #159
- Change Topology to GraphTopology #76
Merged pull requests:
v0.8.0 (2020-09-10)
This release introduces, among other things, the following improvements:
- SURB-acks for significant boost to the mixnet messaging reliability,
- SURB-replies for allowing for anonymous replies,
- SOCKS5 proxying capabilities,
- replacing the
AuthToken
with a shared key derived between client and its gateway, - encryption and tagging of mix messages exchanged between client and its gateway,
- end-to-end encryption of traffic between clients,
- general performance and reliability improvements.
Implemented enhancements:
- Change how un-ack'd packets are retransmitted #307
- Feature/socks5 sequencing #318 (jstuczyn)
- Feature/socks client config #316 (jstuczyn)
- Explicit proxy runner + closing local connection if remote is over #314 (jstuczyn)
- Feature/ack messing #313 (jstuczyn)
- Removed client list from topology #301 (jstuczyn)
- Feature/reply surbs #299 (jstuczyn)
Fixed bugs:
- Socks client no longer logging dns resolved addresses #329 (jstuczyn)
- Bugfix/remove packet buffering #300 (jstuczyn)
Closed issues:
- Do not buffer packets for mixes we are reconnecting to #291
- Loop cover messages need to be encrypted! #287
- Get rid of instances of Deref polymorphism antipattern #283
- Remove client list from topology #279
- The messages pushed from gateway should be encrypted. #276
- The shared key between client and gateway should be stored in a file. #273
- Refactor topology, NymTopology trait, and related code #200
- Fragment retransmission for split messages #164
- Clean up common/clients/mix-clients #126
- Reliable chunk transmission #84
- Change how topology is obtained #44
- More secured auth token - some signature on request #5
Merged pull requests:
- Recommended testnet gateway #335 (jstuczyn)
- placeholder contact form url #334 (jstuczyn)
- Knocking down delay on message sending default #332 (futurechimp)
- Made gateway mandatory during init #331 (jstuczyn)
- Renaming client binary #330 (futurechimp)
- v0.8.0 Changelog update #328 (jstuczyn)
- Feature/sphinx socks #326 (futurechimp)
- Feature/print client address on startup #325 (jstuczyn)
- Feature/temp wasm example removal #324 (jstuczyn)
- Feature/websocket js example dependency update #323 (jstuczyn)
- snake_cased replySURBs #322 (jstuczyn)
- Feature/outbound request lists #321 (futurechimp)
- Feature/temp fix for ipv6 #317 (futurechimp)
- Removed unused dependencies #315 (jstuczyn)
- Feature/perf messing #311 (futurechimp)
- Upgrades tungstenite libraries to new versions with 64MB message sizes. #310 (futurechimp)
- Assigning connection shared key post registration #308 (jstuczyn)
- Feature/client binary api update #306 (jstuczyn)
- Removes unused Cargo dependencies so we stay slim and trim. #305 (futurechimp)
- Removes unused code from the socks client implementation #304 (futurechimp)
- Feature/client core #303 (futurechimp)
- Feature/socks5 #302 (futurechimp)
- Updated blake3 dependency to 0.3.5 #281 (jstuczyn)
- Feature/ws send confirmation removal #280 (jstuczyn)
- Added simple react example #275 (keviinfoes)
- Feature/topology refactor #274 (jstuczyn)
- Feature/gateway shared key generation #272 (jstuczyn)
- Removed the healthcheck module, it's no longer in use. #271 (futurechimp)
- Adding description field to wasm client to kill warning #270 (futurechimp)
- Running
npm audit fix
on js examples #269 (futurechimp) - Feature/constant length packet payloads #268 (jstuczyn)
- Feature/wasm topology duplication #265 (jstuczyn)
- Removed misplaced WorkingDirectory parameter #264 (ststefa)
- Feature/packet retransmission #263 (jstuczyn)
- could not count to ten properly #262 (ststefa)
- build(deps): bump websocket-extensions from 0.1.3 to 0.1.4 in /clients/webassembly/js-example #261 (dependabot[bot])
- add disabling feature 'offline-test' for network-dependent tests #260 (hyperfekt)
v0.7.0 (2020-06-08)
The main features of this release are:
- the addition of gateway nodes
- the retiring of the store-and-forward providers in favour of gateway nodes
- got rid of TCP connections for clients, everything now happens through websockets
- a new Nym webassembly client, making it possible interact with Nym easily in browser-based runtimes
- reliability and performance improvements for mixnode networking
- initial validator code running (little functionality yet though)
See the changelog for detailed release notes.
Implemented enhancements:
- Use tokio codecs for multi_tcp_client #207
- Consider rewriting sfw_provider_requests using tokio Framed + Codec #181
Fixed bugs:
- Unexplained traffic increase in presence of unroutable node #232
- Gateway won't send to restarted layer1 nodes #231
Closed issues:
- Move to userpubkey@gatewaypubkey addresses. #235
- Get
start\_local\_network.sh
working with the js example #227 - Fix indeterminate test failure #218
- Remove 'fetch' mechanism from desktop client's client in favour of push #211
- Mixnode - load Sphinx keys like Gateway #209
- Publish NPM package for WebAssembly client #206
- Change --sockettype option on desktop client #203
- Remove TCP sockets from desktop client #202
- Desktop client currently hard-codes first provider #198
- Webassembly client currently hard-codes first provider #197
- Add Rust-based route construction to wasm client #196
- Remove fetch event #195
- Control messages should all be JSON #194
- Desktop Client should attach to gateway websocket #193
- Merge gateway and provider nodes #192
- Remove direct Sphinx dependencies #184
- tests::client_reconnects_to_server_after_it_went_down fails on aarch64-linux #179
- [Windows] Presence notification fill OS socket queue #170
- Figure out connection hiccups between client and provider #162
- Improve the healthchecker #160
- Rethink client addressability #135
- Give some love to the service provider client ledger #116
- Start Gateway node type #80
- Bring health-checker into validator mix-mining #78
- Solidify TCPSocket on client #72
- scripts: run_local_network.sh doesn't die nicely #45
- WASM version of the Sphinx packet #19
- Persistent socket connection (TCP Socket with provider) #18
- Persistent socket connection (Websocket with client) #17
- Persistent socket connection (TCP Socket with client) #13
- Persistent socket connection (Websocket with client) #12
- Persistently store ledger with registered clients and their auth tokens #6
Merged pull requests:
- Filtering compatible node versions #259 (jstuczyn)
- systemd service unit example #257 (ststefa)
- renaming desktop to native client #251 (futurechimp)
- Adding a pipenv dependencies file to the python client example #250 (futurechimp)
- Cleaning up startup messages in native client #249 (futurechimp)
- fixing up readme, bumping version number #246 (futurechimp)
- Feature/sphinx socket packet encoder #245 (jstuczyn)
- Adding some documentation to the webassembly client #244 (futurechimp)
- Simplified some names and used the published npm package #242 (futurechimp)
- Feature/make andrew happy #241 (futurechimp)
- Removed redundant console.log #240 (jstuczyn)
- Feature/explicit gateway addressing #239 (jstuczyn)
- Feature/clean up #238 (futurechimp)
- Feature/addressing update #237 (jstuczyn)
- Added hidden init flag to increase default traffic volume #234 (jstuczyn)
- Bugfix/issue#231 #233 (jstuczyn)
- Fixed unwrap on none value #230 (jstuczyn)
- Bugfix/gateway crash on incomplete ws handshake #229 (jstuczyn)
- Feature/start local network improvements #228 (jstuczyn)
- Updated directory_client reqwest to 0.10 #226 (jstuczyn)
- Updated js-example to get gateway from topology #225 (jstuczyn)
- Requiring explicit timestamp when converting from rest to service mix… #224 (jstuczyn)
- Feature/minor docs fixes #223 (futurechimp)
- Removed having to care about SURB_ID #222 (jstuczyn)
- Moved relevant parts of old mix-client to nymsphinx #221 (jstuczyn)
- Feature/load keys on run #220 (jstuczyn)
- Updated wasm code to work with new gateway and updated the example #219 (jstuczyn)
- validator: removing health checker #217 (futurechimp)
- The great sfw-provider purge of 2020 #216 (jstuczyn)
- Fixed compilation warnings on unreachable code when compiling with fe… #215 (jstuczyn)
- Feature/healthchecker removal #214 (jstuczyn)
- Bugfix/send to correct gateway #213 (jstuczyn)
- Feature/client socket adjustments #212 (jstuczyn)
- Sending sphinx packet independent of the receiver task #210 (jstuczyn)
- Feature/gateway provider merge #208 (jstuczyn)
- Feature/route from topology #201 (futurechimp)
- Intermediate gateway-heart surgery checkpoint #199 (jstuczyn)
- Feature/wasm js demo #191 (futurechimp)
- Feature/improve js example #190 (futurechimp)
- Feature/limit direct sphinx dependency + remove direct curve25519 dependency from wasm client #189 (jstuczyn)
- Feature/very minor refactoring #188 (jstuczyn)
- Feature/persistent ledger #187 (jstuczyn)
- Optimising wasm build size, shaves about 10% size off our wasm output. #186 (futurechimp)
- Ran
npm audit fix
on the wasm demo directory. #185 (futurechimp) - Feature/nym sphinx wasm #183 (futurechimp)
- Improvements to sfw-provider - client communcation #180 (jstuczyn)
- Adding Apache 2 license headers to all files #178 (futurechimp)
- Feature/service persistence #171 (futurechimp)
v0.6.0 (2020-04-07)
This release fixes bugs in v0.5.0. All testnet node operators are advised to upgrade from v0.5.0.
- fixed premature EOFs on socket connections by using the new multi-TCP client
- fixed a bug causing client and mixnode connection hangs for misconfigured nodes
- by default 'Debug' section of saved configs is now empty and default values are used unless explicitly overridden
- introduced packet chunking allowing clients to send messages of arbitrary length. Note that packet retransmission is not implemented yet, so for longer messages, you might not get anything
- mixnodes now periodically log stats regarding number of packets mixed
- fixed possible client hang ups when sending high rates of traffic
- preventing mixes from starting with same announce-host as an existing node
- fixed overflow multiplication if connection backoff was set to a high value
Closed issues:
- Periodic activity summary #172
- Move contents of 'common/addressing' into 'common/nymsphinx' #161
- Make builds simpler for node operators #114
- Chunking in
nym-client
(receive) #83 - Chunking in
nym-client
(send) #82
Merged pull requests:
- Feature/tcp client connection timeout #176 (jstuczyn)
- Feature/mixing stats logging #175 (jstuczyn)
- Preventing multiplication overflow for reconnection backoff #174 (jstuczyn)
- Feature/non mandatory debug config #173 (jstuczyn)
- Feature/addressing move #169 (jstuczyn)
- Checking if any other node is already announcing the same host #168 (jstuczyn)
- Bugfix/closing tcp client connections on drop #167 (jstuczyn)
- Yielding tokio task upon creating loop/real traffic message #166 (jstuczyn)
- Feature/minor healthchecker improvements #165 (jstuczyn)
- Feature/packet chunking #158 (jstuczyn)
v0.5.0 (2020-03-23)
- Introduced proper configuration options for mixnodes, clients and providers. Everything is initialised with the
init
command that creates a saved config.toml file. To run the binary you now usenym-<binary-name> run
, for examplenym-mixnode run
. Each flag can be overwritten at any stage with the following priority: run flags, data in config.toml and finally init flags. - Made mixnet TCP connections persistent. When sending a Sphinx packet, it should no longer go through the lengthy process of establishing a TCP connection only to immediately tear it down after sending a single packet. This significantly boosts throughput.
- A lot of work on code clean up and refactoring including some performance fixes.
- Client now determines its default nym-sfw-provider at startup and should always try to connect to the same one. Note: we still can't reliably run more than a single provider on the network.
- Logging messages now have timestamps and when running at more aggressive log mode (like debug or even trace) we should no longer be overwhelmed with messages from external crates.
- Initial compatibility with Windows. Please let us know if you have problems.
- More work on validator, including initial Tendermint integration in Rust, and the start of the mixmining system.
Closed issues:
- Introduce timestamps to log messages #124
Merged pull requests:
- removing spooky startup warning message #155 (futurechimp)
- Some more startup fixes #154 (futurechimp)
- Entering runtime context when creating mix traffic controller #153 (jstuczyn)
- Friendlification of startup messages #151 (futurechimp)
- Entering runtime context when creating packet forwarder #150 (jstuczyn)
- Feature/add topology to validator #149 (futurechimp)
- Making code work on windows machines #148 (jstuczyn)
- validator: adding HTTP interface #146 (futurechimp)
- Extracting the log setup #145 (futurechimp)
- Feature/optional location in configs #144 (jstuczyn)
- Feature/concurrent connection managers #142 (jstuczyn)
- Defaulting for global 'Info' logging level if not set in .env #140 (jstuczyn)
- Provider not storing loop cover messages #139 (jstuczyn)
- Using log builder to include timestamps + filters #138 (jstuczyn)
- Feature/client ws refactoring #134 (jstuczyn)
- Bugfix/metrics presence delay fix #133 (jstuczyn)
- Removed outdated and redundant sample-configs #131 (jstuczyn)
- If not overridden, 'announce-host' should default to 'host' #130 (jstuczyn)
- Nice to know who we're talking to at startup... #129 (futurechimp)
v0.5.0-rc.1 (2020-03-06)
Closed issues:
- COMPILE: Could not compile project using Cargo #118
- Wherever unbounded mpsc channel is used, prefer unbounded_send() over send().await #90
- Add a
Send
method in nym-client #81 - Start on Tendermint integration #79
- Ditch DummyKeyPair #75
- Replace args with proper config files #69
- Fix incorrectly used Arcs #47
- nym-mixnode mandatory host option #26
- Create config struct for mixnode (possibly also for client) #21
- Reuse TCP socket connection between client and mixnodes #20
- Once implementation is available, wherever appropriate, replace
futures::lock::Mutex
withfutures::lock::RwLock
#9 - Check if RwLock on MixProcessingData is still needed #8
- Reuse TCP socket connection between mixnodes and providers #3
- Persistent socket connection with other mixes #2
Merged pull requests:
- Feature/client refactoring #128 (jstuczyn)
- Feature/provider refactoring #125 (jstuczyn)
- all: fixing mis-spelling #123 (futurechimp)
- Feature/further clippy fixes #121 (jstuczyn)
- Feature/tokio tungstenite dependency fix #120 (jstuczyn)
- Feature/config files cleanup #119 (jstuczyn)
- Feature/config files #117 (jstuczyn)
- Feature/un genericize keys #111 (futurechimp)
- Feature/abci #110 (futurechimp)
- Simplified the use of generics on identity keypair by using output types #109 (jstuczyn)
v0.4.1 (2020-01-29)
Closed issues:
- Change healthcheck to run on provided topology rather than pull one itself #95
Merged pull requests:
- Bugfix/healthcheck on provided topology #108 (jstuczyn)
- Feature/check packet length #99 (futurechimp)
v0.4.0 (2020-01-28)
Nym 0.4.0 Platform
In this release, we're taking a lot more care with version numbers, so that we can ensure upgrade compatibility for mixnodes, providers, clients, and validators more easily.
This release also integrates a health-checker and network topology refresh into the Nym client, so that the client can intelligently choose paths which route around any non-functional or incompatible nodes.
0.4.0-rc.2 (2020-01-28)
v0.4.0-rc.2 (2020-01-28)
Merged pull requests:
v0.4.0-rc.1 (2020-01-28)
Closed issues:
- Check Sphinx packet length in client #98
- workflow test #97
- Client SemVer #85
- Move PemStore #74
- Periodic client refresh #70
- Logging #68
- Nym-client refactor #67
- Stop panicking! #66
- Fix Mixnode Panic on Sphinx packet replay #65
- Convert older code to start using logging #35
- Convert to non-url-safe base64 (everywhere) #28
- If a thread blows at startup, panic the entire application #15
- Split provider/mod.rs #10
Merged pull requests:
- Feature/health checker with existing keys #105 (jstuczyn)
- Feature/remove topology equality check #104 (futurechimp)
- Feature/base58 #102 (futurechimp)
- Feature/panic improvements #101 (jstuczyn)
- Feature/fix sphinx unwraps #100 (futurechimp)
- Feature/version filtering improvements #96 (futurechimp)
- Feature/refreshing topology #94 (jstuczyn)
- Feature/consistent logging #93 (futurechimp)
- Feature/semver client #92 (futurechimp)
- Feature/client refactor #91 (jstuczyn)
- Release builds should no longer silently fail - everything will be im… #89 (jstuczyn)
v0.3.3 (2020-01-20)
Fixed bugs:
- Nym client crashing and disconnecting local websocket with complaint about binary data #56
Closed issues:
- Websocket text fix #64
- Restore nym-client lib in crate #63
- Make websocket not crash on ping or pong messages #62
- Messages returned by fetch are base64 encoded #55
- Check layer 1 connectivity at client start #38
- Check required sfw-provider args #27
- Make Electron app work with new Rust mixnet client #16
- Take version numbers into account when picking routes #14
Merged pull requests:
- Feature/websocket improvements #88 (jstuczyn)
- Using println rather than log for startup banner, it's not an error #87 (futurechimp)
- Feature/nym client lib #61 (jstuczyn)
v0.3.2 (2020-01-17)
Merged pull requests:
v0.3.1 (2020-01-16)
Merged pull requests:
v0.3.0 (2020-01-14)
Closed issues:
- Error referring to mismatched types caused by topology #46
- Provider needs to announce two of its addresses (+ issue of hardcoded port) #32
- Port run_network.sh from old Go mixnet #30
- Health Checker inside Validator #29
- Combine Rust repositories into a single master repo containing multiple crates #24
- Fix the version numbers on provider and mixnode #23
- Travis releases for Nym #22
- Add version number to presence #4
- Add version number to presence #1
Merged pull requests:
- Feature/client topology filtering #54 (jstuczyn)
- print public key for nym client tools #53 (mileschet)
- Showing binding warning on binding to localhost, 0.0.0.0 or 127.0.0.1 #52 (jstuczyn)
- validator: moving sample config files into sample configs directory #51 (futurechimp)
- Feature/validator health checker #50 (jstuczyn)
- Improving websocket connection errors #49 (futurechimp)
- Feature/crypto crate #48 (jstuczyn)
- Feature/chill log messages #43 (futurechimp)
- persistence: improving PEM file reading and parsing failure messages #42 (futurechimp)
- Providing a nicer error than "failed on unwrap()" when topology retri… #41 (futurechimp)
- Prettying up sfw-provider start sequence a bit. #40 (futurechimp)
- Removing the run command from code and documentation #39 (futurechimp)
- Feature/script/localnet #37 (futurechimp)
- Feature/arguments fix #36 (jstuczyn)
- Feature/crates cleanup #34 (jstuczyn)
- Features/version number to presence #25 (aniampio)
- Feature/minor client changes #7 (jstuczyn)
v0.2.0 (2020-01-07)
0.2.0 (2020-01-06)
* This Changelog was automatically generated by github_changelog_generator