Commit Graph

490 Commits

Author SHA1 Message Date
ar a8215e8c9c adds `addnode` RPC 2025-06-03 16:00:44 -04:00
Arya d230f31c5a
change(consensus): Adds a `Nu6_1` variant to `NetworkUpgrade` (#9526)
* Adds a `Nu6_1` variant to `NetworkUpgrade`

* updates CONSENSUS_BRANCH_IDS to include NU6.1 and NU7 when compiled with the `zebra-test` feature

* Update zebra-chain/src/parameters/network/testnet.rs

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>

---------

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2025-06-03 16:10:30 +00:00
Alfredo Garcia cbd1bb7fc3
feat(rpc): Update `(z_)validateaddress` to validate TEX addresses (#9483)
* add TEX support to validate address rpc methods

* update call docs

* fix comment

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>

---------

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2025-05-22 15:12:37 +00:00
Alfredo Garcia 5cc4357acb
add raw_value feature to serde_json (#9538) 2025-05-22 14:42:10 +00:00
Jack Grigg a77de50cae
zebra-rpc: Correctly set optional `scriptPubKey` fields of transactions (#9536)
Closes ZcashFoundation/zebra#9535.
2025-05-16 23:07:06 +00:00
idky137 8b9fdd073d
Transaction and block deserialization (#9522)
* added deserialisation to block and transaction structs

* fixed new test

* made TransactionObject::from_transaction pub

* renamed valueZat to valueSat

* removed double serde(with_hex)

* fixed script sig name

* Update zebra-chain/src/sapling/commitment.rs

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>

* qualify cursor

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
Co-authored-by: Hazel OHearn <gygaxis@zingolabs.org>
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2025-05-14 23:19:25 +00:00
Marek 67bfc941fe
fix(rpc): Regroup imports (#9521)
* Regroup imports in `.../tests/common/regtest.rs`

* Regroup imports in `.../methods/tests/prop.rs`

* Regroup imports in `.../get_block_template.rs`

* Regroup imports in `.../zip317.rs`

* Regroup imports in `.../get_blockchain_info.rs`

* Regroup imports in `.../types/get_raw_mempool.rs`

* Regroup imports in `.../types/transaction.rs`

* Regroup imports in `.../server/tests/vectors.rs`

* Regroup imports in `.../args.rs`

* Regroup imports in `.../main.rs`

* Regroup imports in `.../openapi-generator/main.rs`

* Regroup imports in `zebrad/src/commands/start.rs`

* Regroup imports in `.../tests/fake_peer_set.rs`

* Regroup imports in `.../components/miner.rs`

* Regroup imports in `.../tests/acceptance.rs`

* Regroup imports in `.../get_block_template.rs`
2025-05-14 18:36:05 +00:00
Marek 89f825265a
change(rpc): Move GBT RPCs into the main RPC server (#9459)
* Remove the `getblocktemplate-rpcs` Cargo feature

* Merge GBT RPCs with the rest

* Fix `rpc_server_spawn_port_conflict`

* Fix snapshot data

* Remove old files after merge

* Fix snapshot for `get_mining_info`

* Fix refs in docs

* Update snapshot data for `bet_block_count`

* Update snapshot data for `get_minig_info`

* Fix snapshots

* Fix RPC tests

* Unguard internal miner config

* remove getblocktemplate file (#9485)

* Fix imports in `zebra-rpc/src/server.rs`

* Fix imports in `zebra-rpc/src/methods.rs`

* Rename vars in `RpcImpl::new`

* Split imports in `.../methods/tests/snapshot.rs`

* Refactor imports in `.../methods/tests/vectors.rs`

* Update error log messages

* fmt

* Fix snapshots with missing peers

* fmt

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2025-05-09 09:56:54 +00:00
Alfredo Garcia 3a99279690
use `RawValue` instead of `Value` for the `result` field of `JsonRpcResponse` (#9474) 2025-05-07 10:19:15 +00:00
Alfredo Garcia 0ca510b7cb
fix z_get_treestate optional values (#9451) 2025-05-06 22:09:17 +00:00
Marek b0e7fd4a9a
chore: Release v2.3.0 (#9475)
* Update changelog

* Update end of support

* Add release date

* Add breaking change description

* Add new PRs to changelog

* Add breaking change description to changelog

* Update list of PRs in changelog

* chore: Release

* Apply suggestions from code review

Co-authored-by: Arya <aryasolhi@gmail.com>

---------

Co-authored-by: Arya <aryasolhi@gmail.com>
2025-05-06 14:47:47 +00:00
Alfredo Garcia 638b4a212d
feat(rpc): Add `time` and `size` field to `TransactionObject` (#9458)
* add size and time to getrawtransaction object

* fix annoying clippy lint about large enum variant

* add todo

* add TODO, remove TODO

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>

---------

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2025-05-06 08:44:03 +00:00
Arya 188cb77081
fix(ci): check, create and mount lwd cached state for tests (#9481)
Co-authored-by: Gustavo Valverde <g.valverde02@gmail.com>
2025-05-06 07:58:02 +01:00
Paul e6dc3b6fd3
NU7 constants (#9256)
* Introduce Nu7

* Introduce Nu7 fo other crates of Zebra

* Fix of new_regtest call (as it additionally needs Nu7 arg now)

* Fix of new_regtest call (as it additionally needs Nu7 arg now) (2)

* Set Nu7 as a network update for testnet in zebra-chain network tests

* Fix serde names for NU7

* Update test snapshot in zebra-rpc to use NU7

* Copy Nu7-related changes from zsa-integration-state

* Uncomment zcash_unstable = nu7

* Fix Nu7 constants and add cfg(zcash_unstable ...) attribute according to PR #15 review comments

* Update network constant values according to PR #15 review comments

* Add zcash_unstable=nu6 Rust flag to .cargo/config.toml to use nu6 by default

* Add zcash_unstable = nu6 cfg in zebra-network/.../types.rs

* Fix nu7 activation heights in network_upgrade.rs (nu6 value + 1 does not work - causes a test failure)

* Add cfg for CURRENT_NETWORK_PROTOCOL_VERSION constant definition, add FIXMEs for a couple of Nu6 processing cases, add processing of Nu7

* Update get_blockchain_info@testnet_10.snap

* Update get_blockchain_info@mainnet_10.snap

* updated cfg flag

* remove `zcash_unstable` flag

* Remove testnet and mainnet NU7 activation heights, comment out consensus branch id and conversion to zcash primitives nu type

* Yep, it'll work after NU7

* Yep, the test should work fine after NU7

* Yep, it only needs to be a post-nu6 height.

* other fixes and cleanups

* Updates snapshots, removes unnecessary FIXMEs, fixes issues with bad merge conflict resolution

* fixes test hang when there are NUs defined without activation heights

* fixes test, applies suggestion from code review.

* Enable consensus branch ID for Nu7

---------

Co-authored-by: Dmitry Demin <dmitry@qed-it.com>
Co-authored-by: Arya <aryasolhi@gmail.com>
Co-authored-by: Marek <mail@marek.onl>
2025-04-21 13:38:44 +00:00
Tomass fb3c8d80f2
docs: remove consecutive duplicate words (#9446)
* Update get_block_template.rs

* Update vectors.rs

* Update serialize.rs
2025-04-19 16:10:14 +00:00
Kris Nuttycombe 63723e7e84
zebra-state: Return only the history tree root in GetBlockTemplateChainInfo response. (#9444)
The `HistoryTree` type is intended for internal use within the node; it
should not be exposed via the ReadStateService response. Instead, this
response should simply include the hash needed for block template
construction.
2025-04-18 20:57:45 +00:00
Arya 33a44e5f9c
add(mining): Restore internal miner (#9311)
Co-authored-by: Marek <mail@marek.onl>
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2025-04-18 08:29:42 +01:00
Alfredo Garcia 0e05fb3f5c
feat(getaddresstxids): Make start and end fields optional and apply range rules to match zcashd (#9408)
* make start and end fields optional and apply new rules to match zcashd

* update docs to mark range fields as optionals

* Apply suggestions from code review

Co-authored-by: Arya <aryasolhi@gmail.com>

---------

Co-authored-by: Arya <aryasolhi@gmail.com>
2025-04-11 14:33:54 +00:00
Alfredo Garcia c901adf177
feat(rpc): Add some missing fields to transaction object (#9329)
* extend `getrawtransaction` verbose output

* replace strings where possible, fix tests

* fix orchard

* add todos for script assembly code

* fix an import

* fmt

* fmt

* suggestion for #9329: change coinbase field and add valueSat field to match zcashd (#9407)

* change coinbase field and add valueSat field to match zcashd

* remove valueSat; update vectors

---------

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2025-04-10 22:59:43 +00:00
Marek 4e29b097af
Remove the `getblocktemplate-rpcs` Cargo feature (#9401)
* Remove the `getblocktemplate-rpcs` Cargo feature

* Keep the feature in `zebrad/Cargo.toml`
2025-04-10 18:29:48 +00:00
Alfredo Garcia 6febe41f01
rpc(getpeerinfo): Add inbound peers to method response (#9214)
* extend getpeerinfo

* add and use `currently_live_peers()`

* remove `currently_live_peers` and just use filtered `recently_live_peers` instead

* fix codespell

* simplify

Co-authored-by: Arya <aryasolhi@gmail.com>

* remove non needed filter

Co-authored-by: Arya <aryasolhi@gmail.com>

* fix mock

---------

Co-authored-by: Arya <aryasolhi@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2025-04-08 13:14:10 +00:00
Marek 8e04edb24f
feat(rpc): Support negative heights in `HashOrHeight` (#9316)
* Support negative heights in `HashOrHeight`

* Change ownership of cached state

* Revert "Change ownership of cached state"

This reverts commit 1fe9ae393f.

* add solution to other methods, add tests

* cargo clippy fix

* fmt

---------

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2025-04-04 12:13:11 +00:00
Arya 3b2af49dc7
chore(deps): Updates ECC dependencies (#9300)
* Bumps ECC dep versions (using git sources) and updates their usage in Zebra

* removes dependency on bridgetree and imports types from incrementalmerkletree directly instead

* Removes unused patches

* bumps ECC dep versions and replaces Zebra's usage of the now-deprecated API.

* Adds conversion impl from `HashType` for `SighashType`

* fixes lints

* updates deny.toml

* updates edition, adds redjubjub to cargo deny exceptions

* reverts Rust edition bump

* fixes new usage of `add_output()`

---------

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2025-04-03 12:57:15 +00:00
Alfredo Garcia da6c218afb
ensure secondary rocksdb instance has caught up to the primary instance (#9346)
Co-authored-by: Arya <aryasolhi@gmail.com>
2025-03-30 16:53:30 +00:00
Conrado Gouvea 949326258a
feat(rpc): fill size field in getblock with verbosity=2 (#9327)
* feat(rpc): fill size field in getblock with verbosity=2

* replace unwrap with expect
2025-03-28 13:45:06 +00:00
Jack Grigg 26c569e29f
rpc: Permit JSON-RPC IDs to be non-strings (#9341)
Fixes ZcashFoundation/zebra#9314.
2025-03-28 07:41:01 +00:00
Alfredo Garcia 9dfdddeb88
fix(rpc): getblocktemplate coinbase outputs order (#9272)
* change the output order in getblocktemplate zcashd mode

* add a test for coinbase output order

* update snapshots
2025-03-25 19:10:38 +00:00
Hazel OHearn 29ed501f11
allow deserialization of Balance with skipped ID field (#9299) 2025-02-26 12:08:38 +00:00
Marek 80a25c1c4c
Fix Clippy lints for Rust 1.85 (#9289) 2025-02-24 14:34:19 +00:00
Hazel OHearn 1e9f021784
make chain_tip_difficultu pub to reuse in zaino (#9271) 2025-02-18 19:49:45 +00:00
Arya 9591c003ee
Replaces mutex with watch channel (#9262) 2025-02-18 11:03:38 +00:00
Alfredo Garcia 5cf5178d50
feature(rpc): Extend `getinfo` (#9261)
* introduce new fields to `GetInfo`

* add address book to methods for getinfo connections field

* add the version field to getinfo

* track last node error or warning and display it in getinfo rpc method

* add the rest of the fields, minor cleanup

* fix the tests

* clippy
2025-02-18 03:23:55 +00:00
Arya b4211aa1cf
feat(network): Track misbehaving peer connections and ban them past a threshold (#9201)
* feat(network): Add misbehavior tracking for peers in the address book

* - Add a `misbehavior_score` field to `MetaAddr`
- Add a `bans_by_ip` field to `AddressBook`
- Update the `AddressBook::update()` method to:
    - increment misbehavior scores in its entries,
    - add addr ips to bans_by_ip if the score is excessive,
    - remove any addrs at the banned ip
- Avoid responding to `GetAddr` requests with addresses of misbehaving peers (return None from `sanitized()`),
- Avoid new inbound or outbound connections to banned ips

* Drops banned peer connections in peer set's `poll_ready()` method

* Adds rudimentary misbehavior score tracking

* fixes some proptests, moves and removes some TODOs

* fixes lint

* Removes outdated TODO

* Adds stub for acceptance test

* updates call to updated fn

* Stores likely inbound peer connection addresses in address book and return their IPs with the default port instead of the transient port when responding to GetAddr requests

* Avoids gossiping peer addrs from inbound connections

* updates test to check that sanitize won't return inbound peer addrs or addrs with non-zero misbehaviour scores.

updated misbehaviour score for potentially unavoidable errors.

* Updates `generate` RPC to support any network where PoW is disabled.

Updates acceptance test to check that zebrad instances disconnect once one of them advertises a block with an invalid PoW

* minor tangential cleanup

* Finishes acceptance test, sends misbehavior updates from syncer, and always updates address book entries if the update is to their misbehaviour score

* skip test on windows (to minimize risk of port conflict)

* Applies suggestions from code review
2025-02-15 22:02:17 +00:00
Conrado Gouvea 4613dcd259
feat(rpc): add verbose support to getrawmempool (#9249)
* feat(rpc): add verbose support to getrawmempool

* make 'if verbose' clearer

* cargo fmt

* fix unused warnings

* Update zebra-rpc/src/methods/types/get_raw_mempool.rs

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>

---------

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2025-02-15 12:45:33 +00:00
Jack Grigg f8860a67f4
zebra-rpc: Correctly map JSON-RPC to/from 2.0 (#9216)
* zebra-rpc: Correctly map JSON-RPC to/from 2.0

The existing code was only handling the `lightwalletd` client format
which includes a `"jsonrpc": "1.0"` entry, and it was returning
responses as JSON-RPC 2.0 regardless of what the client expected.

* Update zebra-rpc/src/server/http_request_compatibility.rs

---------

Co-authored-by: Arya <aryasolhi@gmail.com>
2025-02-12 23:47:50 +00:00
Arya cf653313dd
feat(rpc): Add fields to `getblockchaininfo` RPC output (#9215)
* Adds some of the required fields on `getblockchaininfo` output.

* Adds state request/response variants for querying disk usage

* Adds `size_on_disk`, `chain_supply`, and `monitored` fields.

* Updates snapshots

* fixes prop tests

* fixes doc lints

* Adds missing `size()` method

* Fixes lwd integration test issue by updating get_blockchain_info to fallback on default values instead of returning an error if the state is empty.

Related: Runs state queries in parallel from getblockchaininfo RPC and removes the BlockHeader query by getting the tip block time from the latest chain tip channel.

* Updates failing proptests

* fixes lint
2025-02-12 23:20:05 +00:00
Arya ece9a8ee59
Adds unused and optional `_allow_high_fees` param on `sendrawtransaction` RPC (#9242) 2025-02-12 21:16:33 +00:00
Metalcape 3a0269d625
feat(rpc); Add `blockcommitments` field to `getblock` output (#9217)
* Add blockcommitments field to getblock output

* Parse commitment_bytes from block header

* Update tests

* Rustfmt

---------

Co-authored-by: Marek <mail@marek.onl>
2025-02-11 16:25:20 +00:00
Alfredo Garcia 343656cb3c
fix(mining): Advertise mined blocks (#9176)
* add a channel for submit_block notifications to gossip task

* fix tests and gossip logic

* remove the network discriminant and add a test

* clippy suggestions

* fix unused variable

* attempt to fix the conditional compilation issues

* fix default

* Suggestions for "fix(mining): Advertise mined blocks" (#9183)

* refactor error conversions in GetBlockTemplateRpcImpl and rewords documentation

* Replaces polling mined block receiver with a select

* Skip checking that Zebra is likely synced to the network tip before returning block templates on Testnet.

* fixes a clippy lint and a concurrency bug

---------

Co-authored-by: Arya <aryasolhi@gmail.com>
2025-02-05 02:24:37 +00:00
Alfredo Garcia 6d01f052c9
chore(release): Zebra release v2.2.0 (#9195)
* add changelog section for 2.2.0

* chore: Release

* update end of support

* Apply suggestions from code review

Co-authored-by: Arya <aryasolhi@gmail.com>

* Update CHANGELOG.md

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>

---------

Co-authored-by: Arya <aryasolhi@gmail.com>
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2025-02-04 16:50:10 +00:00
Marek a5a1cdfebe
chore: Minor cleanups (#9198)
* Remove unnecessary clone

* Fix test in zebra-script

* Document that RPC server addr must be set

* Change the log level of missing port msg to info

Having the RPC port not specified is part of Zebra's normal operation,
and is the default config.

* Fix links in docs for tracing

* Update zebrad/src/commands/start.rs

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>

---------

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2025-02-04 03:29:49 +00:00
Alfredo Garcia d26b0c188f
run `cargo autoinherit` (#9041)
Co-authored-by: zancas <zancas@zingolabs.org>
2025-02-04 03:29:46 +00:00
dependabot[bot] af89544b69
build(deps): bump the prod group across 1 directory with 36 updates (#9179)
* build(deps): bump the prod group across 1 directory with 36 updates

Bumps the prod group with 36 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap) | `4.5.23` | `4.5.27` |
| [indexmap](https://github.com/indexmap-rs/indexmap) | `2.7.0` | `2.7.1` |
| [semver](https://github.com/dtolnay/semver) | `1.0.23` | `1.0.25` |
| [serde](https://github.com/serde-rs/serde) | `1.0.215` | `1.0.217` |
| [tokio](https://github.com/tokio-rs/tokio) | `1.42.0` | `1.43.0` |
| [tower](https://github.com/tower-rs/tower) | `0.4.13` | `0.5.1` |
| [pin-project](https://github.com/taiki-e/pin-project) | `1.1.7` | `1.1.8` |
| [tinyvec](https://github.com/Lokathor/tinyvec) | `1.8.0` | `1.8.1` |
| [thiserror](https://github.com/dtolnay/thiserror) | `2.0.6` | `2.0.11` |
| [dirs](https://github.com/soc/dirs-rs) | `5.0.1` | `6.0.0` |
| [rand](https://github.com/rust-random/rand) | `0.8.5` | `0.9.0` |
| [sentry](https://github.com/getsentry/sentry-rust) | `0.35.0` | `0.36.0` |
| [inferno](https://github.com/jonhoo/inferno) | `0.12.0` | `0.12.1` |
| [hyper](https://github.com/hyperium/hyper) | `1.5.1` | `1.6.0` |
| [metrics-exporter-prometheus](https://github.com/metrics-rs/metrics) | `0.16.0` | `0.16.1` |
| [log](https://github.com/rust-lang/log) | `0.4.22` | `0.4.25` |
| [indicatif](https://github.com/console-rs/indicatif) | `0.17.9` | `0.17.11` |
| [proptest](https://github.com/proptest-rs/proptest) | `1.5.0` | `1.6.0` |
| [proptest-derive](https://github.com/proptest-rs/proptest) | `0.5.0` | `0.5.1` |
| [jsonrpsee-types](https://github.com/paritytech/jsonrpsee) | `0.24.7` | `0.24.8` |
| [insta](https://github.com/mitsuhiko/insta) | `1.41.1` | `1.42.1` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.133` | `1.0.138` |
| [tempfile](https://github.com/Stebalien/tempfile) | `3.14.0` | `3.16.0` |
| [bitflags](https://github.com/bitflags/bitflags) | `2.6.0` | `2.8.0` |
| [primitive-types](https://github.com/paritytech/parity-common) | `0.12.2` | `0.13.1` |
| [rand_core](https://github.com/rust-random/rand) | `0.6.4` | `0.9.0` |
| [serde_with](https://github.com/jonasbb/serde_with) | `3.11.0` | `3.12.0` |
| [itertools](https://github.com/rust-itertools/itertools) | `0.13.0` | `0.14.0` |
| [rand_chacha](https://github.com/rust-random/rand) | `0.3.1` | `0.9.0` |
| [rocksdb](https://github.com/rust-rocksdb/rust-rocksdb) | `0.22.0` | `0.23.0` |
| [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) | `0.5.13` | `0.5.14` |
| [elasticsearch](https://github.com/elastic/elasticsearch-rs) | `8.16.0-alpha.1` | `8.17.0-alpha.1` |
| [jsonrpsee](https://github.com/paritytech/jsonrpsee) | `0.24.7` | `0.24.8` |
| [jsonrpsee-proc-macros](https://github.com/paritytech/jsonrpsee) | `0.24.7` | `0.24.8` |
| [syn](https://github.com/dtolnay/syn) | `2.0.90` | `2.0.96` |
| [quote](https://github.com/dtolnay/quote) | `1.0.37` | `1.0.38` |



Updates `clap` from 4.5.23 to 4.5.27
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.23...clap_complete-v4.5.27)

Updates `indexmap` from 2.7.0 to 2.7.1
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.7.0...2.7.1)

Updates `semver` from 1.0.23 to 1.0.25
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](https://github.com/dtolnay/semver/compare/1.0.23...1.0.25)

Updates `serde` from 1.0.215 to 1.0.217
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.215...v1.0.217)

Updates `tokio` from 1.42.0 to 1.43.0
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.42.0...tokio-1.43.0)

Updates `tower` from 0.4.13 to 0.5.1
- [Release notes](https://github.com/tower-rs/tower/releases)
- [Commits](https://github.com/tower-rs/tower/compare/tower-0.4.13...tower-0.5.1)

Updates `pin-project` from 1.1.7 to 1.1.8
- [Release notes](https://github.com/taiki-e/pin-project/releases)
- [Changelog](https://github.com/taiki-e/pin-project/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/pin-project/compare/v1.1.7...v1.1.8)

Updates `tinyvec` from 1.8.0 to 1.8.1
- [Changelog](https://github.com/Lokathor/tinyvec/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Lokathor/tinyvec/compare/v1.8.0...v1.8.1)

Updates `thiserror` from 2.0.6 to 2.0.11
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.6...2.0.11)

Updates `dirs` from 5.0.1 to 6.0.0
- [Commits](https://github.com/soc/dirs-rs/commits)

Updates `rand` from 0.8.5 to 0.9.0
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.8.5...0.9.0)

Updates `sentry` from 0.35.0 to 0.36.0
- [Release notes](https://github.com/getsentry/sentry-rust/releases)
- [Changelog](https://github.com/getsentry/sentry-rust/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-rust/compare/0.35.0...0.36.0)

Updates `inferno` from 0.12.0 to 0.12.1
- [Changelog](https://github.com/jonhoo/inferno/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jonhoo/inferno/compare/v0.12.0...v0.12.1)

Updates `hyper` from 1.5.1 to 1.6.0
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/hyper/compare/v1.5.1...v1.6.0)

Updates `metrics-exporter-prometheus` from 0.16.0 to 0.16.1
- [Changelog](https://github.com/metrics-rs/metrics/blob/main/release.toml)
- [Commits](https://github.com/metrics-rs/metrics/compare/metrics-exporter-prometheus-v0.16.0...metrics-exporter-prometheus-v0.16.1)

Updates `log` from 0.4.22 to 0.4.25
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/compare/0.4.22...0.4.25)

Updates `indicatif` from 0.17.9 to 0.17.11
- [Release notes](https://github.com/console-rs/indicatif/releases)
- [Commits](https://github.com/console-rs/indicatif/compare/0.17.9...0.17.11)

Updates `proptest` from 1.5.0 to 1.6.0
- [Release notes](https://github.com/proptest-rs/proptest/releases)
- [Changelog](https://github.com/proptest-rs/proptest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/proptest-rs/proptest/compare/v1.5.0...v1.6.0)

Updates `proptest-derive` from 0.5.0 to 0.5.1
- [Release notes](https://github.com/proptest-rs/proptest/releases)
- [Changelog](https://github.com/proptest-rs/proptest/blob/0.5.1/CHANGELOG.md)
- [Commits](https://github.com/proptest-rs/proptest/compare/proptest-derive-0.5.0...0.5.1)

Updates `jsonrpsee-types` from 0.24.7 to 0.24.8
- [Release notes](https://github.com/paritytech/jsonrpsee/releases)
- [Changelog](https://github.com/paritytech/jsonrpsee/blob/v0.24.8/CHANGELOG.md)
- [Commits](https://github.com/paritytech/jsonrpsee/compare/v0.24.7...v0.24.8)

Updates `insta` from 1.41.1 to 1.42.1
- [Release notes](https://github.com/mitsuhiko/insta/releases)
- [Changelog](https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mitsuhiko/insta/compare/1.41.1...1.42.1)

Updates `serde_json` from 1.0.133 to 1.0.138
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.133...v1.0.138)

Updates `tempfile` from 3.14.0 to 3.16.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.14.0...v3.16.0)

Updates `bitflags` from 2.6.0 to 2.8.0
- [Release notes](https://github.com/bitflags/bitflags/releases)
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bitflags/bitflags/compare/2.6.0...2.8.0)

Updates `primitive-types` from 0.12.2 to 0.13.1
- [Commits](https://github.com/paritytech/parity-common/commits/primitive-types-v0.13.1)

Updates `rand_core` from 0.6.4 to 0.9.0
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/rand_core-0.6.4...0.9.0)

Updates `serde_with` from 3.11.0 to 3.12.0
- [Release notes](https://github.com/jonasbb/serde_with/releases)
- [Commits](https://github.com/jonasbb/serde_with/compare/v3.11.0...v3.12.0)

Updates `itertools` from 0.13.0 to 0.14.0
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-itertools/itertools/compare/v0.13.0...v0.14.0)

Updates `rand_chacha` from 0.3.1 to 0.9.0
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/rand_chacha-0.3.1...0.9.0)

Updates `rocksdb` from 0.22.0 to 0.23.0
- [Release notes](https://github.com/rust-rocksdb/rust-rocksdb/releases)
- [Changelog](https://github.com/rust-rocksdb/rust-rocksdb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-rocksdb/rust-rocksdb/compare/v0.22.0...v0.23.0)

Updates `crossbeam-channel` from 0.5.13 to 0.5.14
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases)
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.5.13...crossbeam-channel-0.5.14)

Updates `elasticsearch` from 8.16.0-alpha.1 to 8.17.0-alpha.1
- [Release notes](https://github.com/elastic/elasticsearch-rs/releases)
- [Commits](https://github.com/elastic/elasticsearch-rs/compare/v8.16.0-alpha.1...v8.17.0-alpha.1)

Updates `jsonrpsee` from 0.24.7 to 0.24.8
- [Release notes](https://github.com/paritytech/jsonrpsee/releases)
- [Changelog](https://github.com/paritytech/jsonrpsee/blob/v0.24.8/CHANGELOG.md)
- [Commits](https://github.com/paritytech/jsonrpsee/compare/v0.24.7...v0.24.8)

Updates `jsonrpsee-proc-macros` from 0.24.7 to 0.24.8
- [Release notes](https://github.com/paritytech/jsonrpsee/releases)
- [Changelog](https://github.com/paritytech/jsonrpsee/blob/v0.24.8/CHANGELOG.md)
- [Commits](https://github.com/paritytech/jsonrpsee/compare/v0.24.7...v0.24.8)

Updates `syn` from 2.0.90 to 2.0.96
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.90...2.0.96)

Updates `quote` from 1.0.37 to 1.0.38
- [Release notes](https://github.com/dtolnay/quote/releases)
- [Commits](https://github.com/dtolnay/quote/compare/1.0.37...1.0.38)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: indexmap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: tower
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: pin-project
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: tinyvec
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: dirs
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: prod
- dependency-name: rand
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: sentry
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: inferno
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: hyper
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: metrics-exporter-prometheus
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: log
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: indicatif
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: proptest
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: proptest-derive
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: jsonrpsee-types
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: insta
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: tempfile
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: bitflags
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: primitive-types
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: rand_core
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: serde_with
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: itertools
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: rand_chacha
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: rocksdb
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: crossbeam-channel
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: elasticsearch
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: jsonrpsee
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: jsonrpsee-proc-macros
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: quote
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
...

Signed-off-by: dependabot[bot] <support@github.com>

* downgrade some dependencies, fixes where needed with what is left

* update denies

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2025-01-31 04:11:33 +00:00
Arya f0c497160a
add(state): Track spending transaction ids by spent outpoints and revealed nullifiers (#8895)
* Adds new column family for [spent_out_loc] -> [spending_tx_loc] with a read method and an update to `prepare_spending_transparent_tx_ids_batch()` for maintaining it when committing blocks to the finalized state.

Adds TODOs for remaining production changes needed for issue #8837.

* add spending tx ids for spent outpoints to non-finalized chains

* adds a `spending_transaction_hash()` read fn for the new column family

* Adds a `TransactionIdForSpentOutPoint` ReadRequest and a `TransactionId` ReadResponse

* Updates snapshots, removes outdated TODOs, moves a TODO.

* Clarifies `spent_utxos` field docs, fixes an assertion

* import TypedColumnFamily from `finalized_state` instead of from the crate.

* adds db format upgrade for spent outpoints -> tx hash

* adds revealing tx ids for nullifiers in finalized and non-finalized states

* updates nullifiers column families to include revaling transaction locations in db format upgrade

* Renames new read state request to `SpendingTransactionId` and updates its type to a `Spend` enum

* refactor db format upgrade and prepare_nullifiers_batch() to use ZebraDb instead of DiskDb, checks cancel_receiver before every db operation

* Adds acceptance test for checking that the finalized state has spending transaction ids

* Adds variant docs to zebra_state::request::Spend enum

* Updates Zebra book with the latest changes to the rocks db column families

* Updates acceptance test to check non-finalized state

* adds a few log messages to the acceptance test, reduces frequency of logs for progress updates

* fixes docs lint and skips test when there is no cached state

* Avoids returning genesis coinbase tx hash when indexes are missing

* Adds `indexer` compilation feature in zebra-state and build metadata in db format version file

* stops tracking new indexes in finalized state when feature is unselected

* stops tracking new indexes in non-finalized state when indexer feature is unselected

* condenses imports

* - adds build metadata when writing db version file, if any.
- adds the build metadata to the db version file before adding indexes.
- deletes indexes when running without the `indexer` feature

* Replaces dropping cf with deleting range of all items to avoid a panic when trying to open the db with that column family.

* Fixes lint, avoids reading coinbase transactions from disk

* updates db column families table

* Document need for having an indexed cached state and use a multi-threaded tokio runtime in has_spending_transaction_ids test

* fixes call to renamed `future_blocks` test fn

* improves test logs and fixes a disk format deserialization bug

* Replaces a new expr with a previously existing constant, fixes typo
2025-01-27 14:34:48 +00:00
Elijah Hampton 8b84017807
Respond to getblockchaininfo with genesis block when empty state (#9138)
* Refactors getblockchaininfo to return gensis block if tip pool request fails. Adds test in prop.rs

* clippy, check and fmt

* Removes unused imports. Refactors code for correctness in genesis bytes reference and tokio pause() call

---------

Co-authored-by: Elijah Hampton <elijahhampton@pop-os.lan>
2025-01-23 09:54:05 +00:00
Alfredo Garcia c103c2d948
fix(rpc): Use `jsonrpsee` in `zebra-node-services` (#9151)
* replace jsonrpc-core with jsonrpsee-types in zebra-node-services

* remove non needed feature from dependency

* remove jsonrpc-core as a dev dependency in zebra-node-services

* add jsonrpsee-types as a dev dependency
2025-01-20 21:33:47 +00:00
root 94e0d81a71
chore: delete repetitive words (#9131)
* repeat words

* Update zebra-chain/src/block/serialize.rs

Co-authored-by: Pili Guerra <1311133+mpguerra@users.noreply.github.com>

---------

Co-authored-by: Pili Guerra <1311133+mpguerra@users.noreply.github.com>
2025-01-17 13:19:45 +00:00
Pili Guerra baf20fa9f9
fix: typos with `address` (#9134)
* Fix typos in RPC docs

* Fixing other typos in zebra-state
2025-01-17 11:24:03 +00:00
idky137 43869bfcb0
Add public getter / setter func to Zebra-RPC::methods.rs (#9113)
* added getters and setter for GetInfo and GetBlockchainInfo structs

* updated BlockHeader

* added fetcher for address strings

* publicised address balance

* added getter and setter for SentTransactionHash

* finished adding pub func

* added pub constructor for addressstrings

* added debug to legacycode

* review changes
2025-01-15 20:22:27 +00:00
Marek 410cac0b24
chore: Fix new clippy lints (#9114)
* Fix lints

* chore: Release

* Remove the "release crates" job (#9119)
2025-01-14 20:50:56 +00:00