Weekly Report #23–2017.12.31

Fabio Canesin
Proof of Working
Published in
6 min readDec 31, 2017

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.

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. This week, 434 NEO were awarded for the contributions to the NEO ecosystem.

Week in Review

dApp Competition:

Registration for the second CoZ dApp competition opens on 25 January 2018! Learn more on the official website.

Help us attract the amazing talent out there that don’t really know about NEO yet. Please print this poster and spread across the technical Colleges and Universities near you.

Download the PDF here

Campaigns

Stack Exchange:

We need experienced Stack Exchange users (with more than 200 reputation) that want to be active in our community, to commit to the proposal. You can do so here.

Development Updates

Contributions now follow the new format done together with the CoZ contributors.

neon-js

  • Add changes to doInvoke and doMintTokens for rejection during verification
  • Added Flow (#102)
  • Using byte lengths instead of hexstring lengths (#101)
  • Fix integration tests concerning NEP5 token transfers
  • Neon-js light wallet wrapper #108

neon-wallet

  • Addition of Address Book system
  • Updated ledger code for NEP5
  • Add support for private net (must be neon db compatible)
  • Add support for user defined NEP5 tokens
  • QA review for v0.0.8 release.

neo-debugger-tools

  • Refactor of smart contract Storage code, and added Storage viewer
  • Implemented debugger API for Transaction (Inputs and Outpus), Block and Blockchain
  • Merged PR #16 in neo-debugger-tools
  • Big refactor of Debugger code, lots of stuff moved into separate “Emulator” lib
  • Improvements to emulation of Storage API (calculation of used space, support for Delete() call)
  • Created NEO devshell to interact with smart contracts (running in the NEO emulator)
  • Updated readme with information about how to compile and setup the debugger and shell
  • Improvement formatting of SC outputs (now besides the previous types, also detects byte arrays that match NEO wallet address format)

neo-python

  • Update help prompt message
  • Update prompt hinting/autocomplete
  • Finished off the last bits of implementation of the ConsensusContext.py.
  • Added serialization code to ConsensusMessage.py and some cleaning up.
  • Hooked up all event handlers to ConsensusService.py together with all their handler implementations.
  • Debugged and fixed initialization code in Block, Blockbase, CoinReference, TransactionAttribute and Witness to assure correct type initalization and return values for other parts of the code.
  • Debugged and fixed and issue in LevelDBBlockchain.py related to block retrieval.
  • Updated parts of NeoNode.py to closer reflect the latest neo-project code of RemoteNode.cs.
  • Implemented the remaining and majority of ConsensusPayload.py + wrote test cases for it.
  • Implemented the VerificationContract class.
  • Lots of debugging network traffic
  • Add VerificationContract and IOHelper update.
  • Fix Witness initialization.
  • Fix LevelDBBlockchain.GetBlockHash
  • Add ConsensusPayload class

neo-swift

  • NEP5 Tokens support for NEOSwift.
  • Support end-to-end encryption using NEO’s key pair and ECDH in NEOSwift.

neo-gui-wpf

  • Using the xUnit platform to create unit tests
  • Moved most viewmodel classes to .NET standard Neo.Gui.ViewModels project
  • AutoMockContainer
  • 29 tests added to HomeViewModelTests
  • AssertViewModelTests added
  • NEP-6 wallet file support
  • Neo and Neo.VM nuget package versions updated
  • Change to config.json structure
  • Modifications to WalletController and view model classes to fix breaking changes from Neo/Neo.VM package updates
  • Small bug fixes in WalletController
  • Moved more view model classes to Neo.Gui.ViewModels project
  • Moved transaction generation logic from view model classes to WalletController
  • Removed RelayCommand and ViewModelBase implementations and replaced references with implementations from the MvvmLight library
  • Cleaned up namespaces
  • Refactor in WalletController and CertificateService
  • TransactionsViewModelTests added
  • PR #100: Cleaned up WalletController and LocalBlockchainController classes
  • PR #101: Added NetworkController and BlockchainImporter classes
  • PR #102: Separate project for translated string resources
  • PR #103: Removed WalletAccount property from AccountItem to help with creating dummy AccountItem instances in unit tests
  • PR #104: Removed AssetState property from FirstClassAssetItem class to help with creating dummy AccountItem instances in unit tests
  • PR #107: Removed related account combobox control from ImportCustomContractView as it is no longer used in custom contract importing, fixed issue #106

neo-ruby

  • Deserialization of raw block data

neo-scan

  • Several bug fixes in preparation to be the main API serving NEON wallet in future versions.

neo-java

  • NEO-CLI RPC calls 70% (7/10) complete.
  • NEON-API RPC calls 25% (1/4) complete.

neo-js

NeoLink

  • Integrate Material Design (and state handling for fields) in views: Send, SendInvoke, TestInvoke, Transactions, Balance, Login, Logout.
  • React migration + use latest neon-js from CityOfZion repo
  • PR to adjust authorize results and remove buttons on that display.
  • Send invoke implementation #21.
  • Create NeoLink Website: https://link.neo.tools

neo-privatenet-docker

Several updates to support new versions of neo-cli, bugfixes and integrating NEP-6 wallets. Also documentation updates and a ready-to-use config file for Windows users of neo-gui and neo-developer-gui.

  • PR #12 update to neo-cli v2.5.0
  • Changed base image to microsoft/dotnet:2.0-runtime, which reduces image size from 2.67GB to 1.35GB.
  • PR #13: Update to neo-cli v2.5.2, and refactoring of docker_build.sh to make it easier upgrading to new neo-cli versions
  • Troubleshooting the broken neo-cli >= 2.5.0 (Issue #15, neo-cli issue #69). Cooperation with ashant and fabwa.
  • Upgrade of wallets to NEP-6
  • PR #16: Upgraded wallets with neo-cli 2.4.1
  • PR #18: Upgraded to NEP-6 JSON wallets (using neo-cli 2.5.2), removed old .db3 wallets
  • PR #17: specifiy the neo-cli version by just setting one variable in docker_build.sh
  • PR #20: Continuous integration: Test RPC calls
  • Review & Support
  • PR #14: Improved README for Windows (needed a lot of back and forth)
  • PR #11: Windows config files

Videos

“web-app, dapps, token smart contracts, ERC20, NEP5” : NEO 8

“Hypertext Transfer Protocol” : NEO 7

“TripShares token smart contract code review” : NEO 10

Other

On behalf of CoZ council I want to say thank you to our big community for all the work done in this 2017, be it on organization, marketing or development.

The developments made on NEO in 2017 means it can do today:

micro transactions, you can transfer $0.00000025 (1e-8GAS) for free.

IoT machine to machine (m2m) transactions.

Smart Contracts execution at >340tps.

Power smooth ICOs.

Have production smart contracts in Python and C# with beta for Java, Kotlin and JavaScript.

do many more.

2018 is looking to be a very promising year for NEO and CoZ will continue to be focused in helping it achieve its full potential, that is far greater than most realize.

Regards,

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

--

--