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

WIP: SyscallGetEpochStake #19

Closed
wants to merge 146 commits into from

Conversation

buffalojoec
Copy link
Owner

WIP of a new syscall to get the current epoch stake of some vote account,
to be used by the Feature Gate program.

@buffalojoec buffalojoec force-pushed the syscall-get-epoch-stake branch 4 times, most recently from b7eb352 to 1a6e65e Compare March 31, 2024 17:43
@buffalojoec buffalojoec force-pushed the syscall-get-epoch-stake branch from 1a6e65e to 19be111 Compare April 18, 2024 17:54
@buffalojoec buffalojoec changed the base branch from anza-latest-03-25 to anza-latest-04-18 April 18, 2024 17:55
@buffalojoec buffalojoec force-pushed the syscall-get-epoch-stake branch from 19be111 to 767e418 Compare April 18, 2024 20:21
brooksprumo and others added 23 commits April 18, 2024 18:01
…bs#818)

* add hot storage test for test_partial_clean

* fix test_partial_clean for hot storage

* reviews

---------

Co-authored-by: HaoranYi <[email protected]>
…ana-labs#831)

* runtime: core bpf migration: add `source_buffer` module

* make `new_target_program_` helpers bank methods

* rename `source_program_id` to `source_buffer_address`

* replace `SourceUpgradeableBpf` with `SourceBuffer` in migration config

* drop `source_upgradeable_bpf` module

* use constants for offsets everywhere

* clean up serialization
Working towards migrating to the new contact-info, the commit expands
api parity between the legacy and the new one.
Limit max concurrent connections
Merkle shreds sign the Merkle root of the erasure batch, so all shreds
within the same erasure batch have the same signature. The commit
improves shreds signature verification by adding an LRU cache.
* load account lifetime improvements

* restore 2 check_and_
…solana-labs#842)

check for empty points submission before calling writer.write

Co-authored-by: HaoranYi <[email protected]>
…a-labs#810)

Instead of sending accounts individually, send batches of accounts for
background hashing.

Before this change we used to send accounts individually, and the
background thread used to do:

    loop {
        let account = receiver.recv();
        account.hash();
        // go back to sleep in recv()
    }

Because most accounts are small and hashing them is very fast, the
background thread used to sleep a lot, and required many syscalls from
the sender in order to be woken up.

Batching reduces the number of syscalls.
jeffwashington and others added 28 commits April 29, 2024 11:52
Outside of gossip, LegacyContactInfo is only used in some deprecated
requests in repair service. Since these repair requests are no longer
used and in order to fully deprecate LegacyContactInfo, this commit
removes instances of LegacyContactInfo from repair service.

The commit also strips all fields from RepairProtocol::Legacy... enum
variants because we only need the enum identifier for backward
compatibility.
* Unignore test

* Don't extend program accounts by default on test that expects them not to
* Flip no_extend to auto_extend

* Apply suggestions from code review

Co-authored-by: Joe C <[email protected]>

---------

Co-authored-by: Joe C <[email protected]>
…abs#1084)

* rename submodule `fee` with `percentage_with_cap`

* rename `FeeSigmaProof` type to `PercentageWithCapProof`

* rename `FeeMaxProof` and `FeeEqualityProof` with `PercentageMaxProof` and `PercentageEqualityProof`

* remove `fee` from the variable names

* remove `fee` from function names

* rename `FeeSigmaProofVerificationError` to `PercentageWithCapVerificationError`

* flatten out function arguments

* update docs/comments

* update test names

* clippy
replace use of `all_accounts`
…1089)

LegacyContactInfo is deprecated and no longer used outside of the
gossip crate.
The commit removes LegacyContactInfo from the public interface.
remove `accounts()` and `all_accounts()`
…1128)

The new contact-info embeds client version and can be used directly to
lookup the client version.
@buffalojoec buffalojoec force-pushed the syscall-get-epoch-stake branch from 767e418 to 66d1534 Compare May 1, 2024 00:22
@buffalojoec buffalojoec closed this May 8, 2024
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.