Releases: maidsafe/autonomi
2024.07.1.1
Binaries
faucet
v0.4.31nat-detection
v0.2.1node-launchpad
v0.3.11safe
v0.94.0safenode
v0.110.0safenode-manager
v0.10.1safenodemand
v0.10.1safenode_rpc_client
v0.6.26sn_auditor
v0.2.3
🔦 Highlights
- The introduction of a record-store cache has significantly reduced the node's disk IO. As a side
effect, the CPU does less work, and performance improves. RAM usage has increased by around 25MB per
node, but we view this as a reasonable trade off. - The node's relay server now supports more connections: when running with
--home-network
, up to
256 will be supported, and otherwise, it will be 1024. Along with minor tweaks to utilize the
relay server properly, this should hopefully result in less connections being dropped. - Reward forwarding is more robust.
- Chunk verification is now probabilistic, which should reduce messaging. In combination with
replication messages also being reduced, this should result in a bandwidth usage reduction of
~20%. - Replication messages are less frequent, reducing bandwidth by ~20% per node.
- Bad nodes and nodes with a mismatched protocol are now added to a block list. This reduces the
chance of a network interference and the impact of a bad node in the network. - For the time being, hole punching has been removed. It was causing handshake time outs, resulting
in home nodes being less stable. It will be re-enabled in the future. - Wallet password encryption enhances security, and in the case of secret key leakage, prevents
unauthorized access. - Native Apple Silicon (M-series) binaries have been added to our releases, meaning M-series Mac
users do not have to rely on running Intel binaries with Rosetta.
Merged Pull Requests
2024-07-11 #1945 -- feat: double spend spam protection
2024-07-11 #1952 -- fix(auditor): create auditor directory if it doesn't exist
2024-07-11 #1951 -- test(spend_simulation): add more attacks
2024-07-11 #1953 -- chore/fix(resources): use more portable shebang
2024-07-12 #1959 -- refactor outdated conn removal
2024-07-12 #1964 -- refactor(cli)!: wallet address
and wallet create
changes
2024-07-15 #1946 -- docs(sn_client): Basic documentation
2024-07-15 #1966 -- fix(network): do not add bootstrap peer as relay candidate
2024-07-16 #1969 -- chore(network): force close connection if there is a protocol mistmatch
2024-07-16 #1972 -- feat(safenode_rpc_client): added --version
flag
2024-07-17 #1973 -- Auditor supplement features
2024-07-17 #1975 -- feat(networking): remove self.close_group and checks there as unused
2024-07-18 #1976 -- chore(networking): make ChunkVerification probabalistic
2024-07-18 #1949 -- feat(wallet): wallet secret key file encryption
2024-07-18 #1977 -- Reduce replication msg processing
2024-07-18 #1983 -- fix(node): remove cn from disk and flush to confirmed_spends during forwarding
2024-07-18 #1980 -- feat(networking): add small record cache
2024-07-18 #1982 -- feat(network): implement blocklist behaviour
2024-07-18 #1984 -- chore(node): move sn_client to dev deps
2024-07-18 #1985 -- Fix Nano count disappearing from Launchpad after restart
2024-07-19 #1971 -- feat!: limit error surface
2024-07-19 #1986 -- Add native Apple Silicon binaries to the release artifacts
2024-07-19 #1955 -- feat(networking): relax relay limits
2024-07-24 #1990 -- chore: implement new process in release workflow
Detailed Changes
Network
Added
- Protection against an attack allowing bad nodes or clients to shadow a spend (make it disappear)
through spamming. - Nodes allow more relayed connections through them. Also, home nodes will relay through 4 nodes
instead of 2. Without these changes, relays were denying new connections to home nodes, making them
difficult to reach. - Auditor tracks forwarded payments using the default key.
- Auditor tracks burnt spend attempts and only credits them once.
- Auditor collects balance of UTXOs.
- Added different attack types to the spend simulation test to ensure spend validation is solid.
- Bad nodes and nodes with a mismatched protocol are now added to a block list. This reduces the
chance of a network interference and the impact of a bad node in the network. - The introduction of a record-store cache has significantly reduced the node's disk IO. As a side
effect, the CPU does less work, and performance improves. RAM usage has increased by around 25MB per
node, but we view this as a reasonable trade off.
Changed
- For the time being, hole punching has been removed. It was causing handshake time outs, resulting
in home nodes being less stable. It will be re-enabled in the future. - Force connection closure if a peer is using a different protocol.
- Reserve trace level logs for tracking event statistics. Now you can use
SN_LOG=v
to get more
relevant logs without being overwhelmed by event handling stats. - Chunk verification is now probabilistic, which should reduce messaging. In combination with
replication messages also being reduced, this should result in a bandwidth usage reduction of
~20%.
Fixed
- During payment forwarding, CashNotes are removed from disk and confirmed spends are stored to
disk. This is necessary for resolving burnt spend attempts for forwarded payments. - Fix a bug where the auditor was not storing data to disk because of a missing directory.
- Bootstrap peers are not added as relay candidates as we do not want to overwhelm them.
Client
Added
- Basic global documentation for the
sn_client
crate. - Option to encrypt the wallet private key with a password, in a file called
main_secret_key.encrypted
, inside the wallet directory. - Option to load a wallet from an encrypted secret-key file using a password.
- The
wallet create
command provides a--password
argument to encrypt the wallet. - The
wallet create
command provides a--no-password
argument skip encryption. - The
wallet create
command provides a--no-replace
argument to suppress a prompt to replace an
existing wallet. - The
wallet create
command provides a--key
argument to create a wallet from a hex-encoded
private key. - The
wallet create
command provides a--derivation
argument to set a derivation passphrase to
be used with the mnemonic to create a new private key. - A new
wallet encrypt
command encrypts an existing wallet.
Changed
- The
wallet address
command no longer creates a new wallet if no wallet exists. - The
wallet create
command creates a wallet using the account mnemonic instead of requiring a
hex-encoded secret key. - The
wallet create
--key
and--derivation
arguments are mutually exclusive.
Launchpad
Fixed
- The
Total Nanos Earned
stat no longer resets on restart.
RPC Client
Added
- A
--version
argument shows the binary version
Other
Added
- Native Apple Silicon (M-series) binaries have been added to our releases, meaning M-series Mac
users do not have to rely on running Intel binaries with Rosetta.
sn_node-v0.109.0
Added
- The node exposes more metrics, including its uptime, number of connected peers, number of peers in
the routing table, and the number of open connections. These will help us more effectively
diagnose user issues.
Changed
- Communication between node and client is strictly limited through synchronised public keys. The
current beta network allows the node and client to use different public keys, resulting in
undefined behaviour and performance issues. This change mitigates some of those issues and we also
expect it to prevent other double spend issues. - Reduced base traffic for nodes, resulting in better upload performance. This will result in better
distribution of nanos, meaning users with a smaller number of nodes will be expected to receive
nanos more often.
Fixed
- In the case where a client retries a failed upload, they would re-send their payment. In a rare
circumstance, the node would forward this reward for a second time too. This is fixed on the node. - Nodes are prevented from double spending under rare circumstances.
- ARM builds are no longer prevented from connecting to the network.
sn_cli-v0.93.9
chore(release): stable 2024-07-08 sn_networking-v0.17.0 sn_peers_acquisition-v0.4.0 sn_client-v0.108.0 nat-detection-v0.2.0 sn_node-v0.109.0 sn-node-manager-v0.10.0 node-launchpad-v0.3.10 sn_build_info-v0.1.9 sn_registers-v0.3.15 sn_transfers-v0.18.8 sn_protocol-v0.17.5 sn_logging-v0.2.30 sn_auditor-v0.2.2 sn_cli-v0.93.9 sn_faucet-v0.4.30 sn_metrics-v0.1.10 sn_service_management-v0.3.8 sn_node_rpc_client-v0.6.25
sn_auditor-v0.2.2
chore(release): stable 2024-07-08 sn_networking-v0.17.0 sn_peers_acquisition-v0.4.0 sn_client-v0.108.0 nat-detection-v0.2.0 sn_node-v0.109.0 sn-node-manager-v0.10.0 node-launchpad-v0.3.10 sn_build_info-v0.1.9 sn_registers-v0.3.15 sn_transfers-v0.18.8 sn_protocol-v0.17.5 sn_logging-v0.2.30 sn_auditor-v0.2.2 sn_cli-v0.93.9 sn_faucet-v0.4.30 sn_metrics-v0.1.10 sn_service_management-v0.3.8 sn_node_rpc_client-v0.6.25
sn-node-manager-v0.10.0
Added
- Global
--debug
and--trace
arguments are provided. These will output debugging and trace-level
logging, respectively, direct to stderr.
Changed
- The mechanism used by the node manager to refresh its state is significantly changed to address
issues that caused commands to hang for long periods of time. Now, when using commands like
start
,stop
, andreset
, users should no longer experience the commands taking excessively
long to complete. - The
nat-detection run
command provides a default list of servers, meaning the--servers
argument is now optional.
node-launchpad-v0.3.10
Added
- Launchpad and node versions are displayed on the user interface.
Changed
- The node manager change for refreshing its state also applies to the launchpad. Users should
experience improvements in operations that appeared to be hanging but were actually just taking
an excessive amount of time to complete.
Fixed
- The correct primary storage will now be selected on Linux and macOS.
sn_node-v0.108.4
Other
- release
- release
- (release) sn_client-v0.107.5/sn_networking-v0.16.3/sn_cli-v0.93.4/sn_node-v0.107.4/node-launchpad-v0.3.5/sn-node-manager-v0.9.4/sn_auditor-v0.1.23/sn_peers_acquisition-v0.3.3/sn_faucet-v0.4.25/sn_node_rpc_client-v0.6.22
- (network) set metrics server to run on localhost
sn_cli-v0.93.8
Other
- release
- release
- (release) sn_client-v0.107.5/sn_networking-v0.16.3/sn_cli-v0.93.4/sn_node-v0.107.4/node-launchpad-v0.3.5/sn-node-manager-v0.9.4/sn_auditor-v0.1.23/sn_peers_acquisition-v0.3.3/sn_faucet-v0.4.25/sn_node_rpc_client-v0.6.22
- (network) set metrics server to run on localhost
sn_auditor-v0.1.26
Fixed
- (audit) dont overwrite beta tracking payments
node-launchpad-v0.3.9
Added
- (launchpad) enable user to reset nodes
- (launchpad) obtain stats from the metrics endpoint
- (manager) provide option to start metrics server using random ports
Fixed
- (launchpad) update getting-started link
- (launchpad) modify the device status panel
- (manager) add metrics port if not set
Other
- release
- release
- (launchpad) update text and logic for reset if discord_id change
- (release) sn_client-v0.107.5/sn_networking-v0.16.3/sn_cli-v0.93.4/sn_node-v0.107.4/node-launchpad-v0.3.5/sn-node-manager-v0.9.4/sn_auditor-v0.1.23/sn_peers_acquisition-v0.3.3/sn_faucet-v0.4.25/sn_node_rpc_client-v0.6.22
- (launchpad) move log line out of the loop
- (launchpad) clippy fixes
- (launchpad) update log folder structure
- (release) sn_auditor-v0.1.22/sn_faucet-v0.4.24/node-launchpad-v0.3.4