Open source Rust implementation of the Witnet decentralized oracle protocol, including full node and wallet backend 👁️🦀
witnet-rust is an open source implementation of the Witnet Decentralized Oracle Network protocol written in Rust.
Components
witnet-rust implements many different components intended to work in the Witnet ecosystem:- [node]: a fully validating and archival Witnet blockchain node.
- [wallet]: a separate server for managing Witnet keys and abstracting the complexity of creating transactions.
- [crypto]: library implementing all the crypto-related operations used by Witnet, including signatures, hash functions and verifiable random functions.
- [rad]: an interpreter for [RADON] scripts included in Witnet data requests.
- [storage]: the convenient local storage solution used by
nodeandwallet. - [p2p]: modules for managing peer sessions and connections.
- [data_structures]: data structures common to all other components.
- [validations]: functions that validate Witnet protocol data structures.
- [schemas]: Protocol Buffer schemas for the Witnet protocol.
- [protobuf-convert]: macros for convenient serialization of Rust data structures into/from Protocol Buffers.
- [async-jsonrpc-client]: event-driven JSON-RPC client with support for multiple transports
Current status
DISCLAIMER: This is experimental software running on experimental network protocols. Be careful!
- All the main components are in place—but they need yet to be battle tested before mainnet.
Testnet-1is live. [Here's the roadmap][roadmap] and this is [how to run a node].- The Witnet community is doing its best to make
witnet-rustrock solid as soon as possible. - Contributions are more than welcome.
Running / installing
Detailed installation instructions can be found in the [installation guide][install].
Contributing
- To get involved, read our [contributing guide][contributing].
- You can find us on [Discord].
Project documentation
Witnet project's official documentation is available at [docs.witnet.io][docs].
License
Witnet-rust is published under the [GNU General Public License v3.0][license].
[node]: https://github.com/witnet/witnet-rust/tree/master/node [wallet]: https://github.com/witnet/witnet-rust/tree/master/wallet [crypto]: https://github.com/witnet/witnet-rust/tree/master/crypto [rad]: https://github.com/witnet/witnet-rust/tree/master/rad [storage]: https://github.com/witnet/witnet-rust/tree/master/storage [p2p]: https://github.com/witnet/witnet-rust/tree/master/p2p [datastructures]: https://github.com/witnet/witnet-rust/tree/master/datastructures [validations]: https://github.com/witnet/witnet-rust/tree/master/validations [schemas]: https://github.com/witnet/witnet-rust/blob/master/schemas/witnet/witnet.proto [protobuf-convert]: https://github.com/witnet/protobuf-convert [async-jsonrpc-client]: https://github.com/witnet/async-jsonrpc-client [roadmap]: https://medium.com/witnet/an-updated-witnet-roadmap-to-mainnet-cb8543c534a4 [how to run a node]: https://medium.com/witnet/how-to-run-a-full-node-on-the-witnet-testnet-911986b8add3 [docs]: https://docs.witnet.io [install]: https://docs.witnet.io/try/run-a-node/ [Contributing]: https://github.com/witnet/witnet-rust/blob/master/CONTRIBUTING.md [RADON]: https://docs.witnet.io/protocol/data-requests/overview/#the-rad-engine [Discord]: https://discord.gg/7Kz2mhHnZf [license]: https://github.com/witnet/witnet-rust/blob/master/LICENSE
