BbbbadNet has now gone off to the great bbbbeyond. It was one of the bbbbetter ones (stop that now), and taught us some useful things. First, that we’re on the right track with respect to bad node detection being key, but also that it needs more tweaking. We were being overly judgmental, banishing nodes just for acting weird momentarily (and who hasn’t done that).
We think this was the cause of the timeout errors and upload failures, as a result of nodes being overloaded with all the querying.
We also worked on improving node performance, by loosening the bad node detection criteria and making changes to how payments are issued to nodes.
Plus, we have amended the pricing curve and the way that nodes are paid, with a stricter curve based on close records for price setting rather than total records stored to try to even things out there. And we have temporarily removed gossip as it is not needed for collecting royalties, having been replaced by the DAG mechanism. Whether that’s enough will be the subject of future tests.
We have also significantly scroogified the faucet. When we designed the original we hadn’t for one moment imagined people would be sparking up 1,300 nodes at once ( @aatonnomicc ). That they are is a fantastic thing, but the overgenerous faucet was buckling under the strain of handing out money. It now gives out 1 SNT per request, rather than 100, and has more rate limiting based upon the actual load the wallet is under.
Thanks as always for all the testing excellence. There’s a new one right now for you to put through its paces. Do your wwworst. (stoppit)
General progress
@chriso has been very busy this week responding to forum feedback and fixing issues accordingly in PRs #1510, #1511, #1512 #1513. He also updated the safenode manager and its documentation, and built the sn_network
code on Alpine. Among other things.
Also documenting away wildly, @jason_paul spent the week researching and writing documentation for testing, as well as beginning a new wiki.
@anselme worked on improving the scalability of the sn_auditor
tool, which helps in finding issues related to the DAG royalties collection. He also fixed a bug with local testnets and investigated a problem with sn_auditor
and DAG collection. sn_auditor
now has fancy new logging functionality.
@bzee spent time looking at and debugging CashNotes and researching the inner workings of BLS keys and signatures. He debugged CashNotes storage.
BLS keys are an option with account packages, which is what @bochaco has been implementing. Account packages are what enable users to have access to their data by managing their keys. Gab has also been rationalising the sn_cli
code to make it more flexible, and continues to work on registers and folder syncing.
Community member @mav has been active on account packets and has implemented mnemonic support at the cli level and is starting to integrate it into the account packet. This will play a big part in helping us have secure wallets that are easier to backup entropy for, which will be needed as we start to test the OMNI conversion.
Meanwhile @joshuef churned out several PRs (1514, 1517, 1504, 1503) related to pricing and bad node detection, as discussed in the OP. He looked at emission rates and considered potential improvements, and delved further into the audit process.
Finally, @qi_ma and @roland have been pushing improvements into the code. Qi created multiple PRs related to improving node performance, including loosening bad node detection, reducing concurrent queries and optimising logging and replication. Qi also suggested a new approach to pricing and node assessment.
Roland’s work centred on the important business of improving the wallet and chunking operations. He moved certain stateless operations from the wallet to enhance performance and made progress on the uploader, adding tests and fixing bugs, including the timeouts.