Sidechain Proposal - First week summary
🌐 Steem Sidechain Echelon Network Testnet Updates - Weekly Summary
Sta-bi-li-ty
We dedicate a significant amount of time to testing and refining the Echelon testnet to ensure its stability and performance. Our focus for now is on improving synchronization, block validation, and overall network resilience. By running continuous tests, resetting nodes, and monitoring sync behavior, we aim to create a robust and efficient network that can seamlessly keep up with the Steem mainnet. This update provides an overview of our first week progress and ongoing efforts.
🌍 Global Testnet Deployment & Ongoing Stability Improvements
We started by setting up the Echelon testnet across five nodes worldwide (running it on a local network is not enough) to ensure better distribution, reliability, and resilience under live conditions. Our testnet nodes are deployed in:
- 🇮🇳 Bangalore:
ws://134.209.156.110:6001
- 🇺🇸 New York:
ws://157.230.212.229:6001
- 🇳🇱 Amsterdam:
ws://167.99.222.168:6001
- 🇸🇬 Singapore:
ws://159.223.66.172:6001
- 🇦🇺 Sydney:
ws://170.64.143.57:6001
But at this point we do not recommend anyone to join the testnet since we may have to reset the network multiple times per day. However if you want to make your own fork and test network you can follow the installation guide from the readme.
To manage and update these testnet nodes efficiently, we have set up scripts to reset and restart all nodes at once when needed. These scripts allow us to reboot, stop a node, reset the database, pull the latest updates, and restart the service with a single command.
🔧 Tip about using Plink for Node Management
If you want to use Plink, you must also use Pageant (part of PuTTY) and import your SSH key before running any commands.
✅ Step 1: Open Pageant and add your private SSH key.
✅ Step 2: Run the Plink command to restart a node.
start plink -batch -i %PPK_PATH% %USERNAME%@157.230.212.229 "pm2 stop echelon && mongosh echelon --eval 'db.dropDatabase()' && cd echelon && git pull && pm2 restart echelon"
(Plink can also allow to remotely log the servers without having to create a new windowed session with putty)
Additionally, we have other scripts that allow nodes to signal their intention to become an active witness and participate in the election process. As you can see this is achieved by broadcasting operations on the Steem blockchain.
echelon-node2 broadcast its public key
echelon-node1 approves echelon-node4
This ensures that all testnet nodes can be quickly refreshed and synchronized with steem while keeping the network stable and fully decentralized at each run.
Note: We are using posting auths for now but obviously in the future only active auths will be taken into count for most of operations.
⚡ 1. Reduced Sync Block Time
As part of our ongoing tests, we are constantly resetting the network and forcing it to synchronize. The primary goal of these tests is to ensure that the sync mode functions correctly, allowing us to catch up with the Steem mainnet as fast as possible while maintaining stability. By repeatedly refreshing the network, we are able to verify that all nodes remain in sync and that the system can handle synchronization efficiently under varying conditions.
We successfully reduced the sync block time to just 1 second, significantly improving the efficiency of the syncing mode mostly by using an agressive cache system for the syncing mode.
🚀 What’s Improved?
- Faster block syncing and synchronization across all nodes.
⚠️ Remaining Challenge:
- We still need to improve block collision handling to prevent cases where two nodes generate conflicting blocks. Block collision are something common on many blockchains but it is even more when the block delay is pretty low.
- We will be working on better coordination to ensure smooth block propagation and avoid forks while syncing.
⏳ 2. More Accurate Block Timing Validation
- Improved checks to detect blocks that arrive too early or too late.
- Enhanced error messages for clearer troubleshooting.
- Adjusted timing rules based on node sync status.
🔄 3. Optimized Synchronization Between Testnet Nodes
- Introduced a new time buffer (300ms) to improve flexibility when syncing.
- Dynamically adjusts timing settings based on whether a node is catching up or fully synced.
- Improved error logging for better diagnostics.
🔗 4. Better Coordination for Testnet Syncing
- Added sync status indicators in block data so nodes can communicate their current state.
- Introduced forced synchronization to align all testnet nodes periodically.
- Improved visibility of sync status in system logs.
🚀 5. Controlled Processing of Steem Transactions
- Failover threshold using multiple Steem rpc.
- Fixed cases where nodes attempted to process transactions too early.
🌐 6. Network-Wide Sync Status Coordination
- Testnet nodes now share sync progress with others, helping the network stay aligned.
- Consistent sync status tracking improves monitoring and troubleshooting to provides real-time view of the testnet’s health and synchronization status.
- New alerts for nodes when a node is significantly behind.
🎯 Our Ongoing Efforts and Impact
Those recent improvements have significantly enhanced the stability and efficiency of the sidechain testnet. We have successfully reduced the block synchronization time to just one second, ensuring faster block propagation and improved network performance. By refining the handling of timing issues, we have minimized unnecessary block failures, leading to fewer errors and smoother operation. The enhanced synchronization mechanisms keep testnet nodes aligned, reducing conflicts and delays. Additionally, improved monitoring tools allow witnesses to quickly identify and resolve sync issues, making network management more efficient. Overall, these advancements contribute to a more stable and resilient sidechain, capable of adapting to timing fluctuations and variations between nodes.
Additionally, several other improvements have been made to the network, though they are not listed here.
📅 Upcoming Biweekly Summaries
As we continue to stabilize the network, we may provide biweekly summaries to keep you updated on our progress and new improvements. We will be back to weekly updates as soon as we have less abstract things to show. Stay tuned for more details on how we’re making the new Steem sidechain even better!
🔗 Echelon Project GitHub: FutureShockco/echelon
This post has been created with the help of AI, leveraging the current code from the Echelon GitHub repository to ensure accuracy and a thorough understanding of the project.
#supportthedevs
0.00 SBD,
0.20 STEEM,
0.20 SP
Thank you very much!
0.00 SBD,
14.50 STEEM,
14.50 SP
Your post is manually
rewarded by the Steem-Bingo
STEEM-BINGO, a new game on Steem
Good luck and have fun playing Steem-Bingo!
How to join, read here
Prize pool:
Minimum Guaranteed 45 Steem for each draw