#### Problem
The current naming and the code comments for HOT_ACCOUNT_OFFSET_ALIGNMENT
aren't really reflecting its role as pointed out in #34335.
#### Summary of Changes
This PR renames HOT_ACCOUNT_OFFSET_ALIGNMENT to HOT_ACCOUNT_ALIGNMENT
as it's the hot account instead of hot account offset needs to be aligned.
In addition, improve the comment block for HOT_ACCOUNT_ALIGNMENT.
#### Problem
Hot and cold accounts storage have different implementations of
their offsets. As a result, a single struct AccountOffset isn't suitable
to describe the offsets used by hot and cold accounts storage.
#### Summary of Changes
This PR makes AccountOffset a trait. On top of that, introduces
HotAccountOffset that implements AccountOffset.
#### Test Plan
Updated existing unit-tests.
* tune ancient append vec size to 130M
* fix a test and get rid of the assert since it is covered in the test
* use 128M
* assert max append vec size for ancient append vec
---------
Co-authored-by: HaoranYi <haoran.yi@solana.com>
* feat: moved common docs to repo
* refactor: removed sidebar items
* refactor: removed unused images
* fix: terminology link
* fix: introduction links
* fix: developing links
* refactor: fixed assorted links
* fix: added back the home index
* refactor: home page links
* refactor: primary links
* fix: links
* fix: updated existing redirects
* feat: added new redirects
* refactor: moved cli index file to cli folder
* feat: turned breadcrumbs on
* feat: auto generated cli sidebar
* refactor: page titles
* feat: added usage and wallets categories
* refactor: moved wallet-guide/cli
* style: page titles
* refactor: renamed file to install
* style: page title
* refactor: relocated file to cli/usage/index.md
* style: page title
* refactor: relocat detailed usage generator for cli commands
* refactor: relocated clie usage files
* refactor: relocated paper wallet file
* refactor: relocated file system wallet doc
* feat: added hardware wallet category
* refactor: relocated hardware wallet overview
* refactor: relocated ledger wallet doc
* style: clie wallet titles
* refactor(revert): relocated cli usage doc
* refactor: relocated to examples
* style: cli examples category title
* style: usage doc title
* refactor: relocated cli intro doc
* style: category title
* refactor: renamed file
* refactor: renamed file
* fix: cli links
* refactor: relocated file
* refactor: relocated files
* fix: more cli links
* refactor: sidebar order
* fix: final cli links?
* refactor: proposals
* refactor: split sidebars
* refactor: removed unused icons
* refactor: relocated file
* refactor: relocated file
* refactor: relocated file
* refactor: relocated file
* feat: added architecture page
* refactor: reloacted filed
* refactor: adjusted header links
* style: sidebar labels
* feat: clusters sidebar details
* style: sidebar label
* refactor: relocate file
* refactor: relocated files
* refactor: relocated files
* refactor: relocated files
* style: validator sidebar
* style: sidebar styles
* refactor: internal links
* style: sidebar order
* fix: internal links
* feat: master sidebar
* refactor: removed unneeded h2
* fix: link redirects
* refactor: relocated pages
* style: runtime links
* refactor: simplified runtime redirects
* fix: internal redirect
* refactor: moved proposals to dropdown
* docs: Removes accounts-on-ramdisk section (#33655)
* RPC: update websocket docs (#33460)
* [rpc]: update websocket docs
* rename rewards to showRewards
* add remaining optional fields for slotsUpdates
* update block subscription showRewards
* Change getHealth to compare optimistically confirmed slots (#33651)
The current getHealth mechanism checks a local accounts hash slot vs.
those of other nodes as specified by --known-validator. This is a
very coarse comparison given that the default for this value is 100
slots. More so, any nodes using a value larger than the default
(ie --incremental-snapshot-interval 500) will likely see getHealth
return status behind at some point.
Change the underlying mechanism of how health is computed. Instead of
using the accounts hash slots published in gossip, use the latest
optimistically confirmed slot from the cluster. Even when a node is
behind, it is able to observe cluster optimistically confirmed by slots
by viewing votes published in gossip.
Thus, the latest cluster optimistically confirmed slot can be compared
against the latest optimistically confirmed bank from replay to
determine health. This new comparison is much more granular, and not
needing to depend on individual known validators is also a plus.
* build(deps): bump @babel/traverse from 7.19.6 to 7.23.2 in /docs (#33726)
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.19.6 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)
---
updated-dependencies:
- dependency-name: "@babel/traverse"
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs: move rpc info to rpc docs (#33723)
docs: link fixes
docs: link fixes
docs: link fixes
* Fix typos in documentation for Secp256k1 native program (#33796)
* docs: outline requirement of stake in order to vote (#33842)
* docs: outline requirement of stake in order to vote
* pr feedback: move stake section up
* chore: fix some typos (#33833)
* fix spelling of "retrieved"
* fix spelling of "should"
* fix spelling of "comparisons"
* docs: updating apt install to apt upgrade (#33920)
* Fix some typo in the documentation (#34058)
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
* fix: internal links
* refactor: removed rpc api docs
* refactor: removed rpc sidebar
* fix: updated remaining rpc api links
* refactor: removed final rpc /api route
* refactor: removed dangling component files
* refactor: changed copyright
* fix: dangling ordered list
* refactor: wording around solana docs
* feat: home page content
* refactor: updated docs url
* Link to latest version of the off-chain message signing proposal in the docs (#34329)
* docs: (cli) minor updates to deploy-a-program.md (#34307)
* docs: (cli) minor updates to deploy-a-program.md
* address review comments
* remove unnecessary impl details from the docs about deploy command upgrade flow
* clarify program redeploy section
---------
Co-authored-by: norwnd <norwnd>
* refactor: removed GA
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Brooks <brooks@solana.com>
Co-authored-by: Joe C <joe.caulfield@solana.com>
Co-authored-by: steviez <steven@solana.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jacob Creech <82475023+jacobcreech@users.noreply.github.com>
Co-authored-by: Nick Guo <1387955+nickguo@users.noreply.github.com>
Co-authored-by: Ashwin Sekar <ashwin@solana.com>
Co-authored-by: Kevin Heavey <24635973+kevinheavey@users.noreply.github.com>
Co-authored-by: Max Kaplan <max@maxkaplan.me>
Co-authored-by: hugo-syn <61210734+hugo-syn@users.noreply.github.com>
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
Co-authored-by: norwnd <112318969+norwnd@users.noreply.github.com>
* ci: Test anchor-spl during downstream build
* Also test anchor-client
* Update scripts/build-downstream-anchor-projects.sh
Co-authored-by: acheron <98934430+acheroncrypto@users.noreply.github.com>
* Specify features to use in build-sbf
---------
Co-authored-by: acheron <98934430+acheroncrypto@users.noreply.github.com>
* Add allow_commission_decrease_at_any_time feature which will allow
vote account commission to be lowered at any time during the epoch
regardless of the commission_updates_only_allowed_in_first_half_of_epoch
feature. Fixes#33843.
SIMD: 0080
* Remove unused `feature_set` import
---------
Co-authored-by: Jon Cinque <me@jonc.dev>
* Add checks to decide which SDK crate to use
* Make module only available in non-program environments
* Remove `solana-sdk` export and only export from `solana-program`
* Removes retain() from prune_by_deployment_slot() as that is covered in remove_programs_with_no_entries() already.
* Removes remove_programs_with_no_entries() from sort_and_unload().
* Fixes ix_usage_counter in LoadedProgram::to_unloaded().
* Fixes doc comment of LoadedProgram::ix_usage_counter.
* Removes unused num_total_programs from test_eviction().
* Replaces .as_ref() in lambda with std::option::Option::as_ref.
* Replaces .for_each() with a for-loop.
* Uses .retain() instead of iter().filter().cloned().collect().
Allow loading the plugin name from the json config file as opposed to use plugin.name which is called before config file is passed to it. Allowing different plugins using the same executable to use different names.
Waiting on receiver.recv() can unnecessarily block while the connection is already closed.
The commit exits send_datagram_task if the connection is closed.
* ancient append vec append creates big enough ancient append vecs
* assert we write the correct # of bytes
* fix tests
* u64 align accounts bytes written
* fix build
* add tests
* we don't need to align the store to u64.
When we call `remaining_bytes` to calculate, for the last element, u64_align!(len) could be greater than capacity. However, because saturate_sub is used, we still get the correct answer of 0. Therefore, no need to align the storage to u64.
* add comments
* add shink test for min_size
* remove dead code
* fix build
* reviews
* add test for squash ancient vec overflow too much to fit into ideal av
* add test for get_bytes on AccountToStore
* clippy
* modify test to assert 0 size of opposite
---------
Co-authored-by: HaoranYi <haoran.yi@solana.com>