Today, we bring you a hard-core knowledge: MultiVAC’s transaction and contract processing procedures.
As everyone knows, MultiVAC is based on the original all-dimensional sharding technology, which realizes the ultimate expansion of multiple dimensions such as computing, storage, and transmission. For the first time, it gives the blockchain system the ability to parallelize processing, and the performance of the entire network can be linearly expanded. At the same time, it supports Turing’s complete smart contract programming and is known as a true multi-core world computer.
So how does this computer process transactions and contracts? Let me show you.
1. The miner starts, completes the mortgage, enters the re-sharding process, and chooses to serve a certain shard;
2. Miners find the storage node of the shard and get the rightmost Path of the Main Tree;
3. The transaction initiated by the user will be broadcast to the storage node, and after the storage node verifies that the transaction is legal, it will be cached;
4. Miners find the storage node for unconfirmed transaction data, run consensus algorithm, generate the block, and broadcast block generation information Block Tree to the entire network;
5. When a miner produces a block, it will add the received block information from other shards and the block information of the current shard (both the Root of the Block Tree) into the Main Tree of the current shard, and then send the new Main Tree and transaction data block to the storage node; the storage node verifies the Main Tree and saves the data, and updates the ledger.
What about the contract?
A contract can be regarded as a special transaction, and its processing process will also follow the transaction processing process, but it is slightly different
- The contract has 2 “transaction types”, create and call;
- The contract has 3 “data types”, global data (main shard), shard data and personal data;
- There are 2 types of “addresses” in the contract, contract address, user address (user address that allows the contract to be called)
- The contract has 2 “data storage models”, UTXO model and DataCell model
- There are 4 types of “execution instructions” in the contract, add, del, update, merge
During the execution of the specific contract (ie 4 and 5 of the transaction processing)
1. The miner finds all the data required by the storage node to execute the contract, and executes the contract after all the data is obtained (if no data is obtained, it is equivalent to transaction blocking, and the miner discards the transaction according to the parameter setting);
2. After the execution of the contract is completed, the block is generated. When the block information is broadcast, the action of the contract to be executed by other miners is broadcast at the same time (Note: Actions in a single contract are executed serially to ensure monotonic consistency);
3. When miners generate blocks, they first process Actions from other shards, first add and then merge (only these two will cross shards), and then execute the Actions in this shard, so that after all enter the Main Tree, the miners will send the new Main Tree and the Block data to the storage node, and then the storage node saves and updates the ledger.
MultiVAC is a high-throughput flexible blockchain platform based on all-dimensional sharding. It’s a next-generation public blockchain platform built for integration with large-scale decentralized applications (dApps). MultiVAC is developing the first solution in the world characterized by speediness, efficiency, and all-dimensional sharding to expand its capacity in computation, transmission, and storage. It realizes the maximum throughput while maintaining decentralization and without sacrificing security.
Telegram Group: https://t.me/MultiVAC2020