Weekly Dev Update #57
Hey Y’all,
This week was particularly busy as we worked towards the final binaries release for the mandatory upgrade period. Thank you to everyone who jumped on testnet and set up nodes – with your help we were able to identify a host of bugs which were fixed in our final 4.0.3 release.
If you are a Service Node operator you should upgrade your node to version 4.0.3. Instructions on how to do this can be found here:
https://lokidocs.com/ServiceNodes/SNFullGuide/#updating-your-binaries Loki CoreRevert to manually serialising checkpoints/quorum:
https://github.com/loki-project/loki/pull/743Make testing_quorum JSON serialisation work for input:
https://github.com/loki-project/loki/pull/737New print_sn_state_changes command for showing changes in the network over time:
https://github.com/loki-project/loki/pull/727Checkpoint quorum fixes:
https://github.com/loki-project/loki/pull/741Correct checkpoint votes using the wrong quorum:
https://github.com/loki-project/loki/pull/738Document checkpointing quorum generation rules:
https://github.com/loki-project/loki/pull/733Checkpointing dereg fix; pre-fork mainnet dereg vote relay fix:
https://github.com/loki-project/loki/pull/732Merge everything from dev in the last few months back to master:
https://github.com/loki-project/loki/pull/731Rollback chain when receiving conflicting checkpoints:
https://github.com/loki-project/loki/pull/726Use autobind IP for outgoing sources:
https://github.com/loki-project/loki/pull/724Update print_checkpoints to be integration test friendly:
https://github.com/loki-project/loki/pull/723Rescan chain when difficulty doesn’t match:
https://github.com/loki-project/loki/pull/722Use quorums N-MAX_REORG_BLOCKS_POST_HF12 for checkpointing:
https://github.com/loki-project/loki/pull/721Don’t enforce blockhash in checkpoints:
https://github.com/loki-project/loki/pull/720Add softfork code for Service Node checkpointing:
https://github.com/loki-project/loki/pull/719Allow state changes to create no conflicting states:
https://github.com/loki-project/loki/pull/718Loki LauncherThe Loki Launcher is a node JS package that will allow for the independent management of all the components required to run a full Service Node. This includes managing Lokinet, lokid, the Loki Storage Server and any other future applications we require. When Loki Service Nodes begin to route data and store messages for Lokinet and Loki Messenger, we’ll recommend that every single Service Node run the Loki Launcher.
What’s going on this week with Loki Launcher:We released two versions of the Launcher this week for the 4.0.3 release. There were a lot of fixes for various crashes, but also support to be able to run versions 3 and up of lokid on mainnet. We also added extra startup checks to improve our status accuracy and made some minor user experience improvements.
Changelog:Prequal additional configuration system for Storage Server
Update prequal ports to test
Rename port names, adjust prequal output
Abort launcher start up if Storage Server port is not open to the public
Handle “port is in use” error handling better
Store stdout/stderr for launcher when backgrounding
Add *-server-port-check args
Wait for blockchain-rpc port to be open before considering start up a success
Temporarily collect Storage Server startup info for 10s in case of problems with output
Report if the launcher was already stopped when stopping internally
Make sure certain modes are only run with root
Activate Storage Server based on blockchain binary version
Only pass version 4 parameters when blockchain binary version 4 or above
Reminders to restart loki-launcher if mode has stopped it
Strip out launcher arguments from passing all the way to blockchain startup
Remove duplicate Storage Server port check when backgrounding
Put try/catch guard around process check to prevent intermittent launcher crashes
When running port test submit a disconnect message when done
Add unhandled exception logger
Improve HUP information format
Process blockchain stderr
Make sure blockchain rpc server is up before starting network/storage
Change Storage Server default port from 8080 to 23023
Up retries for getPublicIPv4
Untangle retry counter with various repos in download-binaries
Github Pulse: Excluding merges, 2 authors have pushed 41 commits to master and 41 commits to all branches. On master, 14 files have changed and there have been 590 additions and 196 deletions
LokinetIf you’re on our Discord you might catch Jeff or Ryan, the developers of LLARP, live streaming as they code:
https://www.twitch.tv/uguu25519,
https://www.twitch.tv/neuroscr.
What’s going on this week with Lokinet:The configuration refactor finally reached a state close to stable. There were lots of MacOS and FreeBSD fixes, and a huge internal change to using IPv6 on tunnel adapters to allow more connections to a hidden service or client.
Changelog:Revert Tom’s revert-config-refactor :
https://github.com/loki-project/loki-network/pull/679Fix llvm8 build, more MacOS fixes, set netid first:
https://github.com/loki-project/loki-network/pull/685Add function to set thread name:
https://github.com/loki-project/loki-network/pull/688Allow environmental variables override config:
https://github.com/loki-project/loki-network/pull/687Remove redundant else blocks:
https://github.com/loki-project/loki-network/pull/690Add missing cppbackport fs::path constructor:
https://github.com/loki-project/loki-network/pull/692Should fix FreeBSD build:
https://github.com/loki-project/loki-network/pull/691Fix FreeBSD build:
https://github.com/loki-project/loki-network/pull/695Fix minor warnings:
https://github.com/loki-project/loki-network/pull/696Fix FreeBSD build:
https://github.com/loki-project/loki-network/pull/697Disable shell hooks by default:
https://github.com/loki-project/loki-network/pull/699Fix config application:
https://github.com/loki-project/loki-network/pull/703IPv6 support branch, remove auto in config:
https://github.com/loki-project/loki-network/pull/686Add FindLibUV and migrate to use it:
https://github.com/loki-project/loki-network/pull/704Pull Requests:Modernise LLARP directory:
https://github.com/loki-project/loki-network/pull/693Matrix build for Travis CI:
https://github.com/loki-project/loki-network/pull/705Refactor endpoint state management to a new class:
https://github.com/loki-project/loki-network/pull/706Loki Messenger Desktop Start building a public chat channel system for Loki Messenger to enable large group chats hosted on external Servers:
https://github.com/loki-project/loki-messenger/pull/343Purge nodes from retrieved swarm list, filter 0.0.0.0 addresses:
https://github.com/loki-project/loki-messenger/pull/337Storage ServerRename binary to ‘loki-storage’ from ‘httpserver’ :
https://github.com/loki-project/loki-storage-server/pull/236Show warning if compiled without signatures:
https://github.com/loki-project/loki-storage-server/pull/233Show the reason the Storage Server is not being activated:
https://github.com/loki-project/loki-storage-server/pull/232Provide a min version for libsodium:
https://github.com/loki-project/loki-storage-server/pull/228Improve error accuracy and logging:
https://github.com/loki-project/loki-storage-server/pull/223,
https://github.com/loki-project/loki-storage-server/pull/227,
https://github.com/loki-project/loki-storage-server/pull/221.
Print endpoint with tostring:
https://github.com/loki-project/loki-storage-server/pull/222Default Service Node signatures to on:
https://github.com/loki-project/loki-storage-server/pull/220Bootstrap on startup and use the target height from bootstrap nodes to determine when we have finished syncing:
https://github.com/loki-project/loki-storage-server/pull/219Cancel the deadline timer as soon as possible for incoming connections:
https://github.com/loki-project/loki-storage-server/pull/218Don’t use a potentially closed socket:
https://github.com/loki-project/loki-storage-server/pull/217Loki Blocks Onion Explorer The Loki block explorer has been expanded to show a number of new things, including checkpoints and their votes and decommissioned or inactive nodes.
Updated RPC changes around quorum state calls in 4.0.2 (replaced batch quorum calls with new quorum states call).
Add checkpoint quorum display to quorum states page and to main index.
Add display of a single obligations or checkpoint quorum, linked where appropriate.
Cut off quorum display after 20 nodes with a “+ 7 more ↪” that links to the full obligations quorum details.
Add a list of last three checkpoints to the main page (and a link to a page with up to 50 fully displayed).
https://github.com/loki-project/loki-onion-blockchain-explorer/pull/1Messenger Mobile (iOS and Android)Android Messenger work can be found in these repositories:
https://github.com/loki-project/loki-messenger-android-core/commits/master,
https://github.com/loki-project/loki-messenger-android/commits/master.
iOS Messenger work can be found here:
https://github.com/loki-project/loki-messenger-ios/commits/dev,
https://github.com/loki-project/loki-messenger-ios-pods/commits/master.
Thanks,
Kee