COZ released a major update to its Python node and sdk, neo-python, v0.9. The new version includes various improvements and fixes aimed at improving the robustness of the implementation, marking the first time that neo-python produces a chain state that is 100% compliant with neo-cli.

The neo-python node is widely used within the NEO community, providing communities and projects with a suitable client to interact with the NEO MainNet, TestNet, or private networks.

Using Python makes it accessible for a large number of developers, and the included SDK allows Python smart contracts to be compiled, tested, and deployed. Neo-python can be used to inspect the blockchain or act as an RPC server, and in future it aims for complete feature parity with neo-cli, including the ability to act as a consensus node.

Latest Changes

The neo-python changelog for v.0.9.0 outlines a laundry list of updates, with over 60 pull requests including bug fixes, new features, and notable improvements, including the ability to attach system and network fees, viewing GAS consumption for an operation, and ensuring proper VM execution.

The SimplePolicy plugin was also implemented, which will ensure that neo-python nodes will not incorrectly hold on to transactions that are invalid due to having an insufficient network fee paid.

New network code was also added to provide additional fault tolerance to nodes, which accompanies a shift away from the twisted third party event-driven framework to asyncio, a standard library in Python 3.7.

In order to test block processing, a large-scale audit was performed that verified the chain state against one processed by neo-cli on both the MainNet (block 4.118M) and TestNet (block 2.97M). The results revealed that neo-python produced an identical chain state, a milestone achievement for the contributors.

Following the main release, a subsequent update was issued that included a few fixes, including syncing with the recently released neo-cli 2.10.3 clients. This new release, v0.9.1, is available for download here.

Future Versions

Moving forward, neo-python maintainer Erik van den Brink will work on laying the foundations for a NEO3 version. Given the prominent usage of neo-python in the NEO development community, this will ensure that the project can serve those looking to experiment on the NEO3 TestNet.

Those looking to contribute to neo-python may find it difficult to assist in this endeavour without prior knowledge of the repository, however help is always welcome, in particular with the lightweight SDK API which aims to reduce the learning curve for NEO Python developers.

As neo-python is an eligible repository for COZ rewards, contributors will be able to earn tokens for their commits. Rewards are calculated in accordance with the impact and quality of the contribution.