Welcome to the last update of the year. We’re happy to be finishing on a high, with the CloserNet testnet and the community helping us check our fix for what we hope will prove to be the last major bug in basic data handling.
We were making an assumption that nodes were being ordered by closeness to our node, whereas this was not in fact the case. This was causing storage and pricing anomalies along with other issues where we might have asked the wrong nodes for data. We now order nodes by XOR distance.
We also saw some nodes returning partial chunks as a result of requests happening before the chunk had been fully written. So now we only note records as stored once that write is done.
We’ve also improved the verification process, and exposed a few upload errors that were hidden before. Still a bit of work to go in on the UX around that (new release of the CLI today should smooth things out), but we’re happy the fundamentals of data storage and payments are there now.
Next thing on the list is audits. @anselme has created a PoC command-line utility that can track transactions and unspent CashNotes
right back to Genesis. This depth should only be necessary in a few use cases and would be overkill for most (and very hard to scale for the general case), but it’s good to confirm we can do it quite simply. Auditing provides much needed security and assurance, so now we’re looking at how far we can prune the audit checks, and how we store them.
Massive thanks to everyone who has helped with testing throughout this year, and in other ways by offering support and ideas. This community is what makes this project - we literally couldn’t do it without you.
Special thanks to @mav for a PR to remove the list of connected peers from the CLI output by default, and to drone-ah for a proposed improvement to the PR process itself.
General progress
@anselme implemented a CLI utility to follow along a spend and find all descendant spends recursively to build a spend directed acyclic graph (DAG) for auditing.
@bzee continues to work on node_manager
integration and also on signal handling in node for the macOS platform.
@bochaco looked at an alternative Ledger crate with different transport implementations for communicating with the device/simulator as he seeks to ensure SNT is compatible with this hardware wallet. He has started a draft implementation for a Ledger signing command.
@qi_ma raised a PR to skip payment and uploads for existing file chunks, which is in place in the current testnet, and continues to look into unnecessary live connections. We’re watching CloserNet, ermm, closely, for these. He also put in a PR to sn-testnet-deploy
to collect node connection stats.
@chriso has been busy in the sn-releases
, sn-testnet-deploy
and sn-node-manager
repos, raising PRs #8, #9, #10, #11, #12, #13 related to supporting custom node binaries, which enables building from a fork, and providing admin commands to manage networks, including add, kill, remove, service/node restart, upgrade and others.
Meanwhile, @roland added a check to make sure we’re not accidentally logging raw data, as happened in the previous testnet, created hash-based verifications for chunks to speed the upload process, made some CLI UX improvements, and worked on some errors seen in the testnet.
And @joshuef tweaked the upload process to provide a simple retries for failed chunks, this on top of several earlier improvements and better error handling which are already present in the latest testnet.
Useful Links
Feel free to reply below with links to translations of this dev update and moderators will add them here:
Russian ; German ; Spanish ; French; Bulgarian
As an open source project, we’re always looking for feedback, comments and community contributions - so don’t be shy, join in and let’s create the Safe Network together!