Welcome to the #20 of Nebulas Weekly Report! Delivering developments of Nebulas project. Nebulas Weekly Report is maintained by the Nebulas team. Please send feedback to contact@nebulas.io, or @nebulasio on Twitter.

LAST WEEK’S News and Reports

Nebulas held a NYAI Meetup

Nebulas team at NYAI meet-up.

Nebulas team held a New York meet-up with NYAI(New York Artificial Intelligence) on the night of Mar. 8th. Nebulas founder and CEO made a speech about “Thinking in Blockchain” in this meet-up, introducing Nebulas’ technology and vision. He also called for more supportive community members to contribute to the community.

After the speech, Nebulas team answered questions about Nebulas’ technology, community building and future plannings. When talking about Nebulas’ future development path, Hitters said that the development of the blockchain contains endless possibilities. Nebulas is committed to creating a benign ecosystem with positive incentive, providing all community members with a platform for inspiring creativity.

Nebulas will release technical yellow and mauve paper soon to explain our core technologies so that our community members can all have a better understanding of the project’s details.

In addition, we will launch our main net at the end of the first quarter of 2018, so please stay tuned!

LAST WEEK’S Top Commits

Last week, we focused on the two branches of develop and feature/PEE, achieving a breakthrough in both security and performance.

On the development branch, we completed a round of code review and fixed the issues discovered during the review process, including more strict verification of the configuration file and parameters, optimizing the solutions of cycle import between core and nvm modules, and correcting the sorting algorithm in the transaction pools. At the same time, we removed the the compatibility code to prepare for the mainnet. In addition, we also found a deadlock scenario in network layer and fixed it.

Details as follow:

Core

Made the verification of configuration files more strict;

Optimized core and nvm modules cycle import solution: Introduce smart contract engine manager in core, decouple core and nvm modules, make nvm module can directly import core module, and it is more convenient to use;

Corrected the sorting algorithm in the transaction pool to make its partial relations have propagation: In the transaction pool, the transactions are sorted from from bucket to bucket, and sorted by nonce size in the bucket. The buckets are sorted according to the gas price;

Added parameters verification in all public functions;

Removed the compatibility code in the previous testnet update process to prepare for the mainnet

Nebtestkit

Added command test cases;

Refined smart contract test cases;

Time-shared stress testing and functional testing on the testnet;

Network

Fix a deadlock scenario: When the stream is closed and new data is written in a special scenario at the same time, a deadlock will be triggered.

On the feature/PEE branch, we have fixed a number of concurrent write and deadlock problems in parallel packaging and verification. Based on the current unit test results, on a 4-core 2.8GHz Macbook Pro, we achieved TPS of up to 2400 binary transactions or TPS of up to 70 smart contracts (based on Google Chrome V8) deploying or calling transactions within 1 second . Based on the high scalability brought by the parallel solutions, in the future we can obtain higher TPS by increasing the number of CPUs.

Details as follow:

Core

Completed the implementation and testing of MVCCDB V2 (Multi-Version Concurrent Control Memory Database);

Refined parallel scheduling model;

Fixed problems found in concurrent execution of Trie/State and WorldState;

Added unit tests for parallel packaging and verification.

Learn more about Nebulas:

Official website: Nebulas.io

Github: github.com/nebulasio/go-nebulas

Slack: nebulasio.herokuapp.com

Telegram(EN): t.me/nebulasio

Twitter: @nebulasio