diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3f4918fd7f..4a64afe79e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -250,20 +250,12 @@ confused with 3-letter acronyms. ## Design Proposals -Solana's architecture is described by docs generated from markdown files in -the `docs/src/` directory, maintained by an *editor* (currently @garious). To -add a design proposal, you'll need to include it in the -[Accepted Design Proposals](https://docs.solana.com/proposals/accepted-design-proposals) -section of the Solana docs. Here's the full process: +Solana's architecture is described by docs generated from markdown files in the `docs/src/` +directory and viewable on the official [Solana Documentation](https://docs.solana.com) website. -1. Propose a design by creating a PR that adds a markdown document to the - `docs/src/proposals` directory and references it from the [table of - contents](docs/src/SUMMARY.md). Add any relevant *maintainers* to the PR - review. -2. The PR being merged indicates your proposed change was accepted and that the - maintainers support your plan of attack. -3. Submit PRs that implement the proposal. When the implementation reveals the - need for tweaks to the proposal, be sure to update the proposal and have that - change reviewed by the same people as in step 1. -4. Once the implementation is complete, submit a PR that moves the link from - the Accepted Proposals to the Implemented Proposals section. +Current design proposals may be viewed on the docs site: + +1. [Accepted Proposals](https://docs.solana.com/proposals/accepted-design-proposals.md). +2. [Implemented Proposals](https://docs.solana.com/implemented-proposals/implemented-proposals.md) + +New design proposals should follow this guide on [how to submit a design proposal](./docs/src/proposals.md#submit-a-design-proposal). \ No newline at end of file diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 0735f62839..fd7bdac977 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -53,42 +53,62 @@ module.exports = { }, items: [ { - href: "https://spl.solana.com", - label: "Program Library »", - position: "left", - }, - { - to: "developing/programming-model/overview", - label: "Develop", - position: "left", - }, - { - to: "running-validator", - label: "Validate", - position: "left", - }, - { - to: "integrations/exchange", - label: "Integrate", + to: "introduction", + label: "Learn", position: "left", }, { to: "cluster/overview", - label: "Learn", + label: "Architecture", position: "left", }, + { + to: "cli", + label: "CLI", + position: "left", + }, + { + to: "developing/programming-model/overview", + label: "Developers", + position: "left", + }, + { + to: "running-validator", + label: "Validators", + position: "left", + }, + { + label: "More", + position: "left", + items: [ + { label: "Terminology", to: "terminology" }, + { label: "Staking", to: "staking" }, + { label: "Integrations", to: "integrations/exchange" }, + { label: "Economics", to: "economics_overview" }, + { label: "Proposals", to: "proposals" }, + { + href: "https://spl.solana.com", + label: "Solana Program Library »", + position: "left", + }, + ], + }, { type: "localeDropdown", position: "right", }, { href: "https://discordapp.com/invite/pquxPsq", - label: "Chat", + // label: "Discord", + className: "header-link-icon header-discord-link", + "aria-label": "Solana Discord", position: "right", }, { href: "https://github.com/solana-labs/solana", - label: "GitHub", + // label: "GitHub", + className: "header-link-icon header-github-link", + "aria-label": "GitHub repository", position: "right", }, ], @@ -103,37 +123,69 @@ module.exports = { style: "dark", links: [ { - title: "Docs", + title: "Documentation", items: [ { - label: "Introduction", + label: "Learn", to: "introduction", }, + { + label: "Developers", + to: "developing/programming-model/overview", + }, + { + label: "Validators", + to: "running-validator", + }, + { + label: "Command Line", + to: "cli", + }, + { + label: "Architecture", + to: "cluster/overview", + }, ], }, { title: "Community", items: [ { - label: "Discord", + label: "Stack Exchange »", + href: "https://solana.stackexchange.com/", + }, + { + label: "GitHub »", + href: "https://github.com/solana-labs/solana", + }, + { + label: "Discord »", href: "https://discordapp.com/invite/pquxPsq", }, { - label: "Twitter", + label: "Twitter »", href: "https://twitter.com/solana", }, { - label: "Forums", + label: "Forums »", href: "https://forums.solana.com", }, ], }, { - title: "More", + title: "Resources", items: [ { - label: "GitHub", - href: "https://github.com/solana-labs/solana", + label: "Proposals", + to: "proposals", + }, + { + label: "Integrations", + to: "integrations/exchange", + }, + { + href: "https://spl.solana.com", + label: "Solana Program Library »", }, ], }, diff --git a/docs/sidebars.js b/docs/sidebars.js index 904bcb8f15..190db55d9c 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -1,203 +1,307 @@ module.exports = { - docs: { - About: ["introduction", "terminology", "history"], - Wallets: [ - "wallet-guide", - { - type: "category", - label: "Command-line Wallets", - items: [ - "wallet-guide/cli", - "wallet-guide/paper-wallet", - { - type: "category", - label: "Hardware Wallets", - items: [ - "wallet-guide/hardware-wallets", - "wallet-guide/hardware-wallets/ledger", - ], - }, - "wallet-guide/file-system-wallet", - ], - }, - "wallet-guide/support", - ], - Staking: ["staking", "staking/stake-accounts"], - "Command Line": [ - "cli", - "cli/install-solana-cli-tools", - "cli/conventions", - "cli/choose-a-cluster", - "cli/transfer-tokens", - "cli/delegate-stake", - "cli/deploy-a-program", - "offline-signing", - "offline-signing/durable-nonce", - "cli/usage", - ], - Developing: [ - { - type: "category", - label: "Programming Model", - items: [ - "developing/programming-model/overview", - "developing/programming-model/transactions", - "developing/programming-model/accounts", - "developing/programming-model/runtime", - "developing/programming-model/calling-between-programs", - ], - }, - { - type: "category", - label: "Clients", - items: [ - "developing/clients/jsonrpc-api", - "developing/clients/javascript-api", - "developing/clients/javascript-reference", - "developing/clients/rust-api", - ], - }, - { - type: "category", - label: "Runtime Facilities", - items: [ - "developing/runtime-facilities/programs", - "developing/runtime-facilities/sysvars", - ], - }, - { - type: "category", - label: "On-chain Programs", - items: [ - "developing/on-chain-programs/overview", - "developing/on-chain-programs/developing-rust", - "developing/on-chain-programs/developing-c", - "developing/on-chain-programs/deploying", - "developing/on-chain-programs/debugging", - "developing/on-chain-programs/examples", - "developing/on-chain-programs/faq", - ], - }, - "developing/test-validator", - "developing/backwards-compatibility", - "developing/plugins/geyser-plugins", - ], - Integrating: [ - "integrations/exchange", - "integrations/retrying-transactions", - ], - Validating: [ - "running-validator", - "running-validator/validator-reqs", - "running-validator/validator-start", - "running-validator/vote-accounts", - "running-validator/validator-stake", - "running-validator/validator-monitor", - "running-validator/validator-info", - "running-validator/validator-failover", - "running-validator/validator-troubleshoot", - ], - Clusters: [ - "clusters", - "cluster/rpc-endpoints", - "cluster/bench-tps", - "cluster/performance-metrics", - ], - Architecture: [ - { - type: "category", - label: "Cluster", - items: [ - "cluster/overview", - "cluster/synchronization", - "cluster/leader-rotation", - "cluster/fork-generation", - "cluster/managing-forks", - "cluster/turbine-block-propagation", - "cluster/vote-signing", - "cluster/stake-delegation-and-rewards", - ], - }, - { - type: "category", - label: "Validator", - items: [ - "validator/anatomy", - "validator/tpu", - "validator/tvu", - "validator/blockstore", - "validator/gossip", - "validator/runtime", - ], - }, - ], - Economics: [ - "economics_overview", - { - type: "category", - label: "Inflation Design", - items: [ - "inflation/terminology", - "inflation/inflation_schedule", - "inflation/adjusted_staking_yield", - ], - }, - "transaction_fees", - "storage_rent_economics", - ], - "Design Proposals": [ - { - type: "category", - label: "Implemented", - items: [ - "implemented-proposals/implemented-proposals", - "implemented-proposals/abi-management", - "implemented-proposals/bank-timestamp-correction", - "implemented-proposals/commitment", - "implemented-proposals/durable-tx-nonces", - "implemented-proposals/installer", - "implemented-proposals/instruction_introspection", - "implemented-proposals/leader-leader-transition", - "implemented-proposals/leader-validator-transition", - "implemented-proposals/persistent-account-storage", - "implemented-proposals/readonly-accounts", - "implemented-proposals/reliable-vote-transmission", - "implemented-proposals/rent", - "implemented-proposals/repair-service", - "implemented-proposals/rpc-transaction-history", - "implemented-proposals/snapshot-verification", - "implemented-proposals/staking-rewards", - "implemented-proposals/testing-programs", - "implemented-proposals/tower-bft", - "implemented-proposals/transaction-fees", - "implemented-proposals/validator-timestamp-oracle", - ], - }, - { - type: "category", - label: "Accepted", - items: [ - "proposals/accepted-design-proposals", - "proposals/bankless-leader", - "proposals/block-confirmation", - "proposals/cluster-test-framework", - "proposals/embedding-move", - "proposals/handle-duplicate-block", - "proposals/interchain-transaction-verification", - "proposals/ledger-replication-to-implement", - "proposals/optimistic-confirmation-and-slashing", - "proposals/optimistic_confirmation", - "proposals/rip-curl", - "proposals/rust-clients", - "proposals/simple-payment-and-state-verification", - "proposals/slashing", - "proposals/snapshot-verification", - "proposals/tick-verification", - "proposals/transactions-v2", - "proposals/validator-proposal", - "proposals/vote-signing-to-implement", - ], - }, - ], - }, + introdutionSidebar: [ + { + type: "category", + collapsed: false, + label: "Introduction to Solana", + items: [ + { + type: "doc", + id: "introduction", + label: "What is Solana?", + }, + // This will be the future home for the economics overview page + // { + // type: "doc", + // id: "economics_overview", + // label: "How do the economics work?", + // }, + { + type: "doc", + id: "history", + label: "History of Solana", + }, + ], + }, + { + type: "category", + collapsed: false, + label: "Getting started with Solana", + items: [ + { + type: "doc", + id: "wallet-guide", + label: "Wallets", + }, + // This will be the future home of the `staking` page, with the introductory info on what staking on Solana looks like + // { + // type: "doc", + // id: "staking", + // label: "Staking", + // }, + ], + }, + { + type: "category", + collapsed: false, + label: "Dive into Solana", + items: [ + "terminology", + { + type: "ref", + label: "Developers", + id: "developing/programming-model/overview", + }, + { + type: "ref", + label: "Validators", + id: "running-validator", + }, + { + type: "ref", + label: "Command Line", + id: "cli", + }, + { + type: "ref", + label: "Economics", + id: "economics_overview", + }, + { + type: "ref", + label: "Proposals", + id: "proposals", + }, + ], + }, + ], + developingSidebar: [ + { + type: "doc", + id: "developing/programming-model/overview", + label: "Overview", + }, + { + type: "category", + label: "Core Concepts", + // collapsed: false, + items: [ + "developing/programming-model/transactions", + "developing/programming-model/accounts", + "developing/programming-model/calling-between-programs", + "developing/programming-model/runtime", + ], + }, + { + type: "category", + label: "Clients", + items: [ + "developing/clients/jsonrpc-api", + "developing/clients/javascript-api", + "developing/clients/javascript-reference", + "developing/clients/rust-api", + ], + }, + { + type: "category", + label: "Writing Programs", + items: [ + "developing/on-chain-programs/overview", + "developing/on-chain-programs/developing-rust", + "developing/on-chain-programs/developing-c", + { + type: "doc", + label: "Deploying", + id: "developing/on-chain-programs/deploying", + }, + { + type: "doc", + label: "Debugging", + id: "developing/on-chain-programs/debugging", + }, + "developing/on-chain-programs/examples", + "developing/on-chain-programs/faq", + ], + }, + { + type: "category", + label: "Native Programs", + items: [ + { + type: "doc", + label: "Overview", + id: "developing/runtime-facilities/programs", + }, + "developing/runtime-facilities/sysvars", + ], + }, + { + type: "category", + label: "Local Development", + collapsed: false, + items: ["developing/test-validator"], + }, + "developing/backwards-compatibility", + ], + validatorsSidebar: [ + "running-validator", + { + type: "category", + label: "Getting Started", + collapsed: false, + items: ["running-validator/validator-reqs"], + }, + { + type: "category", + label: "Voting Setup", + collapsed: false, + items: [ + "running-validator/validator-start", + "running-validator/vote-accounts", + "running-validator/validator-stake", + "running-validator/validator-monitor", + "running-validator/validator-info", + "running-validator/validator-failover", + "running-validator/validator-troubleshoot", + ], + }, + { + type: "category", + label: "Geyser", + collapsed: false, + items: ["developing/plugins/geyser-plugins"], + }, + ], + cliSidebar: [ + "cli", + "cli/install-solana-cli-tools", + "cli/install-solana-cli-tools", + { + type: "category", + label: "Command-line Wallets", + items: [ + "wallet-guide/cli", + "wallet-guide/paper-wallet", + { + type: "category", + label: "Hardware Wallets", + items: [ + "wallet-guide/hardware-wallets", + "wallet-guide/hardware-wallets/ledger", + ], + }, + "wallet-guide/file-system-wallet", + "wallet-guide/support", + ], + }, + "cli/conventions", + "cli/choose-a-cluster", + "cli/transfer-tokens", + "cli/delegate-stake", + "cli/deploy-a-program", + "offline-signing", + "offline-signing/durable-nonce", + "cli/usage", + ], + architectureSidebar: [ + { + type: "doc", + label: "What is a Solana Cluster?", + id: "cluster/overview", + }, + { + type: "category", + label: "Clusters", + collapsed: false, + items: [ + "clusters", + { + type: "doc", + label: "RPC Endpoints", + id: "cluster/rpc-endpoints", + }, + "cluster/bench-tps", + "cluster/performance-metrics", + ], + }, + { + type: "category", + label: "Consensus", + collapsed: false, + items: [ + "cluster/synchronization", + "cluster/leader-rotation", + "cluster/fork-generation", + "cluster/managing-forks", + "cluster/turbine-block-propagation", + "cluster/vote-signing", + "cluster/stake-delegation-and-rewards", + ], + }, + { + type: "category", + label: "Validators", + collapsed: false, + items: [ + { + type: "doc", + label: "Overview", + id: "validator/anatomy", + }, + "validator/tpu", + "validator/tvu", + "validator/blockstore", + "validator/gossip", + "validator/runtime", + ], + }, + ], + "Design Proposals": [ + "proposals", + { + type: "category", + label: "Accepted Proposals", + collapsed: true, + items: [ + { + type: "autogenerated", + dirName: "proposals", + }, + ], + }, + { + type: "category", + label: "Implemented Proposals", + collapsed: true, + items: [ + { + type: "autogenerated", + dirName: "implemented-proposals", + }, + ], + }, + ], + stakingSidebar: ["staking", "staking/stake-accounts"], + integratingSidebar: [ + "integrations/exchange", + "integrations/retrying-transactions", + ], + economicsSidebar: [ + { + type: "doc", + id: "economics_overview", + // label: "How do the economics work?", + }, + { + type: "category", + label: "Inflation Design", + items: [ + "inflation/terminology", + "inflation/inflation_schedule", + "inflation/adjusted_staking_yield", + ], + }, + "transaction_fees", + "storage_rent_economics", + ], }; diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 39cf391344..4a3ff08fd4 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -7,7 +7,7 @@ /* You can override the default Infima variables here. */ -@import url('https://fonts.googleapis.com/css2?family=Roboto'); +@import url("https://fonts.googleapis.com/css2?family=Roboto"); :root { --ifm-color-primary: #25c2a0; @@ -19,15 +19,18 @@ --ifm-color-primary-lightest: #abd5c6; --ifm-code-font-size: 95%; --ifm-spacing-horizontal: 1em; - --ifm-font-family-base: "Roboto", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; + --ifm-font-family-base: "Roboto", system-ui, -apple-system, Segoe UI, Roboto, + Ubuntu, Cantarell, Noto Sans, sans-serif, BlinkMacSystemFont, "Segoe UI", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", + "Segoe UI Symbol"; --ifm-footer-background-color: #232323; } - - - @keyframes fadeInUp { - 0% { opacity: 0; transform: translateY(1.5rem); } + 0% { + opacity: 0; + transform: translateY(1.5rem); + } } main { @@ -48,10 +51,9 @@ main { animation-delay: 150ms; transition-property: all; transition-duration: 200ms; - box-shadow: 0 8px 28px 4px rgba(86,91,115,0.15); + box-shadow: 0 8px 28px 4px rgba(86, 91, 115, 0.15); } - .card a { text-decoration: none; } @@ -69,5 +71,32 @@ footer .text--center { } .card__header h3 { - color: #1DD79B; -} \ No newline at end of file + color: #1dd79b; +} + +.header-link-icon:before { + content: ""; + display: flex; + height: 24px; + width: 24px; + background-position: center center; +} +.header-link-icon { + padding: 0.4em !important; +} +[data-theme="dark"] .header-github-link:before { + background: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") + no-repeat; +} +.header-github-link:before { + background: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") + no-repeat; +} +[data-theme="dark"] .header-discord-link:before { + background: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 640 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z'/%3E%3C/svg%3E") + no-repeat center; +} +.header-discord-link:before { + background: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 640 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z'/%3E%3C/svg%3E") + no-repeat center; +} diff --git a/docs/src/developing/on-chain-programs/debugging.md b/docs/src/developing/on-chain-programs/debugging.md index a9ded2bd31..d673ab23a3 100644 --- a/docs/src/developing/on-chain-programs/debugging.md +++ b/docs/src/developing/on-chain-programs/debugging.md @@ -1,5 +1,5 @@ --- -title: "Debugging" +title: "Debugging Programs" --- Solana programs run on-chain, so debugging them in the wild can be challenging. diff --git a/docs/src/developing/on-chain-programs/deploying.md b/docs/src/developing/on-chain-programs/deploying.md index 767d6d114b..852e8a195f 100644 --- a/docs/src/developing/on-chain-programs/deploying.md +++ b/docs/src/developing/on-chain-programs/deploying.md @@ -1,5 +1,5 @@ --- -title: "Deploying" +title: "Deploying Programs" --- ![SDK tools](/img/sdk-tools.svg) @@ -11,7 +11,7 @@ clients via a _program ID_. The program ID is an _address_ specified when deploying and is used to reference the program in subsequent transactions. Upon a successful deployment the account that holds the program is marked -executable. If the program is marked "final", its account data become permanently +executable. If the program is marked "final", its account data become permanently immutable. If any changes are required to the finalized program (features, patches, etc...) the new program must be deployed to a new program ID. diff --git a/docs/src/developing/on-chain-programs/examples.md b/docs/src/developing/on-chain-programs/examples.md index d1d6adb4b0..ef07c7b8b4 100644 --- a/docs/src/developing/on-chain-programs/examples.md +++ b/docs/src/developing/on-chain-programs/examples.md @@ -1,5 +1,5 @@ --- -title: "Examples" +title: "Program Examples" --- ## Helloworld diff --git a/docs/src/implemented-proposals/implemented-proposals.md b/docs/src/implemented-proposals/implemented-proposals.md index 52ecd71ee3..5dd1bc16fe 100644 --- a/docs/src/implemented-proposals/implemented-proposals.md +++ b/docs/src/implemented-proposals/implemented-proposals.md @@ -1,9 +1,15 @@ --- title: Implemented Design Proposals +sidebar_position: 1 +sidebar_label: Overview --- -The following architectural proposals have been accepted and implemented -by the Solana team. Any designs that may be subject to future change are noted -in the specific proposal page. -Design proposals that have been accepted but not yet implemented are found in -[Accepted Proposals](../proposals/accepted-design-proposals.md). +These architectural proposals have been accepted and implemented by the Solana maintainers. Any designs that may be subject to future change are noted in the specific proposal page. + +## Not Yet Implemented + +Design proposals that have been accepted but not yet implemented are found in [Accepted Proposals](../proposals/accepted-design-proposals.md). + +## Submit a New Proposal + +To submit a new design proposal, consult this guide on [how to submit a design proposal](../proposals.md#submit-a-design-proposal). diff --git a/docs/src/pages/index.js b/docs/src/pages/index.js index ebf7b60a7a..4c6d4b98f8 100644 --- a/docs/src/pages/index.js +++ b/docs/src/pages/index.js @@ -26,7 +26,7 @@ function Home() {

- ⛏ Start Building + ⛏ Start Developing

@@ -34,7 +34,7 @@ function Home() {

Get started building your decentralized app or - marketplace. + marketplace with Solana.

@@ -129,7 +129,7 @@ function Home() {
- +

diff --git a/docs/src/proposals.md b/docs/src/proposals.md new file mode 100644 index 0000000000..d2a6e9a325 --- /dev/null +++ b/docs/src/proposals.md @@ -0,0 +1,49 @@ +--- +title: System Design Proposals +--- + +Changes to the Solana architecture are performed through a public proposal process (via pull requests) on the [Solana GitHub repository](https://github.com/solana-labs/solana). New proposals should be submitted with the "[Submit a Design Proposal](#submit-a-design-proposal)" guide below. + +There are currently two different states of these design proposals: + +1. [Accepted Proposals](./proposals/accepted-design-proposals.md) +2. [Implemented Proposals](./implemented-proposals/implemented-proposals.md) + +## Accepted Proposals + +These architectural proposals have been accepted by the Solana team, but are not yet fully implemented. + +Each proposal may be implemented as described, implemented differently as issues in the designs become evident, or not implemented at all. If implemented, the proposal will be moved to [Implemented Proposals](./implemented-proposals/implemented-proposals.md) and the details will be added to relevant sections of the docs. + +## Implemented Proposals + +These architectural proposals have been accepted and implemented by the Solana team. + +Any designs that may be subject to future change are noted in their specific proposal page. + +## Submit a Design Proposal + +To submit a new design proposal for Solana: + +1. Propose a design by creating a PR that adds a markdown document to the `docs/src/proposals` directory. +2. Add any relevant Solana maintainers to the PR review. +3. Publish the PR for community review and feedback. + +> **NOTE:** All people submitting PRs to the Solana repo should consult the [CONTRIBUTING](https://github.com/solana-labs/solana/blob/master/CONTRIBUTING.md) doc in the repo. + +### After Accepted + +Once a design proposal has been accepted, the PR will be merged into the `master` branch of the Solana repo. This also signifies the maintainers support your plan of attack. + +> **NOTE:** The merging of the PR will **automatically** create a link in the "Accepted Proposals" table of contents sidebar. +> Once approved, continue to submit PRs that implement the proposal. When the implementation reveals the need for tweaks to the proposal, be sure to update the "accepted proposal" document and have these change reviewed by the same approving maintainers. + +### After Implemented + +After a proposal has been fully implemented into the Solana architecture, a PR should be created to perform the following: + +1. Move the newly implemented proposal file from `docs/src/proposals` to `docs/src/implemented-proposals` +2. Create a new redirect in the `publish-docs.sh` to redirect the old `accepted` proposal page to the new `implemented-proposal` page +3. Publish the PR + +> **NOTE:** Moving the proposal document into the `implemented-proposals` directory will **automatically** move the link in the "Accepted Proposals" table of contents sidebar to the "Implemented Proposals" sidebar. diff --git a/docs/src/proposals/accepted-design-proposals.md b/docs/src/proposals/accepted-design-proposals.md index 98f197da4e..e2145d26b6 100644 --- a/docs/src/proposals/accepted-design-proposals.md +++ b/docs/src/proposals/accepted-design-proposals.md @@ -1,11 +1,15 @@ --- title: Accepted Design Proposals +sidebar_position: 1 +sidebar_label: Overview --- -The following architectural proposals have been accepted by the Solana team, -but are not yet fully implemented. -The proposals may be implemented as described, implemented differently as -issues in the designs become evident, or not implemented at all. -If implemented, the proposal will be moved to -[Implemented Proposals](../implemented-proposals/implemented-proposals.md) -and the details will be added to relevant sections of the docs. +These architectural proposals have been accepted by the Solana maintainers, but are not yet fully implemented. These proposals may be implemented as described, implemented differently as issues in the designs become evident, or not implemented at all. + +## After Implemented + +Once a proposal has been implemented, it will be moved to [Implemented Proposals](../implemented-proposals/implemented-proposals.md) and the details will be added to relevant sections of the docs. + +## Submit a New Proposal + +To submit a new design proposal, consult this guide on [how to submit a design proposal](../proposals.md#submit-a-design-proposal).