The LNX Platform team is primarily focused on preparing for the launch of the Arcturus Testnet before the end of the current calendar year. The work is divided between the LNX DAG Layer, the Communications Library, and the LNX Wallet.
We are very close to launching the Arcturus Testnet internally, and after which we will perform a period of stability and stress testing before opening the testnet to developers and the public in general.
- LNX DAG Layer currently in a stage of reworking parts of the design and thus having to incorporate often breaking changes into the codebase such as how different versions of the DAG are managed;
- LNX Communication Library is being upgraded to the newest version of libp2p, from version 0.10.0 to 0.11.0;
- LNX Wallet is in rapid development phase, and the web UI will be built using Vue.js as the framework.
1. LNX DAG Layer
The DAG Layer is one of the primary focuses of LNX Protocol and where a large portion of our development efforts is currently focused on.
The DAG Layer is currently going through a period of breaking changes and redesigns right now, as parts of the core algorithms are being hashed out in finer details.
commit a836cb9: removal of depth field from libDAG
We removed the
depth field from
Node struct. The reason for that is that when deleting unused vertices from the DAG the other vertices are shifted depth down, and their
depth field becomes no longer valid, which introduces bugs. Originally it was thought a vertex from the middle of the graph can't be removed because subsequent transactions are tied to it, so it made sense to have it in the struct. But with introducing Forks the depth field can no longer be part of the struct. We had to change the iterators and also transaction execution logic because it depends on
depth field for linking to adjacent vertices. So, right now only iterator reports depth.
We are currently testing these new modifications along with the fork switching process. The primarily way that we debug the DAG layer is through running simulations that generate thousands of vertices and then algorithmically check the validity of the transaction graphs.
Once this iteration of DAG layer redesign becomes more stable, we will branch this version out for a stable build for testnet, while continue on with further development in a separate branch.
2. LNX Communication Library
LNX Communication Library is a subcomponent of LNX DAG layer architecture, and is responsible for managing communication between nodes in a highly performant and secure fashion.
Updating to Libp2p 0.11.0
LNX Communication Library heavily leverages the excellent open source network framework project from Parity — Libp2p.
Earlier this month, we made the upgrade from Libp2p 0.10.0 to version 0.11.0 for the increased performance and the included bug fixes.
Major Bug fix of Race Condition when Multiple Swarms are Opened
Testing has always been a crucial part of our development process, and recently through our routine unit tests, we have discovered that some of the tests for Communication Library would occasionally fail.
Bugs that only occur on some of the runs are some of the most elusive to fix, because of their difficulty in reproducing and also that they often involve some kind of a race condition.
However, our experienced senior engineer was able to quickly pinpoint the issue, which was that using
mDNS for discovering nodes causes the timeout issue. By using
Kademlia for discovering everything works fine now. And we will only use
Kademlia in production.
This fix also included also some improvements for running tests of
linix/libp2p, such as removing of unneeded
loops or "double"
Box'ing of `Futures.
Additional Note on LNX Communication Library
The LNX Communication Library will be one of the first parts of LNX Protocol project that we will open source to the public, so that other developers can have an easier time developing decentralized platforms and applications using efficient p2p communication protocols.
3. LNX Wallet + DAG Explorer
Concurrently, we are working with designers and UI engineers to redesign our wallet that will be timed for simultaneous release with Arcturus testnet.
The LNX wallet is built using the Vue.js framework for its lightweight, flexibility, as well as performance.
On top of all the standard features that you would expect in a cryptocurrency wallet, LNX wallet will also feature a DAG explorer, that shows the visualization of the current DAG graph, and allows users to see the status of their transaction on the DAG graph in real time.
Although it’s still in an alpha stage right now, the DAG Explorer will be one of the most visual ways for users to interact with LNX Protocol.
We are always hiring skilled engineers. We offer a competitive compensation package, flat organizational structure, and the chance to work with cutting edge blockchain technology. We are a distributed company and most of our engineers work in remote conditions, so candidates from anywhere are welcome.
Experience with Rust is a plus as our codebase is primarily in Rust, but fundamentally, we are looking for people who have experience with working on high performance, distributed computing platforms. Please forward your resume and GitHub profile to firstname.lastname@example.org if interested.
Stay tuned, and we thank you for all the support!