mirror of
https://github.com/LBRYFoundation/lbcwallet.git
synced 2025-08-23 17:47:29 +00:00
Modify README.md to reflect recent changes.
This commit is contained in:
parent
aad61db6d0
commit
5ac395714a
1 changed files with 76 additions and 50 deletions
126
README.md
126
README.md
|
@ -5,15 +5,73 @@ btcwallet is a daemon handling bitcoin wallet functions. It relies on
|
||||||
a running btcd instance for asynchronous blockchain queries and
|
a running btcd instance for asynchronous blockchain queries and
|
||||||
notifications over websockets.
|
notifications over websockets.
|
||||||
|
|
||||||
In addition to the HTTP server run by btcd to provide RPC and
|
Full btcd installation instructions can be found
|
||||||
websocket connections, btcwallet requires an HTTP server of its own to
|
[here](https://github.com/conformal/btcd).
|
||||||
provide websocket connections to wallet frontends. Websockets allow for
|
|
||||||
asynchronous queries, replies, and notifications.
|
btcwallet runs as a daemon and provides no user interface for a
|
||||||
|
wallet. A btcwallet frontend, such as
|
||||||
|
[btcgui](https://github.com/conformal/btcgui), is required to use
|
||||||
|
btcwallet.
|
||||||
|
|
||||||
|
In addition to the HTTP server run by btcd to provide HTTP and
|
||||||
|
websocket RPC, btcwallet requires an HTTP server of its own to provide
|
||||||
|
websocket connections to wallet frontends. Websockets allow for
|
||||||
|
asynchronous queries, replies, and notifications between btcd and
|
||||||
|
btcwallet, as well as between btcwallet and any number of frontends.
|
||||||
|
|
||||||
This project is currently under active development is not production
|
This project is currently under active development is not production
|
||||||
ready yet.
|
ready yet. Because of this, support for using the main Bitcoin is
|
||||||
|
currently disabled, and testnet must be used instead.
|
||||||
|
|
||||||
## Usage
|
## Installation
|
||||||
|
|
||||||
|
### Windows - MSI Available
|
||||||
|
|
||||||
|
Install the btcd suite MSI here:
|
||||||
|
|
||||||
|
https://github.com/conformal/btcd/releases
|
||||||
|
|
||||||
|
### Linux/BSD/POSIX - Build from Source
|
||||||
|
|
||||||
|
- Install Go according to the installation instructions here:
|
||||||
|
http://golang.org/doc/install
|
||||||
|
|
||||||
|
- Run the following commands to obtain btcwallet, all dependencies, and install it:
|
||||||
|
```$ go get -u -v github.com/conformal/btcd/...```
|
||||||
|
```$ go get -u -v github.com/conformal/btcwallet/...```
|
||||||
|
|
||||||
|
- btcd and btcwallet will now be installed in either ```$GOROOT/bin``` or
|
||||||
|
```$GOPATH/bin``` depending on your configuration. If you did not already
|
||||||
|
add to your system path during the installation, we recommend you do so now.
|
||||||
|
|
||||||
|
## Updating
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
Install a newer btcd suite MSI here:
|
||||||
|
|
||||||
|
https://github.com/conformal/btcd/releases
|
||||||
|
|
||||||
|
### Linux/BSD/POSIX - Build from Source
|
||||||
|
|
||||||
|
- Run the following commands to update btcwallet, all dependencies, and install it:
|
||||||
|
```$ go get -u -v github.com/conformal/btcd/...```
|
||||||
|
```$ go get -u -v github.com/conformal/btcwallet/...```
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
### Windows (Installed from MSI)
|
||||||
|
|
||||||
|
Open Btcd (Testnet) and Btcwallet from the Btcd Suite menu in the
|
||||||
|
Start Menu.
|
||||||
|
|
||||||
|
### Linux/BSD/POSIX/Source
|
||||||
|
|
||||||
|
- Run the following commands to start btcd and btcwallet:
|
||||||
|
```$ btcd --testnet -u rpcuser -P rpcpass```
|
||||||
|
```$ btcwallet -u rpcuser -P rpcpass```
|
||||||
|
|
||||||
|
## Frontend Usage
|
||||||
|
|
||||||
Frontends wishing to use btcwallet must connect to the websocket
|
Frontends wishing to use btcwallet must connect to the websocket
|
||||||
`/wallet`. Messages sent to btcwallet over this websocket are
|
`/wallet`. Messages sent to btcwallet over this websocket are
|
||||||
|
@ -21,37 +79,20 @@ expected to follow the standard [Bitcoin JSON
|
||||||
API](https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list)
|
API](https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list)
|
||||||
and replies follow the same API. The btcd package `btcjson` provides
|
and replies follow the same API. The btcd package `btcjson` provides
|
||||||
types and functions for creating messages that this API. However, due
|
types and functions for creating messages that this API. However, due
|
||||||
to taking a synchronous protocol like RPC and using it asynchronously,
|
to taking a synchronous protocol like HTTP and using it asynchronously
|
||||||
it is recommend for frontends to use the JSON `id` field as a sequence
|
with websockets, it is recommend for frontends to use the JSON `id`
|
||||||
number so replies can be mapped back to the messages they originated
|
field as a sequence number so replies can be mapped back to the
|
||||||
from.
|
messages they originated from.
|
||||||
|
|
||||||
## Installation
|
## TODO
|
||||||
|
|
||||||
btcwallet can be installed with the go get command:
|
- Require authentication before wallet functionality can be accessed
|
||||||
|
- Serve websocket connections over TLS
|
||||||
```bash
|
- Rescan the blockchain for missed transactions
|
||||||
go get github.com/conformal/btcwallet
|
- Documentation (specifically the websocket API additions)
|
||||||
```
|
- Code cleanup
|
||||||
|
- Optimize
|
||||||
## Running
|
- Much much more. Stay tuned.
|
||||||
|
|
||||||
To run btcwallet, you must have btcd installed and running. By
|
|
||||||
default btcd will run its HTTP server for RPC and websocket
|
|
||||||
connections on port 8332. However, bitcoind frontends expecting
|
|
||||||
wallet functionality may require to poll on port 8332, requiring the
|
|
||||||
btcd component in a btcwallet+btcd replacement stack to run on an
|
|
||||||
alternate port. For this reason, btcwallet by default connects to
|
|
||||||
btcd on port 8334 and runs its own HTTP server on 8332. When using
|
|
||||||
both btcd and btcwallet, it is recommend to run btcd on the
|
|
||||||
non-standard port 8334 using the `-r` command line flag.
|
|
||||||
|
|
||||||
Assumming btcd is running on port 8334, btcwallet can be
|
|
||||||
started by running:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
btcwallet -f /path/to/wallet
|
|
||||||
```
|
|
||||||
|
|
||||||
## GPG Verification Key
|
## GPG Verification Key
|
||||||
|
|
||||||
|
@ -73,21 +114,6 @@ signature perform the following:
|
||||||
git tag -v TAG_NAME
|
git tag -v TAG_NAME
|
||||||
```
|
```
|
||||||
|
|
||||||
## What works
|
|
||||||
- New addresses can be queried if they are in the wallet file address pool
|
|
||||||
- Unknown commands are sent to btcd
|
|
||||||
- Unhandled btcd notifications (i.e. new blockchain height) are sent to each
|
|
||||||
connected frontend
|
|
||||||
- btcd replies are routed back to the correct frontend who initiated the request
|
|
||||||
|
|
||||||
## TODO
|
|
||||||
- Require authentication before wallet functionality can be accessed
|
|
||||||
- Serve websocket connections over TLS
|
|
||||||
- Documentation
|
|
||||||
- Code cleanup
|
|
||||||
- Optimize
|
|
||||||
- Much much more. Stay tuned.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
btcwallet is licensed under the liberal ISC License.
|
btcwallet is licensed under the liberal ISC License.
|
||||||
|
|
Loading…
Add table
Reference in a new issue