In May, NEO Foundation and Ontology Foundation signed a MoU agreeing to co-fund a Joint Task Force, its purpose being API standardization and shared ecosystem of smart contract. The force would be in action for six months, with 4 million RMB [$600,000] contributed by both parties over this time.
It was reported that both NEO and Ontology would fully support the adoption and development of NeoVM [VM-Virtual Machine] and NeoContract in a bid to develop smart contract open standards.
NeoContract is a smart contract system built on NEO blockchain that allows transaction validation, token sales and decentralized app development. It consists of NeoVM, NeoContract APIs and software development kit [SDK].
NeoVM is a decentralized, stack-based VM designed for NEO where smart contracts are executed. Owing to loose coupling, the VM is not constricted to blockchain applications alone.
The emphasis on open standards is because it will facilitate interoperability and data exchange among different products or services. This would make adoption by the masses much simpler.
There are three crucial cogs to NeoVM, namely, execution engine, stacks, and inter-operable services.
- Execution Engine
Note that the execution engine also has a built in debugger.
NeoVM has three stacks – call stack, compute stack and standby stack. Call stack records the running state at the time of functions being called, so that the program may resume running in the contexts where the function is returned. The compute stack, referred to as buffer storage area, can be accessed directly by smart contract code. The standby stack stores data that is of no use to the compute stack.
- Inter-operability services
The interop connects the execution engine, stacks and external services, and using this, smart contracts can access all NeoContract APIs. Because of NeoContract’s low coupling characteristic, the NeoVM can be applied to other blockchains or scenarios outside of NEO blockchain.
NeoContract contains ‘advanced’ APIs to handle a greater number of tasks of greater complexity, and can be accessed via interop services by the NeoVM.
Run- time data indicates the current running state of the smart contract.
Digital assets- NEO digital assets fall into two categories: global assets and contract assets. NEO is a global asset. Contract assets depend on storage function of NeoContract.
Based on the language chosen, you go for the IDE-integrated development environment, to consolidate the tools developers need to test their software.
NeoX technology allows smart contracts to be executed across blockchains. It takes many steps to execute smart contracts, ending up in either “all success” or “all fail”. When employed, the technology will support cross-chain smart contract execution without compromising the consistency. But it is a mandatory requirement that NeoVM or similar technology be adopted.