* Add helpers to covert between sdk types
* Add distribute-spl-tokens to args and arg-parsing
* Build spl-token transfer-checked instructions
* Check spl-token balances properly
* Add display handling to support spl-token
* Small refactor to allow failures in allocation iter
* Use Associated Token Account for spl-token distributions
* Add spl token support to balances command
* Update readme
* Add spl-token tests
* Rename spl-tokens file
* Move a couple more things out of commands
* Stop requiring lockup_date heading for non-stake distributions
* Adjust solana_rbpf log level up in coverage
* Use epsilon for allocation retention
* Add back BPF error logging
* Update programs/bpf_loader/src/lib.rs
Co-authored-by: Michael Vines <mvines@gmail.com>
(cherry picked from commit 3a9dca0c67)
Co-authored-by: Jack May <jack@solana.com>
* Remove program cap from CLI checks (#13617)
(cherry picked from commit 64a3cf03e2)
# Conflicts:
# cli/src/cli.rs
* Fix conflict
Co-authored-by: Jack May <jack@solana.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
* Use default client keypair if --keypair argument is not provided
(cherry picked from commit e9e5ee4362)
# Conflicts:
# faucet/Cargo.toml
* Use default client keypair if --faucet-keypair is not provided
(cherry picked from commit 4069e7b663)
# Conflicts:
# genesis/Cargo.toml
* Cargo.lock
(cherry picked from commit ab5814cd90)
# Conflicts:
# Cargo.lock
* Use default client keypair for faucet to avoid the need for airdrops
(cherry picked from commit b5820f9325)
* Fix conflicts
Co-authored-by: Michael Vines <mvines@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
split_gossip_messages:
https://github.com/solana-labs/solana/blob/a97c04b40/core/src/cluster_info.rs#L1536-L1574
splits crds-values into chunks to fit into a gossip packet. However it is
using a global upper-bound for the header-size across all protocols:
https://github.com/solana-labs/solana/blob/a97c04b40/core/src/cluster_info.rs#L90-L93
This can be wasteful as the specific gossip protocol can have smaller
header than this upper-bound (e.g. Protocol::PushMessage is 170 bytes
smaller). Adding more crds-values in one gossip packet can avoid the
overheads of separate packets and reduce total number of bytes sent over
the wire.
This commit updates the splitting function to take a max-chunk-size
argument. At call-site, this value is set to the size of the protocol
which the values are sent over.
(cherry picked from commit 5e8490ab9d)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
In several places in gossip code, the entire crds table is scanned only
to filter out nodes' contact infos. Currently on mainnet, crds table is
of size ~70k, while there are only ~470 nodes. So the full table scan is
inefficient. Instead we may maintain an index of only nodes' contact
infos.
(cherry picked from commit cbea9ebc34)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
The --rpc-pubsub-enable-vote-subscription flag may be used to enable it.
The current vote subscription is problematic because it emits a
notification for *every* vote, so hundreds a second in a real cluster.
Critically it's also missing information about *who* is voting,
rendering all those notifications practically useless.
Until these two issues can be resolved, the vote subscription is not
much more than a potential DoS vector.
(cherry picked from commit 5d72e52ad0)
Co-authored-by: Michael Vines <mvines@gmail.com>
* ip-echo-server: Name the header length magic number
(cherry picked from commit aab5f24518)
* ip-echo-server: Add helper to compute reply length
(cherry picked from commit 7481ba5618)
* ip-echo-server: Limit socket read to expected reply length
(cherry picked from commit d2cfeb31b9)
Co-authored-by: Trent Nelson <trent@solana.com>