BCH Open-source Pulse : Vol #3
# Weekly Summary
This is the third week of the BCH Pulse weekly developer newsletter. Existing projects have been updated. Three new projects have been added: P2PVPS, CCoinjoin, and Bitcoin Unlimited. 3 developers have been added: Chris Troutner, Paool Kim, and Jonathan Toomim.
# Chris Pacia
## BCHD
Recently Completed
* Convert to go mod
https://github.com/gcash/bchd/pull/266
* Reviewed open PRs
https://github.com/gcash/bchd/pulls
Current work
* Add RPC calls to gRPC API to service Electron-Cash
* Build an SLP index and RPC
Future Work
* Reusable Addresses
Wants help with:
* Need urgent backports and fixes from the Andriod-neutrino repo: http://github.com/gcash/android-neutrino/issues http://github.com/gcash/bchd/issues
# Josh Ellitorpe
## BCHD
Recently Completed
* Mobile UI Changed green plus to light grey
Current work
* Add RPC calls to gRPC API to service Electron-Cash
* Build an SLP index and RPC
Future work
* Reusable Addresses
Wants help with:
* Need urgent backports and fixes from the Andriod-neutrino repo:
http://github.com/gcash/android-neutrino/issues http://github.com/gcash/bchd/issues
# Tyler S.
## BCHD
Current work
* Snowglobe, a permissionless pre/post consensus layer, running on the BCH chain.
* bchd integration to utilize the Snowglobe finalization
* Explore reusable address spec
Wants help with:
* Implementing CashFusion and contributing to the CashFusion specification
* Reviewing the following Pull Requests:
* https://github.com/gcash/android-neutrino/pull/31
* https://github.com/gcash/bchd/pull/265
* CashShuffle library for Golang
# Jason Cox
## Bitcoin ABC
Recently Completed
* Scaled build systems to support more devs and infrastructure
Current work
* Building test infrastructure
* Optimizing Code
Planned work
* Backporting Bitcoin Core patches
Wants help with:
* backporting improvements to the functional test framework
https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/doc/functional-tests.md
https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/doc/backporting.md
* Improving Deep linking specification - https://github.com/bitcoincashorg/bitcoincash.org/pull/145
# Tom Zander
## Flowee
Working on
* Doublespend proofs
https://gitlab.com/FloweeTheHub/thehub/merge_requests/10
Future work
* Proof of concept for double-spend proofs
* Transaction builder https://gitlab.com/FloweeTheHub/thehub/blob/master/libs/utils/TransactionBuilder.h
Wants help with:
* Corresponding about toolkits and languages developers prefer to start new project in.
* This would help give focus on which type of bindings to create.
* Website translations and rewrite of the about-page with more documentation
* Work on docker images and configs
* Research on how to be able to quick-start a complex (multiple server) setup
# Jonathan Silverblood
## Cashual Wallet
Recently Completed
* Researched Spedn script
Working on
* Integrating BIP70/JPP payment support
* OP_RETURN metadata (CashIntents)
Future work
* Cloud backup
* Reusable Addresses
Wants help with:
* Would be happy to help other projects with user interface reviews
* Testing Cashual and giving actionable feedback
* 3rd party BWC/BSW dependency libraries
* Resolve bugs in bitcoincom fork of bitcore in order to get BIP70 working
* There is an open issue at bitcore insight to add raw transactions: https://github.com/bitpay/bitcore/pull/1881
# Pokkst
## Crescent Cash
Recently Completed
Assisted and Cooperated with Electron Cash:
* create_slp (for creating SLP wallet via CLI)
* slp_add_token (for adding a token to a wallet)
* payto_slp (for paying to an SLP address)
Working on
* add JSON RPC methods for SLP tokens
* Refining the UI
* Optimizing and cleaning up codebase
Future work
* Social features
Wants help with:
* A better PHP library for Bitcoin Cash. Potentially look at forking bitcoin-lib-php
* Java based wallet library akin to bitcore-wallet-client and bitcore-lib
# Axel Gembe
## Electron Cash
Recently Completed
* Improvements for automatic builds and reproducibility
Working on
* Improving UI polish
* Make emojis consistent to enhance the UX of the user.
Would like help with:
* Finding an NFC library that could be used with Electron Cash
* Fixing hardware support issues.
# Calin Culianu
## Electron Cash
Recently Completed
* Added JSON-RPC and CLI 'payto_slp' command 'create_slp' ‘slp_add_token’
* Reviewed UI/UX Issues
Current work
* Optimizing the SLP backend
https://github.com/simpleledger/Electron-Cash-SLP/pull/80
* Enable SLP features in EC main client
Future work
* Reusable addresses
Would like help with:
* Replacing Electrum backend for Electron Cash with something better and more performant
* BCH UX Fix: Mandatory CashAddr for P2SH. (https://github.com/Electron-Cash/Electron-Cash/issues/1225)
* Reviewing zero confirmation forfeit from Awemany (https://github.com/Electron-Cash/Electron-Cash/pull/964)
# Imaginary_Username
## Electron Cash Development
Current work
* Soliciting input for a reusable address spec
https://github.com/imaginaryusername/Reusable_specs/blob/master/reusable_addresses.md
* Product design
* Quality Assurance
* Community needs
* Create long-term strategies for the wallet
* Assists in cashshuffle development
* Runs various nodes for DevOps. (append .imaginary.cash after)
* rest (providing full services with an almost completely independent backend)
* bch bitcoin-abc, electrumx, p2pool
* electrum BU, electrumx, cash-account
* insight bitcore-insight, bitcore-insight-testnet, bitcore-wallet-service
* cashacct cashaccount
* slpserve SLPserve endpoint for SLPDB
* bchd bchd
* p2pool BU, p2pool
* testnet bitcoin-abc-testnet, testnet explorer
* sync EC labelsync, cosigner pool
Futurework
* Double-spend proof (on hiatus until BIP62 is in).
Would like help with:
* Looking to recruit developers who are interested in doing toy implementations.
# Jonald Fyookball
## Electron Cash Development
Working on
* CashFusion v2.0 sspecification
https://github.com/cashshuffle/spec/blob/master/CASHFUSION.md
# AlwaysAn0n
## CashShuffle.js
Working on
* Maintaining and improving library
Would like help with:
* Review the behaviour of the ShuffleRound class using tests https://github.com/alwaysAn0n/cashshufflejs-web/pull/7
# Chris Troutner
Working on
* bchjs.cash
* bch-cli-wallet
https://github.com/christroutner/bch-cli-wallet
Would like help with:
* Adding SLP token support to bch-cli-wallet
* Add support for SideShift.ai
* troutsblog.com/about to explore the way IPFS and BCH can be used together.
# James Cramer
## Simple Ledger (SLPDB - Electron Cash SLP)
Recently Completed:
* SLPdb updates for graph search
* Spdates to WooCommerce SLP payments plug-in
Current Work
* Improving validation speeds for light wallets using SLPDB graph search, initial implement into Electron Cash SLP
* Release Electron Cash SLP version 3.4.15
Future Work
* Coordinate security audit for SLP code/protocol
* Improvements for WooCommerce SLP payments plug-in
Wants Help With:
* Token document standards for NFTs and fungible tokens
# Jason Dreyzehner
## Bitauth-ide
Current Work
* Finish BCH virtual machine implementation and get it passing the script_tests.json file from Bitcoin ABC.
Future Work
* Build bitcoin-ts into a fairly complete library of BCH utilities for creating/debugging transactions. (A lot like bitcore-lib-cash, but a more FP approach rather than the object-oriented style, and without dependencies)
https://github.com/bitauth/bitcoin-ts
# Karol Trzeszczkowski
## Inter-wallet Transfer Plugin
Current Work
* Gathering UI feedback
Future Work:
* Custom icon
Would like help with:
https://github.com/KarolTrzeszczkowski/Inter-Wallet-Transfer-EC-plugin/issues/6
## Mecenas Recurring Payment Plugin
Recently Completed
* Initial release
Current Work
* More precise time estimation
Future Work
* Increase performance when loading contracts
# Shammah Chancellor
## Cashweb Keyserver
Current Work:
* Cashid tutorial
* Keyserver spec finalization
Future Work:
* Relay network support for keyserver nodes
* Proof of Concept integration with Electron Cash
Would like help with:
* Corresponding on wallet integrations, and other possible uses.
* Code reviews, and pull requests for:
* Node peering
* Banning and rate limiting
* Real payment support (right not the server does not specify a payment as part of the BIP70 invoice)
## BCHan
Current Work
* Started BCHan a tutorial project, and proof of concept, for an *off-chain* service using micropayments to pay for accounts and other service usage. The tutorial service is a simple image board.
* Found a frontend developer and a designer
Future Work:
* Implement backend API
Would like help with:
* Implementing a CashID Library for Golang
* Any other interesting backend or frontend development.
# Tendo Pein
## Spedn
Current Work
* Optimization
Future Work
* Schnorr multisig support
* Optimization techniques so the compiler could produce shorter scripts
* Improved support for covenants
* Macros.
Would like help with:
* Feedback and proposals about Spedn syntax.
# Software List
## Node Software
### BCHD
Website: https://bchd.cash/
Repo: http://github.com/gcash
https://github.com/gcash/android-neutrino
https://github.com/gcash/bchwallet
Language: Golang
License: copyfree.org ISC license
Overview:
* Work to provide an excellent API experience to BCH developers
* Combine full node, indexer, SLPDB, electrumX into one software app — BCHD
* BCHD provides an address index for app developers + JSON-RPC and gRPC interfaces
* BIP 157/158 to power Neutrino based wallets
* Built a Neutrino android wallet beta and a command line wallet backend
Primary roadmap items
* Working with ElectrumX Protocol
* Enhancing gRPC interface to support SLPDB
* Finish and release neutrino android
* CashAccount integration
* Reusable Addresses
### Bitcoin ABC
Website: https://www.bitcoinabc.org/
Repo: https://reviews.bitcoinabc.org/
Mirror: https://github.com/Bitcoin-ABC/bitcoin-abc
Workspace: https://t.me/joinchat/HCYr50mxRWjA2uLqii-psw
Language: C++
License: MIT
Overview:
Implementing a series of optimizations and protocol upgrades enabling p2p cash at scale
Refactor various parts of the codebase and maintain infrastructure for the ecosystem
Primary roadmap items
* Build out QUIC infrastructure
* Implement Schnorr multisig
### Bitcoin Unlimited
Website: https://www.bitcoinunlimited.info/ (https://www.bitcoinunlimited.info/)
Repo: https://github.com/BitcoinUnlimited
Workspace: https://bitcoinunlimited.slack.com (https://bitcoinunlimited.slack.com/)
Language: C++
License: MIT
Overview:
The Bitcoin Unlimited organization maintains an open source full-node client for the Bitcoin Cash network in order to provide more choice to node operators and to add robustness to the network.
The organization supports continued growth and adoption of Bitcoin as a peer-to-peer electronic cash system as described in Satoshi Nakamoto's white paper.
### Flowee
Website: https://flowee.org/
Repo:https://gitlab.com/FloweeTheHub/thehub
https://gitlab.com/FloweeTheHub/devs/bitcore-proxy
Workspace: https://discordapp.com/invite/WXPcf6G
Language: C++
License: GNU GPLv3
Maintainer: Tom Zander
Overview
Flowee is a suite of servers that provide infrastructure that connects to a node hub
Basic infrastructure has been created for the hub and indexer
The current direction is to extend that but create something directly usable by app-developers.
Primary roadmap items
* Develop a Bitcore-proxy insight server that reuses existing Flowee Infrastructure
* Refractor bitcore into library functions
* Create bindings from current C++ code to for a transaction building library
* Design a double spend proof concept
## Wallet Software
### Crescent Cash
Website: https://crescent.cash/
Repo: https://gitlab.com/pokkst/crescentcash
Language: Java
License: MIT
Overview:
* Non-custodial wallet
* CashAccounts
* Features:
* SLP tokens,
* BIP70
* Cointext SMS
Primary roadmap items:
* Refining the UI
* Optimize and clean up the codebase
* Social features
### Cashual Wallet
Website: https://play.google.com/store/apps/details?id=org.monsterbitar.wallet
Repo: https://gitlab.com/monsterbitar/cashual-wallet
Maintainer: Jonathan Silverblood
Languages:
* Javascript
* CSS
* HTML
* Cordova
License: MIT
Overview:
* User friendliness
* CashAccounts and UX
* Non-custodial Wallet
Primary roadmap items
* Integrating BIP70/JPP payment support
* OP_RETURN metadata (CashIntents)
* Cloud backup
* UI for the backup/restore process
* Reusable Addresses
### Electron Cash
Website: https://electroncash.org/
Repo: https://github.com/Electron-Cash/
Workspace: https://t.me/electroncashwallet
Language: Python
License: MIT
Overview
Improve privacy, features, and performance
Features:
* Cash Shuffle
* SLP Edition
* BIP70
* cold storage
* Schnorr signatures
* HD wallet integration
* Plug-in support is available.
* There are also versions supported by iOS and Android.
Priorities
* CashAccount integration and registration into the client
* Improved UI polish
* Merging the SLP edition into the main client
* Reusable address specification
* CashFusion protocol
## Misc Software Projects
### Bitauth-ide
Repo: https://github.com/bitauth/bitauth-ide
Language: JavaScript
Maintainer: Jason Dreyzehner
Overview: Bithauth-ide is an integrated development environment for bitcoin authentication.
### Cashshuffle.js Library
Repo: https://github.com/alwaysAn0n/cashshufflejs-web
Language: Javascript
Maintainer: AlwaysAn0n
Overview:
A javascript Cashshuffle client for use in front-end web applications and the browser.
### Cashweb Keyserver
Repo: https://github.com/cashweb/keyserver
Language: Golang
License: MIT
Maintainer: Shammah Chancellor
Overview:
Provide a simple-to-use and cryptographically verifiable way to look up pubkeys, and other metadata, from their hashes. Enabling wallets to query a distributed network of metadata nodes to find out various information for contacting or paying the owners in a secure and private manner. Enabling off-chain correspondence for Stealth Transactions. Additionally, wallets managing a key can advertise special capabilities they support.
Primary roadmap items:
* Get experimental support into a branch of Electron Cash
* Peer 2 Peer relay network for keyserver nodes
* Banning and Rate limiting
* Validating BIP70 transaction data
* Specification for key revocation
### Consolidating Coinjoin
Repo: https://gist.github.com/christroutner/8d54597da652fe2affa5a7230664bc45
License: MIT
Maintainer: Chris Troutner
Overview: A trusted, central wallet, combining its UTXOs is equivalent to a CoinJoin. Consists of a command-line wallet, a mirror which is a type of node that wallets connect to download from p2p servers, and the servers that can transfer data between clearnet and dark web.
https://gist.github.com/christroutner/457b99b8033fdea5ae565687e6360323
Primary roadmap items:
* Build cloud infrastructure
* Integrate IPFS blob or .onion hidden service
### Inter-wallet Transfer Plugin
Repo: https://github.com/KarolTrzeszczkowski/Inter-Wallet-Transfer-EC-plugin
Language: Python
Maintainer: Karol Trzeszczkowski
Overview: A plugin, that sends your coins to another wallet one by one, to a fresh address every time.
Primary roadmap items:
* Optimization
* Fixing issues as they appear
### Mecenas Recurring Payment Plugin
Repo: https://github.com/KarolTrzeszczkowski/Mecenas-recurring-payment-EC-plugin
Language: Python
Maintainer: Karol Trzeszczkowski
Overview: A recurring payment plugin for Electron Cash designed as a solution for noncustodial patronate.
Primary roadmap items:
* Increase usability for recurring donations
* Command line version to serve as backend.
### P2PVPS
Website: https://p2pvps.org/
Repo:https://github.com/P2PVPS/p2pvps-client
Language: JavaScript
License: MIT
Maintainer: Chris Troutner
Status: Offline
Overview: P2P VPS aspires to create a peer-to-peer (P2P) marketplace offering Virtual Private Servers (VPS), the P2P VPS marketplace will never have the speed or reliability of the commercial outfits linked above. Instead, the focus of P2P VPS is to create a decentralized network of anonymous web servers, capable of delivering websites or web apps, in order to prevent censorship and promote free speech.
Primary roadmap items:
* Automated payments
* Refunds
* ERC20 native token
### Simple Ledger (SLPDB - Electron Cash SLP)
Website: https://simpleledger.cash/project/slpdb/
Repo: https://github.com/simpleledger/SLPDB
Workspace: https://t.me/slpdb & https://t.me/simpleledger
Language: TypeScript
License: MIT
Overview: SLPDB has all SLP token data stored in one database.
Primary roadmap items:
* Add additional token graph properties to enhance graph search for light clients
* Add collection for storing token document metadata
### Spedn
Website/Documentation: https://spedn.readthedocs.io/en/latest/
Repo: https://bitbucket.org/o-studio/spedn/src/master/
Workspace: https://t.me/bch_compilers
Maintainer: Tendo Pein
Overview: Spedn is a high level smart contracts language for Bitcoin Cash. It is designed for explicitness and safety.
Primary roadmap items:
* Create a VS Code plugin for working with Spedn -syntax highlighting first, then debugging.
* Lower barrier to entry for developers interested in smart contracts, but in a safe manner to prevent something like a DAO hack.
### Tipbitcoin.cash
Website: https://tipbitcoin.cash
Repo: https://github.com/pokkst/tipbitcoin.cash
Language: Python
License: MIT
Overview:
Users can make an account and accept tips by adding an extended public key. Tipbitcoin.cash works on Twitch, Dlive, and other alternative platforms for streamers also.
Primary roadmap items:
* Add more SLP tokens
* Add more stream customization features
* Design an upload system for the site so users can upload their images/gifs, sounds, etc. directly to the site and to use for their streams rather than having to use a link from a third party.