Some README updates

This commit is contained in:
Andrew Poelstra 2017-05-08 16:01:20 +00:00
parent c4cc2a6949
commit 9a0aeb8646
No known key found for this signature in database
GPG Key ID: 4FACF08041655A68
1 changed files with 9 additions and 14 deletions

View File

@ -12,18 +12,22 @@ Supports (or should support)
* De/serialization of Bitcoin protocol network messages * De/serialization of Bitcoin protocol network messages
* De/serialization of blocks and transactions * De/serialization of blocks and transactions
* Script de/serialization and execution * Script de/serialization
* Blockchain validation and utxoset building * Blockchain validation
* Private keys and address creation, de/serialization and validation (including full BIP32 support) * Private keys and address creation, de/serialization and validation (including full BIP32 support)
* Pay-to-contract support as in Appendix A of the [Blockstream sidechains whitepaper](https://www.blockstream.com/sidechains.pdf) * Pay-to-contract support as in Appendix A of the [Blockstream sidechains whitepaper](https://www.blockstream.com/sidechains.pdf)
For JSONRPC interaction with Bitcoin Core, it is recommended to use [rust-jsonrpc](https://github.com/apoelstra/rust-jsonrpc)
which uses the underlying [strason library](https://github.com/apoelstra/strason)
which parses decimal numbers as strings, preventing precision errors.
# Usage # Usage
To use rust-bitcoin, just add the following to your Cargo.toml. To use rust-bitcoin, just add the following to your Cargo.toml.
```toml ```toml
[dependencies] [dependencies]
bitcoin = "0.3" bitcoin = "0.9"
``` ```
# Known limitations # Known limitations
@ -31,7 +35,8 @@ bitcoin = "0.3"
## Consensus ## Consensus
This library **must not** be used for consensus code (i.e. fully validating This library **must not** be used for consensus code (i.e. fully validating
blockchain data). It technically supports doing this, but doing so is very blockchain data). It technically supports doing this, using the feature-gated
script parser, but doing so is very
ill-advised because there are many deviations, known and unknown, between ill-advised because there are many deviations, known and unknown, between
this library and the Bitcoin Core reference implementation. In a consensus this library and the Bitcoin Core reference implementation. In a consensus
based cryptocurrency such as Bitcoin it is critical that all parties are based cryptocurrency such as Bitcoin it is critical that all parties are
@ -42,16 +47,6 @@ Given the complexity of both C++ and Rust, it is unlikely that this will
ever be fixed, and there are no plans to do so. Of course, patches to ever be fixed, and there are no plans to do so. Of course, patches to
fix specific consensus incompatibilities are welcome. fix specific consensus incompatibilities are welcome.
## Memory Usage
Currently this library's UTXO-set support is limited to an in-RAM hash tree.
It can be serialized and deserialized to disk to avoid recomputing it all
the time, but needs to be in memory to be used, which currently requires
several gigabytes of RAM.
Patches are welcome. This is a priority but not a high one, due to lack of
developer time.
## Documentation ## Documentation
Currently the [documentation](https://www.wpsoftware.net/rustdoc/bitcoin/) Currently the [documentation](https://www.wpsoftware.net/rustdoc/bitcoin/)