Commit Graph

3866 Commits

Author SHA1 Message Date
mergify[bot] 749c529d9e
v1.17: Discard packets statically known to fail (backport of #370) (#374)
* Discard packets statically known to fail (#370)

* Discard packets statically known to fail

* add test

(cherry picked from commit 5f1693224e)

# Conflicts:
#	core/src/banking_stage/transaction_scheduler/scheduler_controller.rs

* resolve conflict

---------

Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
2024-03-21 15:37:15 -07:00
mergify[bot] 1390ec9ec0
v1.17: Adds more info to panic message in AccountsHashVerifier (backport of #35353) (#35358)
Adds more info to panic message in AccountsHashVerifier (#35353)

(cherry picked from commit 6aaaf858c9)

Co-authored-by: Brooks <brooks@solana.com>
2024-03-01 16:32:19 -05:00
mergify[bot] 5b24097790
v1.17: validator: include waited_for_supermajority in startup metric (backport of #35137) (#35276)
* validator: include waited_for_supermajority in startup metric (#35137)

(cherry picked from commit b0134ab04d)

# Conflicts:
#	core/src/validator.rs

* fix conflicts

---------

Co-authored-by: Ashwin Sekar <ashwin@solana.com>
2024-02-21 18:51:44 -08:00
mergify[bot] 07b69c9194
v1.17: validator: ignore too old tower error (backport of #35229) (#35278)
validator: ignore too old tower error (#35229)

* validator: ignore too old tower error

* Update core/src/replay_stage.rs

Co-authored-by: Ashwin Sekar <ashwin@solana.com>

* remove redundant references

---------

Co-authored-by: Ashwin Sekar <ashwin@solana.com>
(cherry picked from commit 531793b4be)

Co-authored-by: DimAn <diman@diman.io>
2024-02-21 16:33:51 -05:00
mergify[bot] d56a08300a
v1.17: replay: reload tower if set-identity during startup (backport of #35173) (#35256)
replay: reload tower if set-identity during startup (#35173)

* replay: reload tower if set-identity during startup

* pr feedback: add unit tests

* pr feedback: use tower.node_pubkey, more descriptive names

(cherry picked from commit befe8b9d98)

Co-authored-by: Ashwin Sekar <ashwin@solana.com>
2024-02-20 14:22:30 -08:00
Stephen Akridge da2078d4a0 Add limit to looping in banking-stage 2024-02-12 22:15:52 -06:00
mergify[bot] cc0e9a0e5a
v1.17: Logs the number of storages kept alive by fastboot (backport of #34667) (#34670)
Logs the number of storages kept alive by fastboot (#34667)

(cherry picked from commit e84974cf63)

Co-authored-by: Brooks <brooks@solana.com>
2024-01-05 18:36:19 -05:00
mergify[bot] b9aaedba6a
v1.17: Add feature flag for LastIndex and Erasure duplicate proofs (backport of #34360) (#34541)
* Add feature flag for LastIndex and Erasure duplicate proofs (#34360)

* Add feature flag for LastIndex and Erasure duplicate proofs

* pr feedback: use root bank instead of 2 params

* pr feedback: & instead of &Arc

* pr feedback: reuse fn, remove redundant clones

* rebase: fix feature set conflict

(cherry picked from commit def3bc4c4f)

# Conflicts:
#	sdk/src/feature_set.rs

* fix feature set conflict

---------

Co-authored-by: Ashwin Sekar <ashwin@solana.com>
2023-12-20 14:21:50 -05:00
mergify[bot] 907b904784
v1.17: disables turbine and repair QUIC endpoints on mainnet-beta (backport of #34523) (#34526)
* disables turbine and repair QUIC endpoints on mainnet-beta (#34523)

On mainnet-beta, respective QUIC endpoint are unnecessary for now until
testnet has fully migrated to QUIC. The commit disables turbine and
repair QUIC endpoints on mainnet-beta.

(cherry picked from commit 4feadbdb7c)

# Conflicts:
#	core/src/validator.rs

* resolves mergify merge conflicts

---------

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-12-19 20:49:57 +00:00
mergify[bot] f7a655fe0c
v1.17: replay: feature flag consumption of duplicate proofs from blockstore (backport of #34372) (#34515)
* replay: feature flag consumption of duplicate proofs from blockstore (#34372)

* replay: feature flag consumption of duplicate proofs from blockstore

* pr feedback: reorder check, add flag for restart logic

(cherry picked from commit 4a8d27d921)

# Conflicts:
#	sdk/src/feature_set.rs

* fix feature set conflict

---------

Co-authored-by: Ashwin Sekar <ashwin@solana.com>
2023-12-19 15:32:19 -05:00
mergify[bot] daf37308f2
v1.17: Add metrics for locking the blockhash queue in banking stage (backport of #34382) (#34384)
* Add metrics for locking the blockhash queue in banking stage (#34382)

(cherry picked from commit 2971e84ec8)

# Conflicts:
#	core/src/banking_stage/consume_worker.rs

* resolve conflicts

---------

Co-authored-by: Justin Starry <justin.starry@icloud.com>
Co-authored-by: Justin Starry <justin@solana.com>
2023-12-09 10:07:35 -07:00
mergify[bot] fe8f77e7bd
v1.17: adds feature gated code to drop legacy shreds (backport of #34328) (#34346)
* adds feature gated code to drop legacy shreds (#34328)

(cherry picked from commit d5eee01950)

* derefrences instead of clone

---------

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-12-07 17:10:33 +00:00
mergify[bot] 311e986b42
v1.17: patches slots_per_epoch vs last_slot ordering in shred_fetch_stage (backport of #34338) (#34345)
patches slots_per_epoch vs last_slot ordering in shred_fetch_stage (#34338)

(cherry picked from commit b1c701e53b)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-12-06 21:54:32 +00:00
mergify[bot] e3bd31c067
v1.17: exits send_requests_task if the connection is closed (backport of #33837) (#34324)
exits send_requests_task if the connection is closed (#33837)

receiver.recv() can unnecessarily block when the connection is already closed.
The commit exits send_requests_task if the connection is closed.

(cherry picked from commit 2096626633)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-12-05 17:12:14 +00:00
mergify[bot] ff1d9a6292
v1.17: Output BankHashDetails file when leader drops its' own block (backport of #34256) (#34275)
Output BankHashDetails file when leader drops its' own block (#34256)

Currently, the file is generated when a node drops a block that was
produced by another node. However, it would also be beneficial to see
the account state when a node drops its' own block.

Output the file in this additional failure codepath

(cherry picked from commit 935e06f8f1)

Co-authored-by: steviez <steven@solana.com>
2023-11-30 16:36:16 -06:00
mergify[bot] 6209b3beea
v1.17: adds keep-alive-interval to repair QUIC transport config (backport of #33866) (#33992)
adds keep-alive-interval to repair QUIC transport config (#33866)

QUIC connections may timeout due to infrequent repair requests. The commit
configures keep_alive_interval and max_idle_timeout to avoid timeouts.

(cherry picked from commit 3ac2507d36)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-11-09 03:08:55 +00:00
mergify[bot] 561c95c951
v1.17: Geyser: return real parent blockhash, or default (backport of #33873) (#33959)
Geyser: return real parent blockhash, or default (#33873)

Return real parent blockhash, or default

(cherry picked from commit d6ac9bea84)

Co-authored-by: Tyera <tyera@solana.com>
2023-11-06 19:15:21 +00:00
mergify[bot] 5fa23d9a56
v1.17: adds metrics to repair QUIC endpoint (backport of #33818) (#33868)
adds metrics to repair QUIC endpoint (#33818)

(cherry picked from commit e555a61c78)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-10-25 22:15:45 +00:00
mergify[bot] bfab9bb3ae
v1.17: Use program cache fork graph in extract() (backport of #33806) (#33862)
Use program cache fork graph in extract() (#33806)

* Use program cache fork graph instead of WorkingSlot trait

* Fix deadlocked tests

* keep WorkingSlot trait for now

(cherry picked from commit 78c31aa6b8)

Co-authored-by: Pankaj Garg <pankaj@solana.com>
2023-10-25 16:03:39 +00:00
mergify[bot] 22f44d0518
v1.17: Initialize fork graph in program cache during bank_forks creation (backport of #33810) (#33817)
* Initialize fork graph in program cache during bank_forks creation (#33810)

* Initialize fork graph in program cache during bank_forks creation

* rename BankForks::new to BankForks::new_rw_arc

* fix compilation

* no need to set fork_graph on insert()

* fix partition tests

(cherry picked from commit 9d42cd7efe)

# Conflicts:
#	core/src/repair/repair_service.rs
#	core/tests/epoch_accounts_hash.rs
#	ledger/src/blockstore_processor.rs
#	rpc/src/rpc_service.rs
#	runtime/src/bank/tests.rs

* fix merge conflicts

---------

Co-authored-by: Pankaj Garg <pankaj@solana.com>
2023-10-23 18:28:40 +00:00
mergify[bot] a186c5c31d
v1.17: prunes turbine QUIC connections (backport of #33663) (#33800)
prunes turbine QUIC connections (#33663)

The commit implements lazy eviction for turbine QUIC connections.
The cache is allowed to grow to 2 x capacity at which point at least
half of the entries with lowest stake are evicted, resulting in an
amortized O(1) performance.

(cherry picked from commit e0b59a6f53)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-10-23 15:39:32 +00:00
mergify[bot] cc4b71a8d7
v1.17: Set a global fork graph in program cache (backport of #33776) (#33809)
Set a global fork graph in program cache (#33776)

* Set a global fork graph in program cache

* fix deadlock

* review feedback

(cherry picked from commit 59cb3b57ee)

Co-authored-by: Pankaj Garg <pankaj@solana.com>
2023-10-21 13:21:57 -07:00
mergify[bot] f3308f733f
v1.17: prunes repair QUIC connections (backport of #33775) (#33792)
prunes repair QUIC connections (#33775)

The commit implements lazy eviction for repair QUIC connections.
The cache is allowed to grow to 2 x capacity at which point at least
half of the entries with lowest stake are evicted, resulting in an
amortized O(1) performance.

(cherry picked from commit dc3c827299)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-10-20 21:19:22 +00:00
mergify[bot] ae1bfff31f
v1.17: separates out routing repair requests from establishing connections (backport of #33742) (#33769)
separates out routing repair requests from establishing connections (#33742)

Currently each outgoing repair request will attempt to establish a
connection if one does not already exist. This is very wasteful and
consumes many tokio tasks if the remote node is down or unresponsive.

The commit decouples routing packets from establishing connections by
adding a buffering channel for each remote address. Outgoing packets are
always sent down this channel to be processed once the connection is
established. If connecting attempt fails, all packets already pushed to
the channel are dropped at once, reducing the number of attempts to make
a connection if the remote node is down or unresponsive.

(cherry picked from commit 7aa0faea96)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-10-20 19:03:37 +00:00
mergify[bot] 8af823401a
v1.17: Enable frozen_abi on banking trace file (backport of #33501) (#33578)
* Enable frozen_abi on banking trace file (#33501)

* Enable frozen_abi on banking trace file

* Fix ci with really correct bugfix...

* Remove tracker_callers

* Fix typo...

* Fix AbiExample for Arc/Rc's Weaks

* Added comment for AbiExample impl of SystemTime

* Simplify and document EvenAsOpaque with new usage

* Minor clean-ups

* Simplify SystemTime::example() with UNIX_EPOCH...

* Add comment for AbiExample subtleties

(cherry picked from commit 95810d876a)

# Conflicts:
#	Cargo.lock

* fix conflict

---------

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2023-10-17 13:48:04 +09:00
mergify[bot] 05ebb1f0bb
v1.17: Change getHealth to compare optimistically confirmed slots (backport of #33651) (#33714)
Change getHealth to compare optimistically confirmed slots (#33651)

The current getHealth mechanism checks a local accounts hash slot vs.
those of other nodes as specified by --known-validator. This is a
very coarse comparison given that the default for this value is 100
slots. More so, any nodes using a value larger than the default
(ie --incremental-snapshot-interval 500) will likely see getHealth
return status behind at some point.

Change the underlying mechanism of how health is computed. Instead of
using the accounts hash slots published in gossip, use the latest
optimistically confirmed slot from the cluster. Even when a node is
behind, it is able to observe cluster optimistically confirmed by slots
by viewing votes published in gossip.

Thus, the latest cluster optimistically confirmed slot can be compared
against the latest optimistically confirmed bank from replay to
determine health. This new comparison is much more granular, and not
needing to depend on individual known validators is also a plus.

(cherry picked from commit 8bd0e4cd95)

Co-authored-by: steviez <steven@solana.com>
2023-10-16 13:04:33 -05:00
mergify[bot] e1278e2127
v1.17: Adds `--no-skip-initial-accounts-db-clean` *hidden* CLI flag (backport of #33664) (#33677)
Adds `--no-skip-initial-accounts-db-clean` *hidden* CLI flag (#33664)

(cherry picked from commit 452fd5d384)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-12 16:50:38 -04:00
mergify[bot] c45c9dc562
v1.17: Stops pushing legacy snapshot hashes to crds (backport of #33576) (#33581)
(cherry picked from commit c588f25eca)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-10 11:52:53 -04:00
mergify[bot] 194903c1cf
v1.17: Uses stable `u64::next_multiple_of()` (backport of #33549) (#33567)
Uses stable `u64::next_multiple_of()` (#33549)

(cherry picked from commit c8d545c501)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-06 20:13:59 +00:00
mergify[bot] d75522d7bc
v1.17: Enable the banking trace by default (backport of #33497) (#33514)
Enable the banking trace by default (#33497)

(cherry picked from commit eb262aabe3)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2023-10-04 06:26:18 +00:00
Andrew Fitzgerald 660e41a8e1
Remove entry shuffling (#33378) 2023-10-02 09:03:12 -07:00
carllin ec2e1241a1
Cleanup select_vote_and_reset_forks() (#33421) 2023-09-29 15:11:25 -07:00
Andrew Fitzgerald e3cd13e49d
Add new received forwarded packets metric to banking stage (#33414) 2023-09-28 09:25:10 -07:00
Tyera ddd029774a
Add geyser block-metadata notification with entry count (#33359)
* Add new ReplicaBlockInfoVersions variant

* Use new variant to return entry count
2023-09-26 10:13:17 -06:00
Tao Zhu a41c15e47e
Separate vote cost (#33230)
* Separate simple-vote transaction cost from non-vote transaction cost

* remove is_simple_vote flag from transaction UsageCostDetails

* update test and comment

* set static usage cost for SimpleVote transaction
2023-09-25 15:02:08 -05:00
Ashwin Sekar 85cc6ace05
Update is_locked_out cache when adopting on chain vote state (#33341)
* Update is_locked_out cache when adopting on chain vote state

* extend to all cached tower checks

* upgrade error to panic
2023-09-25 12:33:38 -07:00
Pankaj Garg f50342a790
Split vote related code from runtime to its own crate (#32882)
* Move vote related code to its own crate

* Update imports in code and tests

* update programs/sbf/Cargo.lock

* fix check errors

* update abi_digest

* rebase fixes

* fixes after rebase
2023-09-19 10:46:37 -07:00
Andrew Fitzgerald 22338f5472
TransactionScheduler: InFlightTracker (#33206) 2023-09-19 09:08:42 -07:00
Brooks bc2b372762
Adds DCOU to verify_snapshot_archive() (#33298) 2023-09-18 19:11:28 -04:00
Andrew Fitzgerald 86dd18bfb5
TransactionScheduler: Id Generators (#33207) 2023-09-18 10:07:40 -07:00
Andrew Fitzgerald e860019687
TransactionScheduler: Pipe BlockProductionMethod (#33217) 2023-09-18 10:05:27 -07:00
Brooks c40e88aef9
Adds metrics for fastboot storages kept alive (#33222) 2023-09-13 09:28:19 -04:00
Brooks acd7ad96c3
Purges old accounts hash cache dirs (#33183) 2023-09-12 13:10:22 -04:00
behzad nouri e01269a9de
sends repair requests over QUIC protocol (#33016)
The commit implements client-side of serve-repair and
ancestor-hash-service over QUIC protocol.
2023-09-11 22:22:04 +00:00
Alexander Meißner bbb57be0a5
Refactor - Move interfaces of address-lookup-table into the program SDK (#33165)
* Adds a module `address_lookup_table` to the SDK.

* Adds a module `address_lookup_table::instruction` to the SDK.

* Adds a module `address_lookup_table::error` to the SDK.

* Adds a module `address_lookup_table::state` to the SDK.

* Moves AddressLookupTable into SDK as well.

* Moves AddressLookupTableAccount into address_lookup_table.

* Adds deprecation messages.

* Disentangles dependencies across cargo files.
2023-09-11 21:10:40 +02:00
behzad nouri 7fc6fea8d8
serves remote repair requests from QUIC endpoint (#33069)
The commit implements server-side of repair using QUIC protocol.

UDP repair requests are adapted as RemoteRequest and sent down the same
channel as remote requests arriving over QUIC, and the rest of the
server code is update to process over RemoteRequest type.
2023-09-11 16:57:10 +00:00
Andrew Fitzgerald 297ffad797
set_forwarded needs mut ref (#33203) 2023-09-11 09:34:48 -07:00
Andrew Fitzgerald 527a4bbf00
TransactionScheduler: TransactionStateContainer (#33002)
Co-authored-by: Tao Zhu <82401714+taozhu-chicago@users.noreply.github.com>
2023-09-09 09:51:23 -07:00
behzad nouri 9ff0b35f29
adds QUIC endpoint for repair service (#33057)
Working towards using QUIC protocol for repair, the commit adds a QUIC
endpoint for repair service.

Outgoing local requests are sent as

    struct LocalRequest {
        remote_address: SocketAddr,
        bytes: Vec<u8>,
        num_expected_responses: usize,
        response_sender: Sender<(SocketAddr, Vec<u8>)>,
    }

to the client-side of the endpoint. The client opens a bidirectional
stream with the LocalRequest.remote_address and once received the
response, sends it down the LocalRequest.response_sender channel.

Incoming requests from remote nodes are received from bidirectional
streams and sent as

    struct RemoteRequest {
        remote_pubkey: Option<Pubkey>,
        remote_address: SocketAddr,
        bytes: Vec<u8>,
        response_sender: Option<OneShotSender<Vec<Vec<u8>>>>,
    }

to the repair-service. The response is received from the receiver end of
RemoteRequest.response_sender channel and send back to the remote node
using the send side of the bidirectional stream.
2023-09-07 18:00:25 +00:00
behzad nouri 528a03f32a
removes outdated matches crate from dependencies (#33172)
removes outdated matches crate from the dependencies

std::matches has been stable since rust 1.42.0.
Other use-cases are covered by assert_matches crate.
2023-09-07 12:52:57 +00:00