Building up the aelf kernel
— an innovative blockchain architecture
The Kernel is an important piece of software that’s at the center of the system. One of its main roles is to dispatch transactions. aelf Kernel stores its state in a structure named “World State”. It contains the states of every account in the system which also includes the state of every smart contract. The last weeks we have been focusing on the storage of state, transaction scheduling and smart contracts, which form the main components of the aelf Kernel.
We implemented the World State which contains the state of all accounts on the chain. The integrity and correctness of the data is verified with our Merkle Tree structure. In order to interface our system with different data providers, we have implemented the data access mechanism that lets aelf work with different data storage solutions.
The Scheduler is a very important part of the Kernel since its responsibility is to dispatch transactions that will be executed by worker machines. Because certain transactions must be completed before others, the scheduler must calculate which transaction can be processed in parallel and the ones that cannot. We have stabilized our design and implemented our solution.
The Kernel is now capable of deploying new smart contracts to our system. Once a contract is deployed, users can call methods on these smart contract. We’ve implemented the mechanism that processes transactions that invoke code on smart contracts.
While stabilizing the core we are also planning the next steps. The Kernel is going to be run in a computing cluster (numerous computers together in the same network). As said earlier one of the roles of the Scheduler is to send transactions to be executed by worker machines. In order for this to work we need to design and implement the network layer and the communication protocol for in-cluster communication.
— Join the Community:
· Read weekly articles on the aelf blog
· Catch up with the develop progress on Github
For more information, visit aelf.io