We continue working on the next release, scheduled for next week, which will be ready for the Impossible Futures building phase. The upcoming version of Autonomi
will integrate the latest libp2p, introduce a simplified FIFO (First-In-First-Out) cache, eliminate a ‘log bomb’, and remove the external address manager, which is no longer required with the latest change to obtain the address from connection info. Functionally, the biggest change is the use of libp2p request-response
(req/resp) direct messaging for clients to send records to nodes. Compared with our current approach, which uses libp2p::kad::put_record_to
, the connection with req/resp is more stable and provides better feedback from nodes regarding whether an uploaded record has been accepted or rejected.
The subsequent release will include the [reachability work](The reachability work consists of adding a delay to dialback and fetching connection status, which eliminates the errors but requires a new confirmation process; then adding reachability check support to node, node manager and deployer.) which consists of adding checks to see if a peer is really reachable or not. This will drastically reduce the number of “ghost nodes” in the network.
Speaking of nodes not earning, the emissions wallets were briefly non-functional meaning folks weren’t paid for a day or so. Don’t worry, emissions have restarted and any deficits will be made up automatically.
Thanks to @riddim for his Python usability PR, to @traktion for his corrections and suggestions, and to @happybing for his PRupdating the docs to make a clarification.
In other community action, @saykor debuted a first version of Queeni AI assistant, and @safemedia introduced connectivity monitoring to the Autonomi Browser Extension.
General progress
@chriso has been testing the integration of the latest libp2p
version, including checking for backward compatibility. He also started a repository to document our test procedures.
@anselme has been fixing bugs in the latest release candidate, fixing a logging problem and making sure the error types are backward-compatible and future change proof. In his free time he also improved his simple upload app, and investigated why some newly uploaded files apparently weren’t initially available to download (although retrying generally worked). The probable answer is that they had not had time to propagate around the network yet, but we’re keeping an eye out.
@dirvine has been doing some work on migrating the Kademlia distributed hash table (DHT) implementation in libp2p
to our own code base, which would give us complete control over its DHT implementation. He’s also working on some simplifications to our internal CI processes.
@vphongph has been testing another PR of David’s that implements a new testing framework.
Ermine successfully upgraded nodes from RPC to metrics using antctl
, bar a few remaining bugs to iron out.
Back from some time away, @mick.vandijke worked on adding Paymaster support to our Rust API including porting the SDKs needed for the Paymaster to Rust. He also worked on updating Project Dave to work nicely with our latest API.
Also back from a break, @qi_ma raised a PR to aiming to reduce increased CPU usage after the libp2p upgrade.
@roland Fixed some failing unit tests on FIFO bootstrap cache, which was due to a data race that when using LazyLocks during tests. He also made good progress integrating reachability into antctl
.
And @shu continued with his PoC emulations of of armv7 & aarch64 architectures, noting huge performance gains which we are very hopeful will scale.