Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backport 19361 v17 #19380

Closed
wants to merge 327 commits into from
Closed

Conversation

brooksprumo
Copy link
Contributor

Problem

Summary of Changes

Fixes #

mergify bot and others added 30 commits June 14, 2021 17:32
…17804)

(cherry picked from commit 817d48b)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…abs#17945)

(cherry picked from commit e6bbd4b)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…olana-labs#17847)

Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit 2a9b127)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…7852) (solana-labs#17931)

(cherry picked from commit 2dc6969)

    # Conflicts:
    #       runtime/src/accounts_hash.rs

Co-authored-by: Jeff Washington (jwash) <wash678@gmail.com>
…olana-labs#17932)

* calculate_capitalization uses hash calculation

* feedback

* remove debugging code, clean up slot math

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
)

* Bump spl-token to v3.1.1 (solana-labs#17951)

(cherry picked from commit b7de369)

# Conflicts:
#	Cargo.lock
#	account-decoder/Cargo.toml
#	accounts-cluster-bench/Cargo.toml
#	programs/bpf/Cargo.lock
#	rpc/Cargo.toml
#	tokens/Cargo.toml

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
…bs#17948)

(cherry picked from commit 7fde9b6)

    # Conflicts:
    #       runtime/src/accounts_db.rs

Co-authored-by: Jeff Washington (jwash) <wash678@gmail.com>
…abs#17716) (solana-labs#17973)

Turbine retransmit logic is based on which socket it received the packet
from (i.e `packet.meta.forward`):
https://github.com/solana-labs/solana/blob/708bbcb00/core/src/retransmit_stage.rs#L467-L470

This can leave the cluster vulnerable to spoofing and selective
propagation of packets; see
solana-labs#6672
solana-labs#7774

This commit identifies if the node is on the "critical path" based on
its index in the shuffled cluster. If so, it forwards the packet to both
neighbors and children; otherwise, the packet is only forwarded to the
children.

The metrics added in
solana-labs#17351
shows that the number of times the index does not match the port is very
rare, and therefore this change should be safe.

(cherry picked from commit 1618386)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
… (solana-labs#17947)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…17949) (solana-labs#17976)

(cherry picked from commit 4d8ffdc)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…abs#17978)

* Refactor stake program into solana_program (solana-labs#17906)

* Move stake state / instructions into solana_program

* Update account-decoder

* Update cli and runtime

* Update all other parts

* Commit Cargo.lock changes in programs/bpf

* Update cli stake instruction import

* Allow integer arithmetic

* Update ABI digest

* Bump rust mem instruction count

* Remove useless structs

* Move stake::id() -> stake::program::id()

* Re-export from solana_sdk and mark deprecated

* Address feedback

* Run cargo fmt

* Run cargo fmt post cherry-pick
…s#17492) (solana-labs#17979)

Refactor a few functions that are on the load-from-snapshot path, to facilitate
adding in incremental snapshots more easily.

Additionally, add some tests and doc comments.

(cherry picked from commit 1953543)

Co-authored-by: Brooks Prumo <brooks@solana.com>
* add metrics for startup

    * roll timings up higher

    * fix test

    * fix duplicate

    (cherry picked from commit 471b341)

    # Conflicts:
    #       ledger/src/bank_forks_utils.rs
    #       runtime/src/snapshot_utils.rs
conflicts because solana-labs#17778 is not present.

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…ana-labs#17990) (solana-labs#17994)

* Default block_height on eof

* Add comment to prevent future errors

(cherry picked from commit c57d1b4)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
…labs#17939) (solana-labs#17996)

* verify bank hash on startup with ledger tool option (solana-labs#17939)

(cherry picked from commit f558b9b)

# Conflicts:
#	core/tests/snapshots.rs
#	ledger/src/bank_forks_utils.rs
#	runtime/src/snapshot_utils.rs

* fix merge errors

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
Co-authored-by: Jeff Washington (jwash) <wash678@gmail.com>
(cherry picked from commit 5ecb30f)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…18004)

(cherry picked from commit 7de7942)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…ana-labs#18007)

(cherry picked from commit 7ca04d6)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…labs#17725)

(cherry picked from commit 39654d3)

Co-authored-by: Jack May <jack@solana.com>
(cherry picked from commit 55ee3b5)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…na-labs#18011)

(cherry picked from commit eee5414)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…na-labs#17894)

(cherry picked from commit 0feac57)

Co-authored-by: sakridge <sakridge@gmail.com>
solana-labs#18010)

(cherry picked from commit adc6839)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…8015)

(cherry picked from commit 71796f4)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
…ackport solana-labs#17405) (solana-labs#17792)

* Skip shrink when it doesn't save anything (solana-labs#17405)

(cherry picked from commit 14c52ab)

# Conflicts:
#	runtime/src/accounts_db.rs

* fix merge error

Co-authored-by: sakridge <sakridge@gmail.com>
Co-authored-by: Jeff Washington (jwash) <wash678@gmail.com>
(cherry picked from commit 5bc6c89)

Co-authored-by: Trent Nelson <trent@solana.com>
…a-labs#17993) (solana-labs#18026)

(cherry picked from commit ed18add)

Co-authored-by: carllin <carl@solana.com>
(cherry picked from commit f1ebbba)

Co-authored-by: Michael Vines <mvines@gmail.com>
…s (backport solana-labs#17974) (solana-labs#18008)

* ledger tool limit_load_slot_count_from_snapshot avoids assert failures (solana-labs#17974)

(cherry picked from commit dbd4dc0)

# Conflicts:
#	core/tests/snapshots.rs
#	ledger/src/blockstore_processor.rs
#	runtime/benches/accounts.rs
#	runtime/src/bank.rs

* fix merge errors

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
Co-authored-by: Jeff Washington (jwash) <wash678@gmail.com>
…) (solana-labs#17879)

(cherry picked from commit a1fab0c)

Co-authored-by: Jack May <jack@solana.com>
mergify bot and others added 27 commits August 7, 2021 06:16
Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit 592013e)

Co-authored-by: sakridge <sakridge@gmail.com>
* Update hyper 0.14

* Add audit ignores

* Bump assert_cmd and remove audit ignore

* Remove pin-project-lite warning
…olana-labs#19127)

Fixes solana-labs#15576

(cherry picked from commit e4b66a5)

Co-authored-by: Brian Anderson <andersrb@gmail.com>
…19028) (solana-labs#19128)

* add validator option --accounts-db-skip-shrink (solana-labs#19028)

* add validator option --accounts-db-skip-shrink

* typo

(cherry picked from commit 3280ae3)

# Conflicts:
#	core/tests/snapshots.rs
#	ledger/src/bank_forks_utils.rs
#	ledger/src/blockstore_processor.rs
#	replica-node/src/replica_node.rs
#	runtime/src/snapshot_utils.rs

* Fix conflicts

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
…-labs#19164)

(cherry picked from commit 83f0915)

Co-authored-by: bji <bryan@ischo.com>
…ana-labs#19163) (solana-labs#19171)

* Use last_valid_block_height in services and client apps (solana-labs#19163)

* Add deprecated tag to Bank::get_blockhash_last_valid_slot

* Update SendTransactionService to use last_valid_block_height

* Update solana-tokens to use last_valid_block_height

* Remove dangling file

* Update solana program to use last_valid_block_height

* Update Banks crates to use last_valid_block_height

(cherry picked from commit 5970083)

# Conflicts:
#	cli/src/program.rs

* Fix conflict

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
…ana-labs#19160)

* Handle 0-lamport account in index generation

* rename duplicate to dirty keys

Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit 5a4979f)

Co-authored-by: sakridge <sakridge@gmail.com>
…ribe (backport solana-labs#19092) (solana-labs#19207)

* Fixing missing pubsub notification for programSubscribe and logsSubscribe (solana-labs#19092)

solana-labs#18587: programSubscribe is missing notifications randomly. The issue is because of two reasons

Not all rooted slots get OptimisticallyConfirmed notifications
The OptimisticallyConfirmed notifications can be out of order for slots: slot A and B with A < B can see notification for B first before A.
Summary of Changes

Changed OptimisticallyConfirmedBankTracker to send notifications for parent banks if they have not been notified yet. We use a new variable last_notified_slot to track that.

Tests:
With my validator running against testnet, before the fix, it was failing 75% of time, with the fix, it is passing consistently. Using the program mentioned in solana-labs#18587.

(cherry picked from commit 1a372a7)

* Use v1.7 api

Co-authored-by: Lijun Wang <83639177+lijunwangs@users.noreply.github.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
…olana-labs#19238)

* Add AsRef<AccountInfo> for AccountInfo

(cherry picked from commit 930465e)

* add test for AsRef

(cherry picked from commit d10e37a)

Co-authored-by: Kirill Fomichev <fanatid@ya.ru>
…ValidatorGenesis::start_with_socket_addr_space()` (solana-labs#19241)

(cherry picked from commit 3e5ba59)

Co-authored-by: Michael Vines <mvines@gmail.com>
…a-labs#19277)

* Expose genesis block time via rpc (solana-labs#19267)

* Expose genesis_creation_time from Bank

* Backfill genesis_creation_time for block/block-time requests of slot 0

(cherry picked from commit c167211)

# Conflicts:
#	rpc/src/rpc.rs

* Fix conflict

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
* Fix memoverlap check (solana-labs#19232)

(cherry picked from commit 9be988d)

# Conflicts:
#	programs/bpf_loader/src/syscalls.rs
#	sdk/src/feature_set.rs

* Resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
…labs#19270) (solana-labs#19283)

* RPC: add option to exclude accounts from get_supply (solana-labs#19270)

(cherry picked from commit c053df1)

# Conflicts:
#	rpc/src/rpc.rs

* resolve conflicts

Co-authored-by: Justin Starry <justin@solana.com>
…a-labs#19290) (solana-labs#19303)

* Plumb accounts-db-skip-shrink through testnet scripts (solana-labs#19290)

(cherry picked from commit 1d375ff)

# Conflicts:
#	multinode-demo/bootstrap-validator.sh
#	multinode-demo/validator.sh
#	net/net.sh

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
…lana-labs#19298) (solana-labs#19306)

* Enable booting testnet validators without tower required (solana-labs#19298)

(cherry picked from commit 7d135f1)

# Conflicts:
#	net/net.sh

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
…olana-labs#19322)

(cherry picked from commit b59b557)

Co-authored-by: Trent Nelson <trent@solana.com>
…s (backport solana-labs#19058) (solana-labs#19324)

* removes unused code from cluster-slots

(cherry picked from commit 2fc112e)

# Conflicts:
#	core/src/cluster_slots.rs

* updates cluster-slots with root-bank instead of root-slot + bank-forks

ClusterSlots::update is taking both root-slot and bank-forks only to
later lookup root-bank from bank-forks, which is redundant. Also
potentially by the time bank-forks is locked to obtain root-bank,
root-slot may have already changed and so be inconsistent with the
root-slot passed in as the argument.
https://github.com/solana-labs/solana/blob/6d95d679c/core/src/cluster_slots.rs#L32-L39
https://github.com/solana-labs/solana/blob/6d95d679c/core/src/cluster_slots.rs#L122

(cherry picked from commit 40914de)

* removes backport merge conflicts

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
) (solana-labs#19328)

Cross cluster gossip contamination is causing cluster-slots hash map to
contain a lot of bogus values and consume too much memory:
solana-labs#17789

If a node is using the same identity key across clusters, then these
erroneous values might not be filtered out by shred-versions check,
because one of the variants of the contact-info will have matching
shred-version:
solana-labs#17789 (comment)

The cluster-slots hash-map is bounded and trimmed at the lower end by
the current root. This commit also discards slots epochs ahead of the
root.

(cherry picked from commit 563aec0)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
* docs: Mainnet Beta inflation has been enabled for quite some time

(cherry picked from commit 169ded9)

* validator: Trusted validators are now called known validators

(cherry picked from commit e0bc5fa)

* docs: trust minimize

(cherry picked from commit 4061316)

* docs: correct known validator operator

(cherry picked from commit eced50d)

* docs: Remove decommissioned testnet archetype validator

(cherry picked from commit a587eec)

* docs: update devnet start args with new validators

(cherry picked from commit 2a877ae)

Co-authored-by: Trent Nelson <trent@solana.com>
…ana-labs#19336)

* stake: Remove v2 program references (solana-labs#19308)

* stake: Remove v2 program references

* Remove stake v2 feature, along with stake rewrite

(cherry picked from commit 73aa004)

# Conflicts:
#	runtime/src/bank.rs

* Fix merge conflict

* Fix uses of old `stake` function

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
…olana-labs#19343)

* Add note about ASK keyword to paper wallet doc

Per solana-labs#17325 (comment), this change adds a note to the paper wallet docs mentioning the use of the `ASK` keyword.

Also specifes that the `solana-keygen pubkey prompt://` command returns a derived bip44 base address.

(I'm new to Solana development and this was a point of confusion for me, only resolved by finding this issue)

* Update docs/src/wallet-guide/paper-wallet.md

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
(cherry picked from commit 3be5715)

Co-authored-by: Brent Fitzgerald <burnto@gmail.com>
…#19216) (solana-labs#19340)

* change untar to use unpack instead of unpack_in (solana-labs#19216)

* change untar to use unpack instead of unpack_in

* hacky, but maybe passes tests

* chore: bump tar from 0.4.35 to 0.4.37

Bumps [tar](https://github.com/alexcrichton/tar-rs) from 0.4.35 to 0.4.37.
- [Release notes](https://github.com/alexcrichton/tar-rs/releases)
- [Commits](alexcrichton/tar-rs@0.4.35...0.4.37)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

* [auto-commit] Update all Cargo lock files

* cleanup

* cleanup, add validate_inside_dst

* collapse use

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* delete comment line

* add comments

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
(cherry picked from commit 89a31ff)

# Conflicts:
#	Cargo.lock
#	download-utils/Cargo.toml
#	install/Cargo.toml
#	programs/bpf/Cargo.lock
#	runtime/Cargo.toml
#	sdk/cargo-build-bpf/Cargo.toml

* Fix conflicts

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
(cherry picked from commit 17978c2)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
…a-labs#19351)

* Only encode data with <128 bytes in bs58

* Use same MAX_BS58_BYTES const in rpc

* Fix test

* Spell out base

Co-authored-by: Tyera Eulberg <tyera@solana.com>
(cherry picked from commit 967746a)

Co-authored-by: sakridge <sakridge@gmail.com>
)

* Correct JSON-RPC docs for getSlot

* Update docs/src/developing/clients/jsonrpc-api.md

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
(cherry picked from commit 9483866)

Co-authored-by: Brian Anderson <andersrb@gmail.com>
@brooksprumo brooksprumo deleted the backport-19361-v17 branch August 30, 2021 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.