30 KiB
Changelog
v0.7.0
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.shworking 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
- [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:
- 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 fixon 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
initcommand 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
Sendmethod 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::Mutexwithfutures::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:
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/check packet length #99 (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