2024.08.2.3
Binary Versions
faucet
v0.4.32nat-detection
v0.2.2node-launchpad
v0.3.12safe
v0.94.1safenode
v0.110.1safenode-manager
v0.10.2safenodemand
v0.10.2safenode_rpc_client
v0.6.27sn_auditor
v0.2.4
🔦 Highlights
- Increasing the relay server's circuit bytes limit reduces incoming connection errors. We expect this to improve earnings for home nodes.
- The Launchpad has several new features:
- The user can choose a different drive for the node's data directory.
- New sections in the UI:
Options
andHelp
. - A navigation bar has been added with
Status
,Options
andHelp
sections. - The node's logs can be viewed from the
Options
section.
- The node manager
start
command waits for the node to connect to the network before attempting to start the next node. See the detailed changelog for further details. - Several new metrics are available for the node. See the detailed changelog for more information.
Merged Pull Requests
2024-07-23 #2001 -- chore: remove push triggers for release workflow [@jacderida]
2024-07-23 #2000 -- chore(node): increase bad node & bootstrap interval [@RolandSherwin]
2024-07-26 #1981 -- LocalFirst Swarm [@joshuef]
2024-07-29 #2006 -- refactor: remove some lazy_static deps; unused dep [@b-zee]
2024-07-29 #2008 -- feat(launchpad): user interface tweaks [@mazzi]
2024-07-29 #1997 -- feat(manager): optionally set the different ports when running local network [@RolandSherwin]
2024-07-29 #2009 -- chore(launchpad): popup crate and del unused code [@mazzi]
2024-07-29 #2005 -- chore(client): debug resend spend [@maqi]
2024-07-31 #2015 -- chore: correct logging of cash_note and confirmed_spend disk ops [@maqi]
2024-07-31 #2018 -- chore(cli): [#2014] explicitly show the uploaded file's address [@mickvandijke]
2024-07-31 #2017 -- fix(node): check whether already received an incoming payment [@maqi]
2024-07-31 #2016 -- chore(cli): [#2012] show download time per file [@mickvandijke]
2024-08-01 #2007 -- chore(node): trust a parent spend with majority [@maqi]
2024-08-02 #2020 -- chore(node): check confirmed_spend existence [@maqi]
2024-08-05 #2022 -- fix(ci): clean out target directory to save space [@RolandSherwin]
2024-08-05 #2003 -- chore(node): [#1999] panic on upnp event GatewayNotFound
[@mickvandijke]
2024-08-05 #2021 -- feat(metrics): track the bad node count [@RolandSherwin]
2024-08-05 #2023 -- fix(node): terminate make_payment process during unrecoverable error [@maqi]
2024-08-06 #2024 -- docs: update readme about transfers [@grumbach]
2024-08-06 #2013 -- fix(manager): dynamic sleep interval during start and upgrade [@RolandSherwin]
2024-08-07 #2026 -- fix(network): add peer to blocklist only after informing it [@RolandSherwin]
2024-08-07 #2027 -- fix(node): avoid deserialise error cause a confirmed_spend to be non-exist [@maqi]
2024-08-07 #2029 -- fix(metrics): update current wallet balance after forwarding rewards [@RolandSherwin]
2024-08-07 #2028 -- refactor(network): remove some unused network events [@RolandSherwin]
2024-08-08 #2031 -- feat(network): expose bandwidth per transport protocol [@RolandSherwin]
2024-08-12 #2034 -- test: verification involving child key [@maqi]
2024-08-15 #2043 -- feat(node): prune unrelevant records if accumulated too many [@maqi]
2024-08-16 #2047 -- fix: save node registry on every upgrade [@jacderida]
2024-08-19 #2041 -- feat(launchpad): new layout sections and features [@mazzi]
2024-08-19 #2040 -- feat(metrics): export metadata via the metrics port [@RolandSherwin]
2024-08-19 #2051 -- feat(metrics): expose values from QuotingMetrics [@RolandSherwin]
2024-08-21 #2053 -- feat(networking): increase circuit bytes limit [@b-zee]
2024-08-26 #2063 -- refactor(metrics): revert store cost metrics breaking change [@RolandSherwin]
Detailed Changes
Network
Added
- The node will now report its bandwidth usage through the metrics endpoint.
- The metrics server has a new
/metadata
path which will provide static information about the node, including peer ID and version. - The metrics server exposes more metrics on store cost derivation. These include relevant record count and number of payments received.
- The metrics server exposes metrics related to bad node detection.
- Test to confirm main key can’t verify signature signed by child key.
- Avoid excessively high quotes by pruning records that are not relevant.
Changed
- Bad node detection and bootstrap intervals have been increased. This should reduce the number of messages being sent.
- The spend parent verification strategy was refactored to be more aligned with the public network.
- Nodes now prioritize local work over new work from the network, which reduces memory footprint.
- Multiple GET queries to the same address are now de-duplicated and will result in a single query being processed.
- Improve efficiency of command handling and the record store cache.
- A parent spend is now trusted with a majority of close group nodes, rather than all of them. This increases the chance of the spend being stored successfully when some percentage of nodes are slow to respond.
Fixed
- The amount of bytes a home node could send and receive per relay connection is increased. This solves a problem where transmission of data is interrupted, causing home nodes to malfunction.
- Fetching the network contacts now times out and retries. Previously we would wait for an excessive amount of time, which could cause the node to hang during start up.
- If a node has been shunned, we inform that node before blocking all communication to it.
- The current wallet balance metric is updated more frequently and will now reflect the correct state.
- Avoid burnt spend during forwarding by correctly handling repeated CashNotes and confirmed spends.
- Fix logging for CashNote and confirmed spend disk ops
- Check whether a CashNote has already been received to avoid duplicate CashNotes in the wallet.
Node Manager
Added
- The
local run
command supports--metrics-port
,--node-port
and--rpc-port
arguments. - The
start
command waits for the node to connect to the network before attempting to start the next node. If it takes more than 300 seconds to connect, we consider that a failure and move to the next node. The--connection-timeout
argument can be used to vary the timeout. If you prefer the old behaviour, you can use the--interval
argument, which will continue to apply a static, time-based interval.
Changed
- On an upgrade, the node registry is saved after each node is processed, as opposed to waiting until the end. This means if there is an unexpected failure, the registry will have the information about which nodes have already been upgraded.
Launchpad
Added
- The user can choose a different drive for the node's data directory.
- New sections in the UI:
Options
andHelp
. - A navigation bar has been added with
Status
,Options
andHelp
sections. - The node's logs can be viewed from the
Options
section.
Changed
- Increased spacing for title and paragraphs.
- Increased spacing on footer.
- Increased spacing on box titles.
- Moved
Discord Username
from the top title into theDevice Status
section. - Made the general layout of
Device Status
more compact.
Client
Added
- The
safe files download
command now displays duration per file.
Changed
- Adjust the put and get configuration scheme to align the client with a more realistic network which would have some percentage of slow nodes.
- Improved spend logging to help debug the upload process.
Fixed
- Avoid a corrupt wallet by terminating the payment process during an unrecoverable error.