May 2018 report

Fabio Canesin
Proof of Working
Published in
7 min readJun 1, 2018

City of Zion (CoZ) is a global community of open source enthusiasts, with the shared goal of helping NEO achieve its full potential. CoZ primarily operates through the community Discord and CoZ Github, central places where the community shares knowledge and contributes to projects.

CoZ is neither a corporation, nor a consulting firm or a devshop / for-hire group.

Governance

There is no formal process in joining CoZ. Interested individuals will have to do the work first, and the submitted code has to be licensed under the MIT License. Consistent contributors will become eligible to join the CoZ organization, and begin collaborating on projects. The governance process of this organization can be found here.

CoZ is not a regulatory body and take no responsibility for the quality of 3rd party smart contracts deployed on the Neo Blockchain.

Funding

Since its inception, the CoZ Council has been in close contact with the NEO Council. The NEO Council provides support to the community, in the form of NEO rewards, which CoZ redistributes weekly.

For individuals who are interested in financially supporting CoZ development, our donation address is AXSoNQEKjmqPBNPg5cNrHyWivfjok3Vj9D.

For transparency, CoZ Council members are excluded from weekly NEO rewards, and any CoZ competitions.

NEO 2020 vision

To be the one

CoZ continues to execute on the 2020 vision (#1) like clockwork, May was super productive on the groundwork for neo-sharp and supporting ecosystem, with a new maintainer Adrien Moreau (aka adrienmo) for neoscan and its very important API.

To achieve this vision, CoZ is implementing a new workflow for proposing innovations into NEO. The first component of this workflow is neo-sharp, an modular implementation of the current NEO C# nodes that we have begun developing to test new consensus and VM solutions. After enhancements have been successfully tested in neo-sharp, they will be proposed as NEO Enhancements Proposals (NEPs). This way we call always learn from new innovations and development done in other chains quickly, leveraging our modular architecture for rolling out improvements into production.

Anthony De Meulemeester (aka anthdm) will be working full time as the first developer and maintainer of this research network. Anthony has an MSc in computer science from Ghent university (2008) and has been working 10 years as a system engineer on high profile distributed and centralized applications. You may already know Anthony from his impressive work as creator of neo-go and his submission to the CoZ consensus bounty program: an implementation of the HoneyBadgerBFT protocol for public chains.

Anthony De Meulemeester

Projects updates

The majority of the projects in CoZ had versions released in May with several of the developers focusing on delivering the tools needed for projects and on delivering their road maps. Bellow you will find a series of updates from the maintainers.

neo-python

(by metachris)

In May there were several bugfixes and various improvements for neo-python, neo-python-core and neo-boa:

  • Added ability to attach tx attrs to build command and testinvoke. altered tx attr parsing
  • Updated the install instructions present on docs
  • Added support for optionally chunking through GAS claims in prompt #419
  • Support for RPC and REST endpoints in parallel #420
  • Added new command tkn_history to the prompt. It shows the recorded history of transfers of a given NEP5 token, that are related to the open wallet.
  • Added persistence of mint event types in NotificationDB
  • Fixed: a bug with smart-contract parameter string parsing #412, StateMachine.Contract_Migrate and add tests, issues with some JSON-RPC properties #418, fix current block lookup during smart contract event processing #426
  • neo-python-core:
  • make unhexlify in Crypto.VerifySignature optional (PR #48)
  • np-utils now supports — scripthash-to-address (thx @Belane)
  • neo-boa:
  • add support for JUMP_IF_TRUE_OR_POP and JUMP_IF_FALSE_OR_POP
  • Open pull-request for NEP-7 triggers

neo-local

(by revett)

In the month of May, the new neo-scan maintainer @adrienmo updated the project to use the production ready Docker image for neo-scan (see #19). This replaces the old method of building the neo-scan Docker image locally on the user’s machine. Alongside this change, a notifications server Docker container was added to the stack (see #6b41a2f).

@revett re-worked all of the documentation for the project so that it now sits within the wiki of the Github repo. This was after user feedback that the README documentation was too complex. @revett also added further automated testing to help with QAing new releases. Continued effect has been put into the neo-local CLI which will replace the current project as a cross-platform solution (beta testers needed). @jeroenptrs has also started work on a lightweight faucet, that will soon be added to the stack (see repo).

neo-hypervm

(by Shargon)

The neo-hyperVM project arose from the need to have a native, portable and faster virtual machine than the current used in Neo.

During the month of May, many improvements have been made in unit tests, some changes coming from the official virtual machine have been included, such as eliminating the need of PushOnly, or integrating the security improvement with the Stack isolation. We worked a lot of in the modularity to facilitate the change and testing of other virtual machine implementations in neo-sharp (see repo).

neon-js

(by snowypowers)

In May, neon-js saw 2 minor releases that introduced 2 new features. The first feature was localised latency checking of RPC nodes. Instead of fully relying on external sources to decide on a RPC node, the library now performs the check itself by pinging the nodes. This improves stability and spreads the network load. The second feature was the removal of the GAS requirement when sending an InvocationTransaction. This feature is made available only through the doInvoke method call.

Looking forward to June, the focus will be restructuring the repository for a major release. The plan is to move towards a mono-repository style so that the library can be made modular and fit the different use cases. This is also an opportunity to transit the codebase towards Typescript, increasing maintainability and readability. Do follow closely on the Github issues if you are interested to know what is changing for Version 4.

neo-sharp

(by gubanotorious)

In case you missed previous updates, neo-sharp is the new “flagship” project for City of Zion to create a modular core and node implementation for better maintainability, testability, and performance. This project was started by @ashant and maintained by @gubanotorious. Neo-sharp has made huge strides in establishing the foundation and architecture with a great team of contributors to date including: @aboimpinto, @ashant, @belane, @daghdha, @gubanotorious, @osmirnov and @shargon.

In May, substantial progress was made with focus in the following areas:

  • Application — command line interface and feature implementation
  • Network — mutli-protocol implementation, compression, protocol versioning and message handling
  • Persistence — multiple-repository support with current support for Redis or RocksDB, as well as support for both binary and JSON persistence formats
  • Testing — mock framework and unit test implementation across project areas with code coverage analysis reporting

To further efforts, City of Zion will be sending a team of members to Shanghai in July to work with the NEO development team to help accelerate the unified momentum for the project. This collaboration between City of Zion and NEO will enable neo-sharp to evolve to what many are expecting to become the reference implementation for NEO. If you are a skilled C# developer and want to contribute to the neo-sharp project, always feel free to contact @gubanotorious on the official City of Zion / NEO Discord Server.

neo-debugger

(by relfos)

In May, neon-debugger received a major release, containing around 40 different fixes / improvements since the original release, allowing the current version of the debugger to run correctly ICO sales and other complex contracts, supporting around 80% of the NEO contract API. Work on a full cross platform neo-debugger is also underway, based on Electron, the same tech that powers the Neon wallet.

NeoLux, the NEO C# swissknife framework used as part of neo-debugger also received a major boost, introducing new features like withdrawal of assets from contracts, and proper support for RPC nodes, allowing it to talk with private nets and even the neo-debugger, which also now implements an RPC protocol.

In June, the neo-debugger is going to go under a major rewrite, to have a better integration with NeoLux to simplify the code and at the same time get most of the Windows dependencies removed, in order to further advance the upcoming release of cross-platform version.

— — —

If you jumped to the end, yes CoZ is taking all the neo-sharp team to Shanghai in mid July to work together with NEO Global Development (NGD) technical team for a big sprint. See you all in 1 month for June report.

Regards,

Follow CoZ on Facebook, Medium Publication and Twitter for the latest updates on CoZ development!

--

--