City of Zion has recently released v0.8.2 of neo-python, a Python-based node and SDK for the NEO blockchain. The project aims to become a full port of the NEO project. The original changelog can be viewed here, and the latest version can be downloaded here.
- Add getblockheader RPC method
The neo-python project does not currently have support for all RPC methods that are implemented in neo-cli. CoZ developer @jseagrave21 provided the getblockheader method, which follows the same example set by neo-cli, but also accepts block height as a parameter in addition to block hash.
- Add VM sanity checks for operations on BigInteger’s
Independent developer @udoprog noted a potential exploit that could cause the VM to perform computationally expensive operations with a relatively low GAS cost. CoZ developer @ixje resolved the issue.
The neo-python team created an optional API extension that allows for the implementation of non-standard RPC methods (methods that are not implemented in neo-cli). In the future, extended RPC functionality will be moved to a Plugin-based system.
- Allow wallets to sync past corrupt blocks
- Fix max recursion depth exceeding when network data inflow exceeds processing speed
If incoming data exceeded the rate at which neo-python could process it, eventually the max recursion depth will be reached, causing a segmentation fault. @ixje resolved the issue by using a while loop to check if there is more data for parsing, as an alternative to recursion.
- Fix discrepancy between getpeers RPC call and the maxpeers setting
- Fix return types of claimGas function.
- Fix ExtendedJsonRpcApi
- Fix cleaning up tasks for disconnected peers
CoZ developer @ThomasLobker noticed that when a connected peer disconnected, tasks would keep running and consuming memory. He resolved the issue by adding a .stop() method to the tasks when cleaning up the disconnected peers.
- Fix duplicate task starting for requesting blocks
- Add log output control via the new config output_level command. The old config debugcommand is removed.
- Update Readme and Prompt.py help
- Update documentation to include new IsPayable contract flag in the examples
- Update CreateAddress functionality and tests
Community member @wanglongfei88 reported that an error message was displaying when creating an address, although it would be created successfully. @jseagrave21 addressed the issue, and took the opportunity to improve the functionality and make some improvements to CreateWallet tests.
- Add raw transaction building examples in \examples\ folder
- Update compiler version v0.5.6
- Add the option -u (unittest-net) to prompt.py
- Add fixtures guidelines and add the smart contract source codes (UnitTest-SM.zip) to the fixtures package
- Adds sendmany feature to prompt.py, integrates with send feature, and adds provisions for sending with a negative fee and bad from_address
- Remove Neo.Witness.GetInvocationScript
Readers that wish to contribute to the project are recommended to join the #python channel on the NEO discord, or to visit the current list of open issues on Github.
More information on City of Zion can be found at the links below.