mirror of
https://github.com/LBRYFoundation/lbcwallet.git
synced 2025-09-01 17:55:15 +00:00
Update README with recent changes and additional details.
This commit is contained in:
parent
ecc959677c
commit
76f3657ad3
1 changed files with 49 additions and 41 deletions
90
README.md
90
README.md
|
@ -4,27 +4,32 @@ btcwallet
|
||||||
[]
|
[]
|
||||||
(https://travis-ci.org/conformal/btcwallet)
|
(https://travis-ci.org/conformal/btcwallet)
|
||||||
|
|
||||||
btcwallet is a daemon handling bitcoin wallet functions. It relies on
|
btcwallet is a daemon handling bitcoin wallet functionality for a
|
||||||
a running btcd instance for asynchronous blockchain queries and
|
single user. It acts as both an RPC client to btcd and an RPC server
|
||||||
notifications over websockets.
|
for wallet frontends and legacy RPC applications.
|
||||||
|
|
||||||
Full btcd installation instructions can be found
|
The wallet file format is based on
|
||||||
[here](https://github.com/conformal/btcd).
|
[Armory](https://github.com/etotheipi/BitcoinArmory) and provides a
|
||||||
|
deterministic wallet where all future generated private keys can be
|
||||||
|
recovered from a previous wallet backup. Unencrypted wallets are
|
||||||
|
unsupported and are never written to disk. This design decision has
|
||||||
|
the consequence of generating new wallets on the fly impossible: a
|
||||||
|
frontend is required to provide a wallet encryption passphrase.
|
||||||
|
|
||||||
btcwallet runs as a daemon and provides no user interface for a
|
btcwallet is not an SPV client and requires connecting to a local or
|
||||||
wallet. A btcwallet frontend, such as
|
remote btcd instance for asynchronous blockchain queries and
|
||||||
[btcgui](https://github.com/conformal/btcgui), is required to use
|
notifications over websockets. Full btcd installation instructions
|
||||||
btcwallet.
|
can be found [here](https://github.com/conformal/btcd).
|
||||||
|
|
||||||
In addition to the HTTP server run by btcd to provide HTTP and
|
As a daemon, btcwallet provides no user interface and an additional
|
||||||
websocket RPC, btcwallet requires an HTTP server of its own to provide
|
graphical or command line client is required for normal, personal
|
||||||
websocket connections to wallet frontends. Websockets allow for
|
wallet usage. Conformal has written
|
||||||
asynchronous queries, replies, and notifications between btcd and
|
[btcgui](https://github.com/conformal/btcgui) as a graphical frontend
|
||||||
btcwallet, as well as between btcwallet and any number of frontends.
|
to btcwallet.
|
||||||
|
|
||||||
This project is currently under active development is not production
|
This project is currently under active development is not production
|
||||||
ready yet. Because of this, support for using the main Bitcoin netowrk
|
ready yet. Support for creating and using wallets the main Bitcoin
|
||||||
is currently disabled, and testnet must be used instead.
|
netowrk is currently disabled by default.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
@ -39,7 +44,7 @@ https://opensource.conformal.com/packages/windows/btcdsuite/
|
||||||
- Install Go according to the installation instructions here:
|
- Install Go according to the installation instructions here:
|
||||||
http://golang.org/doc/install
|
http://golang.org/doc/install
|
||||||
|
|
||||||
- Run the following commands to obtain btcwallet, all dependencies, and install it:
|
- Run the following commands to obtain and install btcwallet andall dependencies:
|
||||||
```bash
|
```bash
|
||||||
$ go get -u -v github.com/conformal/btcd/...
|
$ go get -u -v github.com/conformal/btcd/...
|
||||||
$ go get -u -v github.com/conformal/btcwallet/...
|
$ go get -u -v github.com/conformal/btcwallet/...
|
||||||
|
@ -68,6 +73,9 @@ $ go get -u -v github.com/conformal/btcwallet/...
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
|
The follow instructions detail how to get started with btcwallet
|
||||||
|
connecting to a localhost btcd.
|
||||||
|
|
||||||
### Windows (Installed from MSI)
|
### Windows (Installed from MSI)
|
||||||
|
|
||||||
Open ```Btcd Suite``` from the ```Btcd Suite``` menu in the Start
|
Open ```Btcd Suite``` from the ```Btcd Suite``` menu in the Start
|
||||||
|
@ -82,41 +90,41 @@ want btcd and btcwallet running.
|
||||||
$ btcd --testnet -u rpcuser -P rpcpass
|
$ btcd --testnet -u rpcuser -P rpcpass
|
||||||
```
|
```
|
||||||
|
|
||||||
- Copy btcd's autogenerated rpc.cert to ~/.btcwallet/ so btcwallet can
|
|
||||||
securely communicate with btcd over a TLS-encrypted websocket. This
|
|
||||||
step is only necessary for the first time starting btcwallet or if
|
|
||||||
btcd's autogenerated cert and key are removed and regenerated.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ mkdir ~/.btcwallet/
|
|
||||||
$ cp ~/.btcd/rpc.cert ~/.btcwallet/btcd.cert
|
|
||||||
```
|
|
||||||
|
|
||||||
- Run the following command to start btcwallet:
|
- Run the following command to start btcwallet:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ btcwallet -u rpcuser -P rpcpass
|
$ btcwallet -u rpcuser -P rpcpass
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If everything appears to be working, it is recommended at this point to
|
||||||
|
copy the sample btcd and btcwallet configurations and update with your
|
||||||
|
RPC username and password.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ cp $GOPATH/src/github.com/conformal/btcd/sample-btcd.conf ~/.btcd/btcd.conf
|
||||||
|
$ cp $GOPATH/src/github.com/conformal/btcwallet/sample-btcwallet.conf ~/.btcwallet/btcwallet.conf
|
||||||
|
$ $EDITOR ~/.btcd/btcd.conf
|
||||||
|
$ $EDITOR ~/.btcwallet/btcwallet.conf
|
||||||
|
```
|
||||||
|
|
||||||
## Frontend Usage
|
## Frontend Usage
|
||||||
|
|
||||||
Frontends wishing to use btcwallet must connect to the websocket
|
Frontends wishing to use btcwallet must connect to the path
|
||||||
`/frontend`. Messages sent to btcwallet over this websocket are
|
`/frontend` over a websocket connection. Messages sent to btcwallet
|
||||||
expected to follow the standard [Bitcoin JSON
|
over this websocket are expected to follow the standard Bitcoin JSON
|
||||||
API](https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list)
|
API (partially documented
|
||||||
and replies follow the same API. The btcd package `btcjson` provides
|
[here](https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list)).
|
||||||
types and functions for creating messages that this API. However, due
|
Websocket connections also enable additional API extensions and
|
||||||
to taking a synchronous protocol like HTTP and using it asynchronously
|
JSON-RPC notifications (currently undocumented). The btcd packages
|
||||||
with websockets, it is recommend for frontends to use the JSON `id`
|
`btcjson` and `btcws` provide types and functions for creating and
|
||||||
field as a sequence number so replies can be mapped back to the
|
JSON (un)marshaling these requests and notifications.
|
||||||
messages they originated from.
|
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
- Documentation (specifically the websocket API additions)
|
- Full RPC compatibility with bitcoind, including mining support
|
||||||
- Code cleanup
|
- RPC Documentation (both bitcoind commands and btcwallet extensions available
|
||||||
- Optimize
|
for websocket connections)
|
||||||
- Much much more. Stay tuned.
|
- Improved test coverage
|
||||||
|
|
||||||
## GPG Verification Key
|
## GPG Verification Key
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue