Overview • Documentation • Running a Validator • Sova Testnet
A Sova node is an extension of the EVM execution client Reth. This extension of reth enables a new subset of Bitcoin precompiles. The precompiles are used to directly interface with a Bitcoin node during EVM transaction execution.
A Makefile is used as a command runner to execute repository commands.
# view all make commands
make help
# build the sova-reth binary
make build
# run in devnet mode using Bitcoin regtest
make run-sova-regtest
Operators are free to join the testnet and sync their own historical chain data from genesis. For more information on how to join the Testnet as an operator view our Operator Guide in the docs.
For testing sova-reth in a devnet environment, it is recommended to use running-sova. This will orchestrate the deployment of all the auxiliary services need for local development.
The Bitcoin precompiles are found at address 0x999, 0x998, 0x997, 0x996.
Precompile Name | Address | Description |
---|---|---|
Broadcast Transaction | 0x999 |
Broadcasts Bitcoin transactions |
Decode Transaction | 0x998 |
Decodes raw Bitcoin transactions |
Convert Address | 0x997 |
EVM to Bitcoin address conversion |
Vault Spend | 0x996 |
Network vault spending |
For more information on how to use the precompiles see related docs.
The sentinel is a custom add-on component to every sove-reth node. It is used by the Sova EVM to enforce Bitcoin finality. Transactions on Sova that have associated Bitcoin transactions are considered final after 6 Bitcoin block confirmations. If a transaction that was flagged by the chain is not confirmed on Bitcoin, the Sova state associated with the flagged Bitcoins tx will be reverted after 21 blocks.
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in these crates by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.