* Submit a vote timestamp every vote (#10630)
* Submit a timestamp for every vote
* Submit at most one vote timestamp per second
* Submit a timestamp for every new vote
Co-authored-by: Tyera Eulberg <tyera@solana.com>
* Timestamp first vote (#11856)
* Cache block time in Blockstore (#11955)
* Add blockstore column to cache block times
* Add method to cache block time
* Add service to cache block time
* Update rpc getBlockTime to use new method, and refactor blockstore slightly
* Return block_time with confirmed block, if available
* Add measure and warning to cache-block-time
Co-authored-by: Michael Vines <mvines@gmail.com>
* Add blockstore column to store performance sampling data (#12251)
* Add blockstore column to store performance sampling data
* introduce timer and write performance metrics to blockstore
* introduce getRecentPerformanceSamples rpc
* only run on rpc nodes enabled with transaction history
* add unit tests for get_recent_performance_samples
* remove RpcResponse from rpc call
* refactor to use Instant::now and elapsed for timer
* switch to root bank and ensure not negative subraction
* Add PerfSamples to purge/compaction
* refactor to use Instant::now and elapsed for timer
* switch to root bank and ensure not negative subraction
* remove duplicate constants
Co-authored-by: Tyera Eulberg <tyera@solana.com>
(cherry picked from commit 65a6bfad09)
# Conflicts:
# core/src/validator.rs
# ledger/src/blockstore.rs
* merge cherry pick of 65a6bfad0
Co-authored-by: Josh <josh.hundley@gmail.com>
* Implement keccak-secp256k1 instruction
Verifies eth addreses with ecrecover function
* Move secp256k1 test
Co-authored-by: sakridge <sakridge@gmail.com>
* Give the duplicate send_transaction_service a different thread name
(cherry picked from commit 75c3690ccd)
* SendTransactionServices now exit their thread on channel drop instead of by a flag
(cherry picked from commit c4913e3c9e)
Co-authored-by: Michael Vines <mvines@gmail.com>
* Fix 'Description will go into a meta tag in head' meta tag
(cherry picked from commit 5d682d2e05)
* Update index.js
(cherry picked from commit c231bb7154)
Co-authored-by: Michael Vines <mvines@gmail.com>
* RPC sendTransaction now returns transaction logs on simulation failure
(cherry picked from commit 749208fa32)
* Remove stale comment
(cherry picked from commit c6eea94edc)
Co-authored-by: Michael Vines <mvines@gmail.com>
* solana-tokens: Add capability to perform the same transfer to a batch of recipients (#12259)
* Add transfer-amount argument, use simplified input-csv
* Add transfer-amount to readme
(cherry picked from commit a48cc073cf)
# Conflicts:
# tokens/src/commands.rs
# tokens/tests/commands.rs
* Fix build
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
* Make noop a real noop (#12196)
* Make noop a real noop
* nudge
(cherry picked from commit 555252f435)
* resolve conflicts
Co-authored-by: Jack May <jack@solana.com>
* Add BPF test program instruction monitoring (#11984)
(cherry picked from commit fab2d44abd)
* fix conflicts
Co-authored-by: Jack May <jack@solana.com>
* Cache re-usable work performed by the loader (#12135)
(cherry picked from commit 3278d78f08)
# Conflicts:
# programs/bpf/Cargo.toml
# programs/bpf/tests/programs.rs
# programs/bpf_loader/Cargo.toml
* resolve conflicts
Co-authored-by: Jack May <jack@solana.com>
`--expected-shred-version` is another knob for users to get wrong and is
documentation that can get stale due to cluster restarts. Turns out
it's also generally not required anymore either because:
1. The cluster entrypoint can always be expected to be using the correct
shred version, and that shred version will be adopted by the new node
(earlier this was not the case when the `solana-gossip spy` node on
mainnet-beta.solana.com:8001 ran with shred version 0)
2. On a cluster restart, `--expected-bank-hash` is a much stronger
assertion that the validator is starting from the correct place (and
didn't exist when `--expected-shred-version` was first recommended)
(cherry picked from commit 4ada4d43f2)
Co-authored-by: Michael Vines <mvines@gmail.com>