Skip to content

Latest commit

 

History

History
898 lines (726 loc) · 78.7 KB

CHANGELOG.md

File metadata and controls

898 lines (726 loc) · 78.7 KB

Changelog

v0.11.0 (2021-07-21)

Full Changelog

Implemented enhancements:

  • Investigate why --clients-host and --mix-host are distinct for gateways #435
  • Bugfix/verloc fixes and adjustments #618 (jstuczyn)

Fixed bugs:

  • Update the metrics endpoint #597
  • Intercontinental problems #143

Closed issues:

  • Rename PagedResponse into PagedMixnodeResponse #657
  • Change u64 layer type in contract code #648
  • Change String types of sphinx and identity keys in contract code #647
  • Remove the terrible decimal_sub_one once we update contract/validators #639
  • After update: failed to receive reply to our echo packet within 1.5s. Stopping the test #621
  • update to v0.10.1, it show ERROR message "failed to receive reply to our echo packet within 1.5s" #620
  • Make validator client send as much tokens for bonding as required #614
  • Update mixnode init to not query for entire topology #610
  • Potentially extend metrics with number of dropped packets #595
  • Delegated staking for gateways #579
  • Delegated staking for mixnodes #578
  • Improved mixnode and gateway info #577
  • Gateway bonding #576
  • No graceful degradation on low traffic #513
  • Network monitor should not update when 0 packets come back #456
  • Add mixnode statistics endpoint #406

Merged pull requests:

v0.10.1 (2021-05-25)

Full Changelog

Closed issues:

  • Prometheus metrics doesn't work #606
  • Bonding hostname vs. ip-address does not show up on NYM explorer #593
  • Cannot assign requested address #584
  • Native client upgrade command is broken #582
  • Spread directory requests across good validators #580
  • Change network monitor to use currency-based rewareds #540
  • Unregistration for protocol ipv6 does not work #511
  • Network monitor view on validators #373

Merged pull requests:

v0.10.0 (2021-04-15)

Full Changelog

This release brings a distributed directory authority powered by Cosmos SDK and CosmWasm smart contracts. It is designed to run Testnet Finney, the new Nym testnet.

Closed issues:

  • When I run this command :'./nym-mixnode run --id zzznym', an error occurs #548

Merged pull requests:

Full Changelog

Implemented enhancements:

  • Add option to whitelist IPv4 ranges to allowed.list in sphinx-socks #415
  • Mixmining monitoring for gateways #384

Fixed bugs:

  • Network requester should periodically remove stale proxies #424
  • Network requester now prints correct version with --version #478 (jstuczyn)

Closed issues:

  • Change topology to work with validators. #538
  • Unable to rejoin the network after powerdown #514
  • nym-socks5-client 0.9.2 issue with outbound_request_filter.check #498
  • nym-socks5-client high CPU usage on idle #491
  • network requester too many Received a 'Send' before 'Connect' - going to buffer the data #483
  • Socks5 client loops on malformed - invalidaddress message #482
  • Socks5 client hangs #479
  • Network Requester -V flag does not print version #469
  • Gateway reconnection (wasm) #458
  • Client warning 'No valid topology' #343
  • private key file permission bits too open, readable for others #319
  • Fix dependabot security notice #267
  • Change how time intervals are serialized in configs #141

Merged pull requests:

v0.9.2 (2020-11-26)

Full Changelog

This release brings networking improvements, eliminating blocking calls and improving mixnode and gateway scalability.

Fixed bugs:

  • Putting initial packet onto the queue when establishing connection #471 (jstuczyn)

Merged pull requests:

v0.9.1 (2020-11-24)

Full Changelog

The main features of this release are:

  • explicit unregister command for mixnodes
  • introduced gateway client reconnection in case of obvious network failures
  • changed network monitor to send at a constant, adjustable, rate
  • changed the way in which packets are delayed by mixnodes that should reduce number of tasks spawned
  • changed the way in which packets are forwarded to further mixes that should get rid of possible blocking

See the changelog for detailed release notes.

Implemented enhancements:

Fixed bugs:

Closed issues:

  • Gateway reconnections (simple) #457
  • Slow down network monitor sending rate #455
  • Deploy the new explorer on the same box as metrics. #433
  • Too many open files #366
  • nym-mixnode doesn't bind to any port (Ubuntu 20.04) #290

Merged pull requests:

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

Fixed bugs:

  • React wasm example not compiling #394

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
  • Persistently store ledger with registered clients and their auth tokens #6
  • Persistent socket connection (Websocket with client) #17
  • Persistent socket connection (TCP Socket with provider) #18
  • Persistent socket connection (Websocket with client) #12
  • Persistent socket connection (TCP Socket with client) #13
  • WASM version of the Sphinx packet #19

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
  • Check if RwLock on MixProcessingData is still needed #8
  • Once implementation is available, wherever appropriate, replace futures::lock::Mutex with futures::lock::RwLock #9
  • Persistent socket connection with other mixes #2
  • Reuse TCP socket connection between client and mixnodes #20
  • Reuse TCP socket connection between mixnodes and providers #3

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
  • Take version numbers into account when picking routes #14
  • Make Electron app work with new Rust mixnet client #16

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