Problem
Validators fall behind the network when bogged down by heavy RPC load. This
seems to be due to a combination of CPU load and lock contention caused by
serving RPC requests. The most expensive RPC requests involve account scans.
Summary of Changes
The AccountsDb replication design proposal is described.
* Add proposal for supporting big transactions
* account index program
* fix formatting
* review feedback
* Add cost changes section
* Add cost section and more attack details
* fix lint
* document metadata changes
* nit
* rpc details
* add index meta struct
* add additional proposal and chagne title
* rename proposal file
* rename to address map and rewrite tx format
* no more appends, limit mapping size to 256
* update dos section
* add note about readonly
* restructure message to use enum
* cleanup
* Deprecate commitment variants
* Add new CommitmentConfig builders
* Add helpers to avoid allowing deprecated variants
* Remove deprecated transaction-status code
* Include new commitment variants in runtime commitment; allow deprecated as long as old variants persist
* Remove deprecated banks code
* Remove deprecated variants in core; allow deprecated in rpc/rpc-subscriptions for now
* Heavier hand with rpc/rpc-subscription commitment
* Remove deprecated variants from local-cluster
* Remove deprecated variants from various tools
* Remove deprecated variants from validator
* Update docs
* Remove deprecated client code
* Add new variants to cli; remove deprecated variants as possible
* Don't send new commitment variants to old clusters
* Retain deprecated method in test_validator_saves_tower
* Fix clippy matches! suggestion for BPF solana-sdk legacy compile test
* Refactor node version check to handle commitment variants and transaction encoding
* Hide deprecated variants from cli help
* Add cli App comments
* fix: ignore unknown fields in more RPC responses
* Remove mdbook infrastructure
* Delete gitattributes and other theme related items
Move all docs to /docs folder to support Docusaurus
* all docs need to be moved to /docs
* can be changed in the future
Add Docusaurus infrastructure
* initialize docusaurus repo
Remove trailing whitespace, add support for eslint
Change Docusaurus configuration to support `src`
* No need to rename the folder! Change a setting and we're all good to
go.
* Fixing rebase items
* Remove unneccessary markdown file, fix type
* Some fonts are hard to read. Others, not so much. Rubik, you've been
sidelined. Roboto, into the limelight!
* As much as we all love tutorials, I think we all can navigate around a
markdown file. Say goodbye, `mdx.md`.
* Setup deployment infrastructure
* Move docs job from buildkite to travic
* Fix travis config
* Add vercel token to travis config
* Only deploy docs after merge
* Docker rust env
* Revert "Docker rust env"
This reverts commit f84bc208e807aab1c0d97c7588bbfada1fedfa7c.
* Build CLI usage from docker
* Pacify shellcheck
* Run job on PR and new commits for publication
* Update README
* Fix svg image building
* shellcheck
Co-authored-by: Michael Vines <mvines@gmail.com>
Co-authored-by: Ryan Shea <rmshea@users.noreply.github.com>
Co-authored-by: publish-docs.sh <maintainers@solana.com>
* Add design proposal for ProgramInstruction procedural macro
* Update examples and some verbiage
* More constant-like
* Generated helpers expect Pubkey by value