This is the Ninth edition of the BCH Pulse developer newsletter. Existing projects have been updated. We will now be moving to a monthly publication. Submissions are due in by the 20th of each month.

Information can be sent to the new email bch.dev.mail@gmail.com

Here is some of the work that is being built on BCH by the Developers. This does not take into account work done by developers who chose to remain anonymous.

Currently working on:

Misc work on SLP support in BCHD.

Wants help with:

SLP support in BCHD:

https://github.com/gcash/bchd/issues/328

Recently completed:

Released first spec draft for Avalanche pre/post consensus system (Snowglobe) and started discussing and incorporating feedback.

Currently working on:

Continuing work on Avalanche system, both spec and implementation, and working through feedback received from the spec draft.

Working with some experienced computational proof (zkSNARKS, SONICS, etc) developers to derisk, formalize, and build test systems for some potential ways to bring the technology to Bitcoin Cash.

Future work:

Finishing initial public version of Avalanche test system and incorporation of initial spec feedback

Releasing some proof of concept systems utilizing zero knowledge proofs to aid in scalable validation.

Wants help with:

Researching and building Snowglobe prototype. e.g. spec writing/editing, test writing, manual testing, code writing and review. Design and front-end skills are also very valuable.

Researching and building SNARK-based applications.

Previous knowledge is very helpful for either, but solid writing, engineering, or design skills are enough to learn and participate. No contributions are too small!

Recently completed:

Got CashFusion alpha working smoothly, near-beta state

Currently working on:

Preparing for May upgrade

Future work:

Improve Schnorr signature usage (add to ABC wallet), start work on Schnorr batched validation.

Further improvements to CashFusion

Starting work on November upgrade.

Recently completed:

Code review UX improvements

Improved release automation

Currently working on:

Better review process UX

More release automation and test coverage

Future work:

Faster infrastructure deployments

Wants help with:

Unit test, utility, and network back-ports:

https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/doc/backporting.md

Currently working on:

BCH Script Roadmap

https://gist.github.com/Mengerian/7ae4c4abbc6f4d1664507c817a51da2f

Recently completed:

Packaged libsecp56k1 for the rest of the ecosystem to use

https://github.com/bitcoin-ABC/secp256k1/

Automated testing improvements.

PSBT

Currently working on:

Support for Quic

Future work:

Prep for May 2020 network upgrade

Rework of checksig.

Opcode to reverse bytes in stack element

Wants help with:

Node development, pretty much anything somebody would be interested in working on and helping to maintain.

Recently completed:

BU: https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/2053

(Add Nov 15th 2019 checkpoints for mainnet and testnet)

BU: https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/2070

([port][rpc] Add getchaintxstats and uptime RPC calls)

EC: https://github.com/Electron-Cash/Electron-Cash/pull/1771

(Add Bitcoin Unlimited managed Electrum server to the white list)

BU: Use BU BCH ppa repository as Berkely DB packages provider

BU: Update ElectronCash build instruction to take into account binary rename

BU: Fix input validation for traffic shaping parameters

Set up a new instance of Electrum server maintained by BU (electrs.bitcoinunlimited.info)

Currently working on:

Porting https://github.com/janoside/btc-rpc-explorer over to BCH

Setting up an explorer for BCH

Future work:

Gigablock testnet experiment #2 iteration

May 2020 upgrade feattures (op_reverse and sigCheck)

Wants help with:

Porting https://github.com/janoside/btc-rpc-explorer over to BCH

Currently working on:

Phase 1 BCH specification project for evaluation http://reference.cash

Collaboration on DS proofs with TomZ.

Voting software dev project.

UMass research on a Bobtail and Storm prototype

Tail elimination difficulty DAAs.

Testing of long unconfirmed chains and “intelligent forwarding” algorithm.

PRs covering smaller stuff.

Testbench work to create a dedicated gitlab runner and docker container

Recently completed:

O(n^2) post block processing related to long chains

Currently working on:

Multi-threaded block validation

Future work:

Giga-net testing

Recently completed:

Bitcoin Verde has been dedicated to working on the Bitcoin Cash Protocol Specification. With the funding depleted, we are looking for additional funding. Until then, we have begun resuming optimizing Bitcoin Verde for a smaller disk footprint and improving the initial block download sync time. We are also making time to release our wallet. Below are details regarding the status of the Bitcoin Cash Protocol Specification:

The protocol specification work that was funded by Bitcoin Unlimited was completed

Current status can be viewed at https://bitcoinprotocol.cash

The repo behind bitcoinprotocol.cash is located at https://github.com/SoftwareVerde/bitcoin-cash-specification

Bitcoin Unlimited’s clone of the repo is located at https://github.com/BitcoinUnlimited/BitcoinCashSpecification

Other node implementations are encouraged to clone the repository. If you’re a developer and would like to have write access to bitcoinprotocol.cash create an account and ask for it to be activated in the Bitcoin Verde telegram. We encourage at least one representative from each node implementation to have write access. The consortium is looking to diversify control of the bitcoinprotocol.cash system. This includes different owners of the following attributes:

- The bitcoinprotocol.cash domain (Verde)

- The bitcoinprotocol.cash repository (to be determined)

- The bitcoinprotocol.cash server (BCHD)

Currently working on:

Looking for additional funding to expand on the specification.

Future work:

The code used to host bitcoinprotocol.cash will be released soon.

Recently completed:

Setup framework for proper API documentation.

Currently working on:

API documentation hand-off.

Webpage refresh.

Future work:

Transition PayButton from polling to socket connection.

Recently completed:

Native SLP integration into bitcoincashj. This will allow for fully-featured SPV SLP wallets with HD support for Android and Desktop with Java.

tipbitcoin.cash HONK SLP token support.

tipbitcoin.cash backend improvements and fixes.

Future work:

tipbitcoin.cash fixes.

Crescent Cash Desktop SLP support.

Recently completed:

Doing reviews for misc projects.

Currently working on:

Reusable address: Working closely with both bchd and Harry Barber for a layer on top of bitcoind. Prototype server:

https://github.com/hlb8122/prefix-server/tree/dev/grpc

Future work:

Assist with double-spend proof testing and implementation

Investigate Avalanche and Storm pre-consensus mechanisms

Recently completed:

Fulcrum SPV server early beta: https://github.com/cculianu/Fulcrum

Currently working on:

Fulcrum release

Future work:

CashFusion release / UI polish

Wants help with:

Testing and writing documentation

How-tos for Fulcrum once it’s released (which is soon!)

Currently working on:

CashFusion for Beta Release

Researching Cash Fusion Maths

Recently completed:

Preparations for SLPDB v1.0 upcoming release (“db-updates” branch on GitHub

Initial sync time is now as low as 8 hours using bchd gRPC, compared to previous sync time of ~24+ hours

Startup time is now as low as ~60 seconds with gRPC, compared to the previous startup time of 30 minutes

Real-time validation speed is much faster and unconfirmed/confirmed items always have validation finished (no longer possibly pending slp validation)

Memory footprint is reduced to 1 GB, compared to previous footprint of ~6 GB

Addresses and UTXOs collections removed (Breaking Change)

The latest version is running at nyc1.slpdb.io (maybe on or offline since I’m using this for testing)

Electron Cash SLP 3.6.2 Pre-Release

Fixed issue related to “Wallet does not have SLP input” error on sending SLP transactions

Currently working on:

Electron Cash SLP 3.6.2: Add “exclude_txids” in Graph Search server query. Prepare for release with testing.

SLPDB v1.0: Completing a few unfinished items to reach feature parity with SLPDB 0.15

Future work:

Develop more testing scripts for SLPDB

Continued maintenance and improvements for EC SLP and SLPDB

Wants help with:

Developing testing scripts for SLPDB

Developing some unit tests scripts for Electron Cash SLP

Currently working on:

Misc smart contract work.

Replacement for BitBacker

Future work:

Switching Cashual backend to use Electrum

Currently working on:

Backporting code to ABC

Bitprim node improvements

Future work:

Remove the restriction of 25 chained transactions.

Wants help with:

CashShuffle library unit tests and performance audit

Recently completed:

Token-liquidity app is more robust and includes token burning via OP_RETURN code: https://github.com/Permissionless-Software-Foundation/token-liquidity

Math behind the token-liquidity app:

https://troutsblog.com/blog/design-pseudo-stable-community-token

Currently working on:

Benchmarking standards and tests for the ‘Cash Stack’: https://github.com/christroutner/benchmark-bch/tree/master/docs

More explanation of the ‘Cash Stack’

https://troutsblog.com/research/bitcoin-cash/how-to-bch-full-stack-developer

Future work:

Porting the features and payment processing in api.bchjs.cash and account.bchjs.cash to rest.bitcoin.com

Wants help with:

Feedback on the benchmark tests would be great. Open to thoughts on better testing methods and additional testing methods. I will publish a post to r/bitcoincash once I’ve finished the first draft.

Recently completed:

*Currently working on paper wallet manager for Electron Cash, Mecenas with cash account, hardware wallet support for Last Will

Future work:

Fully automated Mecenas

Wants help with:

Hardware wallet in Last Will plugin

Recently completed:

Cashcontracts-rs, which makes working with transactions and contracts much simpler: https://github.com/slpdex/cashcontracts-rs

Currently working on:

OP_REVERSE

Be.Cash

Wants help with:

Future work:

More Be.Cash features

Mitra transaction format

Bitcoin-cash crate: https://crates.io/crates/bitcoin-cash

Currently working on:

Compiler optimization algorithms

Future work:

Macros

Pattern matching

IDE support

Recently completed:

CashScript v0.3.1, including bug fixes, improved error handling and some interal refactoring.

Currently working on:

Article on covenant use cases with CashScript, collaborating with Andre Cabrera on browser support for CashScript.

Future work:

Advanced compiler optimizations, tuple assignments, and other improvements

Needs help with:

Trying out CashScript and reporting any bugs or suggestions. Also any open issues on the CashScript repository (https://github.com/Bitcoin-com/cashscript/issues), specifically any issues labeled “help wanted” or “good first issue”.

George Bissias - Bitcoin Unlimited

Justin Holmes - Bitcoin Unlimited

Dagurval - Bitcoin Unlimited

Tom Zander - Flowee

Axel Gembe - Electron Cash

Pete - Bitcoin.com

Shammah - Cashweb Keyserver

We invite any developer (working on BCH) who isn’t featured in this issue to self report / submit what you are working on for the next issue of BCH Open-Source Pulse.

We’re looking for information on:

Recently completed

Current work

Future work (stuff you’d like to get to after you’re done with your current work)

Anything you’d like some help with

Please email us at bch.dev.mail@gmail.com

You can find a copy of this newsletter online at: The Future of Bitcoin Cash