Testnet Episode 8 and updates
The Massa Labs team presents its technical roadmap for the first time.
Smart contract standalone (v1 slot wakeup): in the last episode they have focused on new features, in particular on the speculative execution system for smart contracts, which means that now you don’t have to wait for a block to be final for your trades to be executed on it, this allows a much faster smart contract development. The downside is that because they are focusing more on new features and less on stabilizing legacy features, there has been a bit more instability. They will have to rethink the time allocation to focus more on stability. Their idea is to focus on the standalone smart contracts aspect to develop them face to April, hopefully, the idea behind this, is to allow a smart contract to “wake up” to send a message after waiting, say, 5 blocks and then process it. It’s kind of like asynchronous programming but for smart contracts, which hasn’t been done before and that’s why it’s taking a bit of time, since it’s something very novel and experimental.
Study/improvement of crypto primitives: They also performed some performance tests with the aim of improving the operation of the system, so they are studying what aspects slow down the current system and how they can be improved. The first thing they have tried to improve are the crypto primitives (*), so they have conducted a study and realized that the crypto primitives we were using were the same ones Bitcoin used in the past, so they were a bit outdated. Nowadays, faster and even more secure alternatives have appeared, so they are considering them.
(*) A cryptographic primitive is a solidly established low-level cryptographic algorithm upon which any computer security system is built.
Transaction propagation (a /5 reduction in cpu/bandwidth is expected): Another aspect of performance improvement to be implemented and which is directly related to the high bandwidth usage by the nodes. The objective is to have a network with approximately 10,000 transactions per second, and taking into account that when an operation propagates through the network, it does so by sending it repeatedly about 15 times from a node to those with which it is connected, something that can become redundant. So, the goal is to check the number of times the actual complete transaction is transferred and try to propagate transactions as is currently done with blocks, which means that instead of replaying the transaction, the hash of the transaction will be broadcast.
Storage limits and costs: A big dilemma arises, if the Massa architecture is going to use a unified storage system to store the state of the network, and this large space is going to occupy over 1 Terabyte, this implies that at the protocol level there is an implemented system that ensures a certain price for storage different from the current one that assumes a linear price for the gas.
Multi-stake protection: Multi-stake is a problem that most of the blockchains that are based on proof-of-stake have, although they do not usually give it too much importance. It basically means that when you are selected to create a block, instead of creating one block, you create 1000 incompatible blocks. In many cases, these types of blocks are ignored, but in the case of Massa you can’t because this network is intended to be high performance and can’t afford to have thousands of unnecessary blocks propagating through the network since the high bandwidth it consumes is causing desynchronization. So the goal here is to study protection against multi-staking, and they already have an interesting specification in place that in case they get to implement it would make the network one of the few blockchains with proof-of-stake that is able to support multi-stake attacks, it won’t be something very visible but it will greatly improve the security and performance of the system.
Versioning system for continuous releases: the goal for the mainnet is to have a system that allows moving from one version to another in a more decentralized way without having to remove anything, as they currently have to remove the general ledger every time they implement a new version.
Enhancements, documentation, testing, security audits: Finally they have to consolidate the system, by July/September, the objective is to demonstrate that they have an architecture and implementation with all the functionalities, but also very flexible and secure.
Mainnet: The release for the mainnet has been moved to Q4, as they are doing a lot of things that have not been done before and they need to do a lot of trial and error, and this requires a lot of research.It is an ambitious roadmap and the team is growing to achieve it, they already have two extra people in smart contract development and are hiring more people to increase the team.
Regarding the decentralized web.
They are trying to implement website logic along with smart contracts on the blockchain and allow people to interact with the website through their node using a simple web extension like MetaMask. This is what they have been developing over the last month and they have a prototype, it is not public yet but they will be launching it very soon.
What you see in the image is a small preview of what it will be but it is fully hosted on the blockchain. This solves the problem of security on the website because once it is audited and stored on the blockchain it is immutable.
We have three events coming up next month:
- PiX (in Lille, northern France) on April 8. This is an event to promote Massa and explain why to use this blockchain.
- PBWS. Paris Blockchain Week (BPWS) on April 13, 14. During this event they will do a workshop to demonstrate the functioning of their smart contract, and the functionalities that can be deployed in the field of video games.
- Hackathon Kryptosphere, in Lyon (France) on April 23, 24. They are organizing that hackathon for people to develop on the Massa blockchain. They will announce it and we will give more details the next weeks.
New website with new designs
They are going to promote a new browser, much more attractive than the previous one, which can be viewed in 3D or 2D, with new colors and more modern.
About the January episode, it was quite stable but not perfectly stable:
- No. of Nodes: 4,000
- No. of transactions/sec: 700
There has been a strange moment where the network stopped producing blocks, on January 12th the problem was detected and in the end it was solved with a couple of lines of code.
- No. of Nodes: 5,000
- No. transactions/sec: 800
They increased the speed at the end of the episode to 1,300 Tx/s with which some nodes did not resist remaining with 2,000 nodes. It was quite stable but some nodes did not produce any block, they connected to the network but could not support the load so they did not produce any block. That is one of the reasons why higher transaction throughput could not be achieved They have also seen that many nodes have had a lot of scoring while not producing any blocks, so they have modified the scoring formula in this episode. Now with the new formula, we get routability and decentralization as points only as you produce blocks, so if you produce all the blocks you were selected for, you score for the other aspects, but if you don’t produce any blocks you don’t get any points.
They wanted to make a global comment about this testnet, as some people complain that it is a bit unstable, explaining that this happens at the beginning of the episode, they still don’t understand why, they have to check it even more, and it becomes more stable when everyone is connected, like 3000 or 4000 nodes. Maybe it’s due to a bug somewhere, or that the startup process, which is not as smooth as it could be. In any case what they want to convey is that they are pushing the testnet to the limit, increasing the number of transactions per second as much as they can and this is to find the bugs and instabilities, when they can be corrected they can try to reach new limits, so the testnet will always be somewhat unstable.
In short they ask us to be patient and not to see their way of doing things as unfair. They are doing what they believe they have to do, finding errors and finding ways to reduce the number of errors.
Questions from the community
How do you calculate the Maxim Factor?
Maxim Factor takes its name from Maxim, who suggested the idea. It consists of measuring how nodes are distributed on the Internet and giving some kind of bonus to users who have some unusual provider or who run the node at home. What it does is measure the distance in the IP space, calculating the distance between an IP address and the closest IP address to it and the longer you get the more points.
Any recommendations with VPS and Cloud providers?
Can’t recommend a particular provider because otherwise a lot of people would go to that provider and it’s not good for decentralization. The most important thing is that providers don’t lie about what they sell, so you should pay attention to quality and what fellow community members say.
They are going to try to introduce new warnings in this episode so that the community can get more information about why their node is not working, to know if it is not connecting or if it is not receiving any blocks for a period of time, and it is easier to understand what is going on.
A node is using 25 Mbps, is this normal behavior?
Yes, they are trying to improve various aspects like packet compactness, and aspects that they mentioned at the beginning to improve this in the next two episodes. So it should be lower although they are going to increase the number of transactions per second, so the pressure will be constant on the nodes.
DAO & Decentralization. In the future we may be able to organize some governance election, e.g. election of the president?
Maybe not at the launch of the mainnet but later will have mechanisms for people to vote on aspects that are important to the network, such as the rewards of a block.
Decentralization and geography. If there are some bans on certain countries (Iran, Cuba, Russia) will you enforce them on the network?
It is a very topical issue, the Massa network is agnostic from that point of view, it is supposed to run everywhere assuming there is Internet connectivity, if there is any connectivity failure it is necessary to find ways to close the gaps that appear, but as long as there is connectivity the network should work. The question of regulation affects the company Massa Labs, the problem is whether it will be able to distribute initial coins, and allow to participate in the sale, given that the sale is in the French jurisdiction. These issues are still unclear and they will try to make sure that everyone can participate, but of course they must comply with Massa Labs regulations.
Is there going to be an application for hardware wallets in the future?
The first thing is to study the compatibility with current wallets and see if they can make them compatible with the cryptographic primitives they are going to implement, they are in conversation with some of the providers of those wallets.
As for connectivity with other networks
They are in conversations with other networks and other projects, discussing connectivity, interfacing, standardizing the way they interact and seeing how they can interact more with Massa and create standards.
Among the things they are looking at is meeting some of the existing interface standards, they are currently thinking about ISO 2022, maybe Cosmos IBC, everything for now is under consideration.
By the end of April or early May, will probably have a second leaderboard on the fringes of the nodes where they will score participation, etc.