First of all, a big shout-out to the Bitcore team for building a great collection of tools in the Bitcoin ecosystem.
Some context for my questions first
I am working on a cryptocurrency project that required forking Bitcoin’s C++ codebase (https://github.com/bitcoin/bitcoin) - and introducing significant changes in it - including but not limited to
a) moving away from elliptic curve cryptography to another cryptographic scheme
b) a new proof of work algorithm
Besides the wallet functionality that will come in the forked full node, I would also like to build a light wallet for the cryptocurrency. In this regard, I am considering forking an existing wallet codebase - and specially considering between CoPay and Electrum.
Now my understanding is (please correct me if I am wrong) that
a) CoPay uses BWS which in turn uses Bitcore-Node
b) Bitcore-Node is a full node implementation of Bitcoin in Node.js
Question 1 : So if I were to use CoPay, would I have to fork and maintain two full node implementations i.e. the Bitcoin C++ code that we are already forking ; and then Bitcore-Node in order to make CoPay work. (Of course, this is besides forking CoPay and BWS to make them work for the new cryptocurrency)?
I understand that both Electrum and CoPay have their respective strengths and weaknesses
For Electrum, my understanding is that
- Electrum wallet talks to an Electrum Server which in turn talks to a Bitcoin node
So atleast on the face of it, it appears that with Electrum, I would have to fork just one full node implementation (C++) and then fork and maintain Electrum Server (ElextrumX) and the wallet.
Question 2 : I am wondering if, in general, CoPay’s strength lies in MultiSig and wallet collaboration, whereas Electrum is the project that’s more fork-friendly for new coins, specially if for the new (BItcoin forked) coin, the full node fork requires massive changes.
Really look forward to responses on this. Happy to explain if something is not clear. Thanks in advance.