Hey Y’all,
A big Dev Update this week – especially for Loki Core with lots of pull requests needing to be merged as we work towards a final release. Last week we released the Loki Core 4.0.0 Hefty Heimdall testnet binaries, and the Loki Storage Server 1.0.0 binaries. We also released a new version of the Loki Launcher to tie everything together.
We would love it if everyone could jump onto testnet and run some Service Nodes using the Loki Launcher in the next few weeks – you’ll be able to store messages for Loki Messenger for the first time! Bug reports are welcome! Please send them to their respective repositories on GitHub.
Loki Core
- Add RandomXL mining algorithm: https://github.com/loki-project/loki/pull/675
- Add target height field to get_n_service_nodes : https://github.com/loki-project/loki/pull/698
- Non participation in Service Node Checkpointing causes deregistration: https://github.com/loki-project/loki/pull/672
- Relaxed Service Node Deregistration rules: https://github.com/loki-project/loki/pull/662
- Add penalty for Switching IP address: https://github.com/loki-project/loki/pull/671
- Add `state height` to RPC: https://github.com/loki-project/loki/pull/696
- Disallow recursive checkpoint reorganisation: https://github.com/loki-project/loki/pull/667
- Performance fix for alt chains: https://github.com/loki-project/loki/pull/695
- Fix Mining command output: https://github.com/loki-project/loki/pull/694
- Remove some unused variable warnings: https://github.com/loki-project/loki/pull/692
- Fix P2P bug on testnet that was causing uptime proofs to not be relayed: https://github.com/loki-project/loki/pull/691
- Fix Segfault on exit with ban SN args: https://github.com/loki-project/loki/pull/690
- Fix Mac build warnings: https://github.com/loki-project/loki/pull/687
- Remove lines that were causing backwards compatibility issues: https://github.com/loki-project/loki/pull/686
- Set miners to 0 to avoid verification delay in integration mode: https://github.com/loki-project/loki/pull/685
- Add GPG signing keys: https://github.com/loki-project/loki/pull/684 https://github.com/loki-project/loki/pull/681
- Set minimum miner tx version to 4: https://github.com/loki-project/loki/pull/683
- Improve diagnostics for failed tx sends: https://github.com/loki-project/loki/pull/682
- Move miner.h to fix cn basic referencing core and core referencing basic: https://github.com/loki-project/loki/pull/679
- Add a script for collecting the output from a docker build: https://github.com/loki-project/loki/pull/678
- Cap difficult initially at 30MH for v12 hardfork: https://github.com/loki-project/loki/pull/677
- Remove sn-public-ip and combine into –service-node : https://github.com/loki-project/loki/pull/676
- Respond with OK message on Storage Server ping: https://github.com/loki-project/loki/pull/674
- Add hardfork version to get_n_service_node call: https://github.com/loki-project/loki/pull/673
- Merge Monero upstream changes: https://github.com/loki-project/loki/pull/670
- Add Checkpoints, fork dates, version tags for Hefty Heimdall: https://github.com/loki-project/loki/pull/668
- Tweak decommission credit rules: https://github.com/loki-project/loki/pull/666
- Enable dummy payment IDs: https://github.com/loki-project/loki/pull/665
- Increase transaction fees: https://github.com/loki-project/loki/pull/663
Loki Launcher
The 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 and the Loki Storage Server. When Loki Service Nodes begin to route data and store messages for Lokinet and Loki Messenger, the Loki Launcher will need to be run on every single Service Node.
The Launcher is currently in a testing phase, so you should only use it on testnet and stagenet – feedback/issues and pull requests would be greatly appreciated though!
What’s going on this week with Loki Launcher:
This week we got Loki Launcher ready to work for testnet binaries. This involved slightly adjusting the way Loki Launcher works, particularly how it downloads new Loki software.
Changelog:
- Set default Storage Server port
- PublicIPv4 option and auto-detection
- Add 4.0 changes into testnet
- Move clients.js and check-systemd.js into modes/
- Move 3.0.6 migration into its own document
- Add force-start support for pre-fork testing: https://github.com/loki-project/loki-launcher/pull/32
- Update storage server parameter –sn-public-ip with –service-node-public-ip
- Purge run_path
- getStorageServerDataDir() to localize code to find it
- waitForLokiKey() and make startLokinet stage check for it
- Add waitForLokiKey status support
- Migrate a large chunk of config work in start.js into config.js
- Take arguments into config.js to have overrides better
- Only configure enabled subsystems
- Update storage server binary name from httpserver to loki-storage
- Fix dedupe of nets
- Make waitForKey cancellable
- Handler numeric options better in the CLI parameter deduplication
- Make launcherRecoveryMonitor respect subsystem enablement
- Make status takes launcher CLI parameter into account
- Adjust output/debug
- Download-binaries on testnet now downloads the latest Storage Server and lokid releases
- Fix missing ini library in config
Github Pulse: Excluding merges, 2 authors have pushed 38 commits to master and 38 commits to all branches. On master, 16 files have changed and there have been 607 additions and 367 deletions.
Lokinet
If 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:
As part of our reliability work, we added more metrics and continued working on our path build failure messages, while cleaning up various things along the way. We also made sure the files Lokinet creates are of the correct permissions to avoid leaking any keys.
Changelog:
- Tighten key permissions: https://github.com/loki-project/loki-network/pull/664
- Fix FS stuff, explore network via every connected peer: https://github.com/loki-project/loki-network/pull/665
- Fix FreeBSD build was missing stdc++fs : https://github.com/loki-project/loki-network/pull/666
- Bring gitlab-ci in sync: https://github.com/loki-project/loki-network/pull/667
- Remove cppbackport from vendor: https://github.com/loki-project/loki-network/pull/668
- Add utp.session.open/close to metrics: https://github.com/loki-project/loki-network/pull/670
- Track dropping of messages in metrics: https://github.com/loki-project/loki-network/pull/672
Pull Requests:
- Refactor config system: https://github.com/loki-project/loki-network/pull/669
Loki Messenger Desktop
- Allow for P2P messaging over clearnet: https://github.com/loki-project/loki-messenger/pull/317
- Fix filtering code and lint: https://github.com/loki-project/loki-messenger/pull/316
- Fix self broadcast which prevents errors on startup: https://github.com/loki-project/loki-messenger/pull/315
- Update endpoint for storage server and p2p: https://github.com/loki-project/loki-messenger/pull/314
Storage Server
- Send and verify the signature for SSL certificates for SNode to SNode communications: https://github.com/loki-project/loki-storage-server/pull/180
- Add rate limiter for client side including tests: https://github.com/loki-project/loki-storage-server/pull/179
- Macos compat dep script: https://github.com/loki-project/loki-storage-server/pull/191
- Travis CI fixes: https://github.com/loki-project/loki-storage-server/pull/189
- Use target_height field to determine if lokid is still syncing: https://github.com/loki-project/loki-storage-server/pull/201
- Improve command line arguments: https://github.com/loki-project/loki-storage-server/pull/197
- Don’t use the logger before it’s initialised: https://github.com/loki-project/loki-storage-server/pull/195
- Don’t send requests to 0.0.0.0 : https://github.com/loki-project/loki-storage-server/pull/193
- Print incorrect json in swarm traces: https://github.com/loki-project/loki-storage-server/pull/190
- Check response body returned from lokid: https://github.com/loki-project/loki-storage-server/pull/188
- Check hardfork versioning using get_n_service_nodes : https://github.com/loki-project/loki-storage-server/pull/186
- Fix unit tests for rate limiter: https://github.com/loki-project/loki-storage-server/pull/185
- Increase number of retry intervals: https://github.com/loki-project/loki-storage-server/pull/183
- Change rate limiter values for SNode to SNode communications: https://github.com/loki-project/loki-storage-server/pull/182
- API changes: https://github.com/loki-project/loki-storage-server/pull/181
- Use timestamp for test results: https://github.com/loki-project/loki-storage-server/pull/178
- Use Spdlog instead of Boostlog: https://github.com/loki-project/loki-storage-server/pull/177, https://github.com/loki-project/loki-storage-server/pull/175
- Refactor logging: https://github.com/loki-project/loki-storage-server/pull/174
Messenger 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