BCH Open-source Pulse : Vol #6
# Weekly Summary
This is the Sixth week of the BCH Pulse weekly developer newsletter. Existing projects have been updated.
# Chris Pacia
## BCHD
Current work
* Backports for bchwallet & neutrino
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
* SLPDB support using gRPC interface. JSON RPC SYNC TIME: 4225706.303ms. GRPC SYNC TIME: 2021215.356ms. 70.4min v 33.69min
Current work
* Backports for bchwallet & neutrino
* 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
* Reviewing outstanding PRs
* Reusable Addresses
Wants help with:
* Implementing CashFusion and contributing to the CashFusion specification
* Reviewing the following Pull Requests:
* https://github.com/gcash/android-neutrino/pull/31
* CashShuffle library for Golang
# Jason Cox
## Bitcoin ABC
Current work
* Continuing work from previous week
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
* Bitcore proxy
https://gitlab.com/FloweeTheHub/devs/bitcore-proxy
* Continuing work from previous week
Future work
* 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
* Research on how to be able to quick-start a complex (multiple server) setup
# Joshua Green
## Bitcoin Verde
Recently Completed
* Updated bitcoin verde explorer to show the validity of SLP transactions
Wants help with:
* Providing a bloom-filter-like tx-index
* Connection-pool quirk
* Windows build
Issues
https://github.com/SoftwareVerde/bitcoin-verde/pull/2
# Jonathan Silverblood
## Cashual Wallet
Recently Completed
* An improved coinmap
Working on
* Smart contract research
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
Working on
* Frontend redesign of Tipbitcoin.cash
* Rewrite Tipbitcoin.cash from Python to PHP
* Polish, add security measures (like SQL injections and XSS protections)
* Transition current tipbitcoin.cash database to the new site.
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
Working on
* Continuing work from last week
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 bip38 encryption of private keys
Current work
* SLP backend integration into EC
https://github.com/Electron-Cash/Electron-Cash/pull/1591
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
* Continuing work from last week
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) -> rest.imaginary.cash replicates rest.bitcoincom
* 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 now actively developed by Tom Zander
Would like help with:
* Reusable address backend now under development by bchd team, interested people are highly encouraged to join
# Jonald Fyookball
## Electron Cash Development
Working on
* Continuing work from last week
# AlwaysAn0n
## CashShuffle.js
Working on
* Continuing work from last week
Would like help with:
* Review the behaviour of the ShuffleRound class using tests https://github.com/alwaysAn0n/cashshufflejs-web/pull/7
# Chris Troutner
Recently Completed
* Telegram group for developers-for-hire and non-technical business people to co-mingle. https://t.me/slp_devs_for_hire
* http://bchjs.cash is launched
* Slp-sdk convenience functions for SLP UTXO
https://github.com/Bitcoin-com/slp-sdk/pull/56
Working on
* SLP integration into bch-cli-wallet is nearly complete. including new slp-sdk endpoints.
* Adding Cashshuffle into 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
* Add support for Cashshuffle
* troutsblog.com/about to explore the way IPFS and BCH can be used together.
# James Cramer
## Simple Ledger (SLPDB - Electron Cash SLP)
Recently Completed
* Finished slpdb grpc updates
https://github.com/simpleledger/SLPDB/pull/39
* Released EC SLP 3.5
* Made updates to woocommerce plugin for multi-token support
* Created first PR for merging SLP into mainline EC for Calin Culianu review
https://github.com/Electron-Cash/Electron-Cash/pull/1591
Current Work
* Slpdb updates,
* EC SLP updates and UI for token spam prevention
Future Work
* Coordinate security audit for SLP code/protocol
Wants Help With:
* Token document standards for NFTs and fungible tokens
# Jason Dreyzehner
## Bitauth-ide
Recently Completed:
* Released BCH virtual machine in TypeScript: passes Bitcoin ABC test vectors and includes step-by-step debugging: https://medium.com/@bitjson/evaluate-and-debug-bitcoin-cash-scripts-in-javascript-3e182136000d
* Added examples of P2PKH, 2-of-3 multi-sig, and time-delayed recovery to BitAuth IDE: https://medium.com/@bitjson/new-examples-added-to-bitcoin-script-debugger-a38441df2c12
Current Work:
* Continuing work from last week
Future Work:
* Add more example authentication templates to bitauth-ide: https://ide.bitauth.com
# Karol Trzeszczkowski
## Inter-wallet Transfer Plugin
Current Work
* Continuing work from last week
Future Work:
* Custom icon
## Mecenas Recurring Payment Plugin
Current Work
* A new version of Mecenas with BitBox
Future Work
* Increase performance when loading contracts
# Shammah Chancellor
## Cashweb Keyserver
Current Work:
* Continuing work from last week
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
* Continuing work from last week
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
* Schnorr support in OP_CHECKMULTISIG, in particular - designing type system changes around bitfield that has to be used there.
Future Work
* 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
### Bitcoin Verde
Website: https://bitcoinverde.org/
Repo: https://github.com/SoftwareVerde/bitcoin-verde
Language: Java
License: MIT
Maintainer: Joshua Green
Overview
Bitcoin-Verde is a ground-up implementation of the Bitcoin (Cash) (BCH) protocol. This project is an indexing full node, blockchain explorer, and library. They are continuing to improve database indexing from both an informational, disk-space, and performance perspective. They are also focused on increasing stability, which includes improving handling misbehaving nodes.
Primary roadmap items
* SLP transactions indexes
* Preparing the SLP/SPV libraries for release
## 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.
### Bitcoin Mining Parliament
Website: https://virtualpol.com/BMP_EN.pdf
Repo: https://github.com/JavierGonzalez/BMP
Language: PHP
Maintainer: Javier Gonzalez
Overview: Hashpower voting software. Allows Authentication with hardware-wallet, real time chat, vote creation and rectifiable votes.
Primary Roadmap Items
* Connect BMP to multiple blockchains
### 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
Workspace: https://t.me/bch_js_toolkit
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.