Development Update — Road to Core 1.0 Mainnet: August 23, 2018
Hello Lisk Community,
Here at LiskHQ, we’re buckled down and working hard in preparation for the upcoming Lisk 1.0.0 migration on Mainnet on August 29. All of the components of the Lisk ecosystem — Lisk Core, Lisk Elements, Lisk Commander and Lisk Hub — are all being updated and aligned with one another for the big migration. In addition to this, the Lisk Core team is also working on future releases.
The Lisk Core 1.1.0 quality assurance (QA) phase is now complete. It was a smooth process with no issues.
Our progress on Lisk Core 1.2.0 is also going very well. Here is a brief overview of the work we’ve done on this release:
Issue #2201: We identified an issue related to the performance of the /api/transactions endpoint. Previously, in database queries used by this endpoint, we sorted the results by one column only (timestamp, amount, fee or type), but we had to add another column to ORDER BY clause (rowId) due to issue #1884. Because of these changes, the PostgreSQL server stopped using indexes and this resulted in significant performance degradation (~20 seconds to get results) while querying the transactions (trs) table. Following performance benchmarks, we replaced two existing indexes with eight new ones — which finally decreases queries’ execution time to ~2 milliseconds.
Issue #2320: We replaced IP addresses with FQDN for seed nodes in config.json. We decided to do this because FQDNs are not bound to a particular service provider, therefore this approach gives us more flexibility. For example, we replaced 83.136.254.92 with mainnet-seed-01.lisk.io.
Issue #2323: We made a small change in the Swagger schema for the /api/node/status endpoint. We made the recently-added property secondsSinceEpoch mandatory in the API response.
Issue #2261: This issue was already closed, but we identified one case in which we don’t need to update the node’s system headers — snapshotting. It is unnecessary during this process because the node is isolated from the network. For this reason, we removed the call to the modules.system.update in the corresponding logic.
We also wanted to take this opportunity to point out that last week, community members running RC2, the latest version of Lisk Core 1.0.0 on Testnet, reported that the memory consumption of their nodes was slowly increasing over time. This caused some child processes within their nodes to crash. The issue was related to peer rejection during the socket handshake phase. Lisk Core is designed to handle such child process crashes, meaning it didn’t have an impact on the overall stability of the Testnet network.
Our development team traced this issue back to the socketcluster-server dependency of Lisk Core. It was related to an advanced feature of SocketCluster which allows the Lisk nodes to quickly and efficiently close connections with bad peers (e.g. blacklisted IPs). The SocketCluster server was holding on to memory when the connection was killed at a specific point while in the middle of a handshake operation.
We are recommending all Testnet nodes operators who haven’t upgraded their node’s dependencies yet to make sure to do so and check that the socketcluster-server version is 11.2.2. Lisk Core 1.0.0 is not affected as all of our builds already contain the fixed versions of the dependency.
Next steps
There are only two pending pull requests left in Lisk Core 1.2.0. They are currently under review. We expect them to be merged this week. Following its completion, we will freeze Lisk Core 1.2.0 and start its QA phase next week.
We have already begun planning the next release. The corresponding milestone, Lisk Core 1.3.0, is already open on GitHub where issues are being added.
-The Lisk Team
Is this one of the first posts that you're seeing about Lisk? See more at Lisk.io or Github.
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://www.hodlalert.com/2018/08/23/development-update-road-to-core-1-0-mainnet-august-23-2018/