Skip to content

Latest commit

 

History

History
588 lines (471 loc) · 49.3 KB

CHANGELOG.md

File metadata and controls

588 lines (471 loc) · 49.3 KB

Changelog

v0.9.0 (2020-11-13)

Full Changelog

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:

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 in run #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:

v0.8.1 (2020-09-28)

Full Changelog

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)

Full Changelog

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:

Fixed bugs:

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:

v0.7.0 (2020-06-08)

Full Changelog

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:

v0.6.0 (2020-04-07)

Full Changelog

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:

v0.5.0 (2020-03-23)

Full Changelog

  1. 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 use nym-<binary-name> run, for example nym-mixnode run. Each flag can be overwritten at any stage with the following priority: run flags, data in config.toml and finally init flags.
  2. 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.
  3. A lot of work on code clean up and refactoring including some performance fixes.
  4. 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.
  5. 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.
  6. Initial compatibility with Windows. Please let us know if you have problems.
  7. 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:

v0.5.0-rc.1 (2020-03-06)

Full Changelog

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 with futures::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:

v0.4.1 (2020-01-29)

Full Changelog

Closed issues:

  • Change healthcheck to run on provided topology rather than pull one itself #95

Merged pull requests:

v0.4.0 (2020-01-28)

Full Changelog

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)

Full Changelog

v0.4.0-rc.2 (2020-01-28)

Full Changelog

Merged pull requests:

v0.4.0-rc.1 (2020-01-28)

Full Changelog

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:

v0.3.3 (2020-01-20)

Full Changelog

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:

v0.3.2 (2020-01-17)

Full Changelog

Merged pull requests:

v0.3.1 (2020-01-16)

Full Changelog

Merged pull requests:

v0.3.0 (2020-01-14)

Full Changelog

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:

v0.2.0 (2020-01-07)

Full Changelog

0.2.0 (2020-01-06)

Full Changelog

* This Changelog was automatically generated by github_changelog_generator