Helios Protocol Project Update Blog Jan 27, 2019
Hello again, beloved Helios community! We have a lot to report again for this update! We’ve been hard at work testing, testing, testing! Too many exclamation points?!? There’s just that much excitement!!! Without further ado, let’s just jump in…
…and here we go…
Technical Updates
Hundreds, yes, hundreds of new unit tests have been programmed. We are in the TestNet phase (did we say testing, testing, testing yet?) so why wouldn’t there be hundreds? These unit tests are aimed to test (there’s that word again, get used to it) every aspect of the code to ensure all is working as intended under all conditions and is bulletproof against attacks. With these tests we are staging attacks on our own system to make sure it can contend and we are fortifying if necessary. Testing during this time was mainly focused on blockchain syncing, the consensus system, and the virtual machine.
The Helios Protocol nodes have different stages of syncing. The current stage depends on the age of the blocks that are being imported. All different stages now have a full suite of tests that prove stability.
-Stage 1 is fast sync. This is for blocks that are older than about 11 days. In this stage, nodes request all of the blockchains, up to a given cutoff point. This is the fastest form of syncing.
-Stage 2 is for blocks older then about 30 minutes. In this stage, the nodes will always sync up to whichever blockchain database is in consensus. If a node has additional blocks that are not in consensus, it will request them and import them.
-Stage 3 is for blocks younger than 30 minutes, but older than about 5 minutes. In this stage the nodes will actively sync with each other. If a node has extra blocks that another node doesn’t have, it will send that node the new blocks so that both nodes have them. If it is missing blocks, it will request them. No blocks are deleted in this stage as long as they are valid.
-Stage 4 is a fully synced node. In this stage the node does not need to send or receive blocks from other nodes because they are already in sync. The only time a node will receive an additional block is when it is a newly created block, usually created through RPC.
Testing on the consensus mechanism was another main focus of the unit tests. This included ensuring that the nodes can withstand having criminal nodes sending them false information while still maintaining consensus. The consensus modules have to achieve consensus on blockchain database root hashes at predefined times. It also has to achieve consensus on any conflicting blocks. Further, the consensus module manages a lot of systems other than just the blockchain database. For example, it also has to maintain consensus on finding the max TPS that the node swarm can handle. This is for throttling transactions to make sure most nodes can keep up and not fork themselves. Our consensus tests create tens and/or hundreds of virtual nodes that communicate to each other within one computer so that we can be sure nodes won’t get confused when there are a large number of peers connected all with different blockchain databases.
During the virtual machine testing we did many things. We tried importing invalid transactions, invalid receive transactions, invalid smart contract code and things of that nature. Throughout all this testing, we have found and fixed many bugs with the unit tests. We are excited at the level of progress we have already achieved!
Node Software Update
We understand that most people in the world probably use Windows and being that our node software has been developed on Debian Linux, we worked hard to figure out how to make this a non-issue. We worked out a solution and tested how to install and run the node software on Ubuntu running within Windows. We now have a number of nodes set up and the number continues to grow. We are currently working on streamlining the process to make it easy for technical and non-technical users alike to install the software and run a node on the Helios platform.
We have developed more tools, mainly for testing, that allow you to connect to the node through a websocket and see various statistics and information about the node. This is very useful for debugging node behaviour and making sure the databases and other things are actually doing what is expected. For example, you can run a node on your computer and let it sync with the network, then from another computer you can query the node and ask it to list all of the blockchains that it has, how many peers it is connected to, what the current stake is, and other pertinent information.
We started optimizing many parts of the p2p protocol code. This allows nodes to determine consensus and sync much more rapidly. There is still a lot of optimization to be done, but to date we have already achieved a 2 to 5 times increase in speed!
Non-Technical Updates
Since our last update we’ve had two surprise airdrops happen in other Discord servers. The first was Saturday January 19th in the Crypto MK Scorpion server and the second dropped on the following Tuesday, January 22nd in the Crypto Blitz server. A big shout out to both host servers and the admin that helped make them happen! Did you miss out on these surprise opportunities? Fret not, Grasshopper! We will have plenty more in the future. You just need to visit more often, our door is always open!
The team has also been hard at work with the fun side of things! We have been making some very cool intro videos that we just can’t wait to show you all! There are also new articles you can check out on our medium page.
🔥🔥🔥 We are actively seeking people to run nodes on the Helios platform! Find more information in our Discord server or fill out the form found in the links below! 🔥🔥🔥
Don’t forget to keep yourself in the loop as we have many great things in the works. Our weekly Airdrop is still going on, well, weekly! Again, we thank you for being a part of our community. Until the next update, this is the Helios Protocol, signing out!
Telegram:
https://t.me/heliosprotocol
Website:
https://heliosprotocol.io
Discord:
https://discord.gg/B9qWHHZ
Twitter:
https://twitter.com/HeliosPlatform
Trybe: https://trybe.one/ref/19149
Facebook:
https://www.facebook.com/HeliosProtocolPlatform/
Instagram:
https://www.instagram.com/heliosprotocol/
Reddit:
https://www.reddit.com/r/heliosprotocol
Bitcoin Talk: https://bitcointalk.org/index.php?topic=4317054.0
Github:
https://github.com/Helios-Protocol
Helios Platform Node Form:
https://docs.google.com/forms/d/e/1FAIpQLSclfc6BgPTD_CX4VNuLmw639E1LZOlvNwtC3dXgBLwaElnIuA/viewform