February 17, 2017 - Dev update

This week began with the successful and timely release of [1.0.6] (New Release: 1.0.6 - Electric Coin Company) which features low level interface improvements along with upgrades to security components. If you haven’t updated your nodes yet, go ahead and do that now then come back to read the rest of this update. :slight_smile:

For the big picture planning theme of the week, we started fleshing out a [list of priorities] (Home · zcash/zcash Wiki · GitHub) which is helping to shape a development roadmap. You’ll see the details of this roadmap explained further in an upcoming blog post. From a priorities standpoint, security incidents will always come first and foremost with 100% engineering time dedicated to any related tasks. We will also keep continuous improvement high on priorities but with a fraction of engineering time dedicated so other tasks can happen simultaneously. New features on this priorities list include [payment disclosure] (payment disclosure · Issue #2036 · zcash/zcash · GitHub), [delegated proving] (Payment Offloading protocol for light wallets. · Issue #1113 · zcash/zcash · GitHub) and [XCAT] (Cross-chain Atomic Trades (XCAT) · Issue #2098 · zcash/zcash · GitHub) - which might not be a surprise if you’ve been keeping up with dev updates so far. We consider these features low/medium hanging fruit which will enhance the Zcash ecosystem to a significant extent. Research and development on core circuit improvements in addition to [user-defined assets (UDAs)] ([ZIP 220] Zcash Shielded Assets (previously UDA or UIT) · Issue #830 · zcash/zcash · GitHub) are further down the list of priorities at this point but still in the scope of our roadmap.

We also discussed a security incident response process which we will make public via a blog post in the near future in addition to our continued open development process. While our engineering meetings are currently kept to an internal scope, we plan on extending invitations to outside developers with related work and interest. We are additionally exploring other methods for more open video meetings. Our AMA’s are also set to occur on a bi-monthly basis with the [next one] (Technical AMA w/ Zcash core devs Feb 24, 2017 noon PST) set for a week from today on Friday, February 24th. We’re also keen on keeping up public text-based engineering discussions which are hosted on the [community chat] (https://chat.zcashcommunity.com), mostly in the #zcash-dev channel. Engineers, advisors and scientists working with ZECC are marked with Zcash Team Member.

To keep the ball rolling with Payment disclosure, we had another topical meeting which focused on nailing down a solution to the privacy leaks with change addresses which resulted in a new approach (issue 2102, PR 2103) and specification into a ZIP which will be pushed as a draft for review in the near future.

We continued work on pulling in [changes from upstream] (Bitcoin Core 0.12.0 · Issue #2074 · zcash/zcash · GitHub) Bitcoin v0.12.0 (PR 2099, PR 2100, PR 2101) and [unifying the RPC documentation] (Unified documentation for zcash-cli · Issue #2034 · zcash/zcash · GitHub).

In addition to the above changes from upstream for [1.0.7] (1.0.7 Milestone · GitHub), we worked on a new RPC command [z_decryptsinceblock] (New RPC method z_decryptsinceblock by str4d · Pull Request #2105 · zcash/zcash · GitHub) which mimics listsinceblock functionality but includes transactions sent to shielded addresses in the wallet. We also continued work on a [test for prioritising transactions] (https://github.com/zcash/zcash/pull/2014).

On the infrastructure side of things, more was done to finalize a [chain fork detector] (Internal Chain Fork Detector · Issue #1925 · zcash/zcash · GitHub) and we also stabilized our [network dashboard] (https://mainnet.z.cash/) which shows a visual of recent peers on the network and highly available nodes.

Next week, we’ll redirect more focus onto 1.0.7 issues and continuing development and specification of payment disclosure.


I’ve updated my beta of zcash4win to track the 1.0.6 updates, its at:

Updates to my mac port hopefully coming soon!


Zchain has (invisibly, sans one bug pointed out by a helpful Twitter user and since fixed) been upgraded to an upgraded underlying chain sync algorithm (the layer between the Zcash daemon RPC interface and the relational database which serves explorer API requests) that should be more robust against chain forks / reorgs (e.g. displaying canonical balances afterwards even if the underlying Zcash client followed a chain for a few blocks that ended up becoming non-canonical). The API documentation at API - Zchain lists the new endpoints - older ones will still be served (via redirects) for the time being. Current chain tip status is available at https://api.zcha.in/v2/mainnet/tips - status display page coming soon.

The network page (now at Zchain Network - Zcash Network Visualization) now includes nodes behind NAT (synced from mainnet.z.cash) - IPs only, not version information (since the Zcash node cannot connect to nodes behind port-blocked NAT). Almost five thousand (known) connected nodes! Do note, however, that this number is likely a slight overestimate of the number of unique nodes, as a computer switching IP addresses (e.g. someone running Zcash on their laptop while using wireless internet at various coffee shops) will show up multiple times.


Have you found any geoip database that gives decent results for IPv6? I’ve got a version of bitnodes working with zcash (I call it znodes :slight_smile: ) but the free geoip database from maxmind for IPv6 doesn’t give good city information for IPv6…and all the providers of alternative geolocation databases I’ve done “a free test IP lookup” with have given me garbage data fro my IPv6 addresses :frowning: (either just the location of whoever owns the IPv6 block, or total nonsense).

The network page is backed by http://ipinfo.io/, which gives reasonable results and supports IPv6 - they have a rate-limited free tier.

I’m curious - are the node counts / version / location distributions you’re seeing with Bitnodes/Znodes similar to those on the network page?

I don’t have it handling version info correctly yet, as the bitnodes docs are somewhat incomplete and/or stale, so its a “use the source” situation. I’ve reaching just over 500 live nodes right now, which does not include one of the ones I’m running.

I take that back, it IS showing the client ID when you do an export of the data, @lustro !

But it hasn’t crawled to any of the BeanStalk nodes that are showing up on network.zcha.in (which are zcash4win clients)…but it has reached some nodes that identify themselves as NTwoR:1.0.5, which google only has results for on coinexchange’s zclassic node page, so I have no idea what those are, @lustro

Here’s the version distribution I’m seeing right now:

     62 MagicBean:1.0.0
     22 MagicBean:1.0.1
      3 MagicBean:1.0.2
     42 MagicBean:1.0.3
    108 MagicBean:1.0.4
    213 MagicBean:1.0.5
     50 MagicBean:1.0.6
     11 NTwoR:1.0.5

NTwoR is zclassic’s client version now

thanks! seems like some zclassic nodes are on the zcash network!

1 Like