From 295c3a62d048005521af4332d886e295c02c1953 Mon Sep 17 00:00:00 2001 From: Elliot Voris Date: Fri, 15 Mar 2024 11:17:55 -0500 Subject: [PATCH] [Soroban Merge] Create a "Reference" section (#364) * Add release notes (#232) * Update Examples, SDK and CLI v0.2.1 * Pin docker image * Add release notes * preview 3 start * fix * fix nums * link * FutureNet => Futurenet * add core and horizon versions * Revert "Add release notes (#232)" (#233) This reverts commit 1823544f34c529463ba50fc3fe13b0a2fda89b19. * Add release notes (#234) * Update version of SDK (#236) * Update versions of software (#240) * Remove "Preview" from releases page title * Update chanelogs * Update soroban-rpc version * Update Friendbot version * updated quickstart image sha (#241) * Add changelog notes about XDR * Add changelog notes about env * Add other changelogs * Add contributors * Next Release Dev Branch (#231) * Fix links to contributors * Add js-stellar-base and js-soroban-client versions to release notes (#242) * Reorder the nav bar (#244) * Update Examples, SDK and CLI v0.2.1 * Pin docker image * Add release notes (#234) * Rename and move releases page * reorder EVERYTHING * reorder Learn between Examples and SDKs * update wallet position Co-authored-by: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> * Update the release notes (#246) * Update the release notes * Update docs/releases.mdx Co-authored-by: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> * Update release versions for upcoming release (#259) * initial ver * update * update * update * Update release page * Support arm64 images in docs for quickstart (#274) * update all admonitions such that prettier doesn't yell * Lots of formatting * Reorg (#290) * Change SDK section to Reference section * Adding JS SDK to list of SDKs * Adding Overcat's Python SDK to list of SDKs * Moving Networks -> Futurenet to Reference section * Moving Releases to Reference section * Delete Networks from main nav Networks now lives under Reference section * Deleting as Releases now live in Reference section * Changing sidebar position Temporary, this will eventually move to How-To Guides * Update byo.mdx * Edited Quick Start to 1. Hello World Includes Tutorials -> Create a Project / Write a Contract / Test / Build / Run on Sandbox / Optimizing Builds * Move Storing Data from Examples to Getting Started * Move Deploy to Local Network to Getting Started Moved this section from Tutorials to Getting Started * Move Freighter wallet tutorial to Getting Started * Update and rename 6.-connect-Freighter-wallet.mdx to 4. Connect Freighter Wallet * Move Deploy to Futurenet to Getting Started * Rename 4. Connect Freighter Wallet to 4. Connect Freighter Wallet.mdx * Moved to Getting Started * Moved to Getting Started Removing this section * Moved to Getting Started Removing this as it has been moved to Getting Started * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * Moved to Getting Started Removing due to this section being moved * Update Examples to How-To Guides * Move BYO SDK to How-To Guides * Moved to How-To Guides * Moved invoking contracts with transactions to How-To Guides * Removing because it's moved to How-To Guides * Moved Token Interface to Token How-To Guide * Remove Token Interface Token Interface has been moved to How-To Guides -> Token * Move Stellar Asset Contract to How-To Guides * Delete docs/built-in-contracts directory Moved to How-To Guides * Move Stellar FAQs to Learn * Delete faq.mdx Moved to Learn * Update authorization.mdx Alphabetize sidebar * Update contract-lifecycle.mdx Alphabetizing sidebar * Update custom-types.mdx Alphabetizing sidebar * Update rust-dialect.mdx Alphabetizing sidebar * Update debugging.mdx Alphabetizing sidebar * Update environment-concepts.mdx Alphabetizing sidebar * Update errors.mdx Alphabetizing sidebar * Update events.mdx Alphabetizing sidebar * Update gas-and-metering.mdx Alphabetizing sidebar * Update interacting-with-contracts.mdx Alphabetizing sidebar * Update persisting-data.mdx Alphabetizing sidebar * Update high-level-overview.mdx Update spelling * formatting * formatting * formatting * formatting * Update faq.mdx * fixed broken links * fix broken links * fix broken links * moar link fixes * fixed some broken links * added sorobanathon homepage * add google tag manager * Content edits made * back to original * Content Edit * button location * Content & Eligibility guidelines added * Update sorobanathon.js * update all admonitions such that prettier doesn't yell * Lots of formatting * --prose-wrap preserve * Update releases.mdx * update prettier * fixed the callouts * formatting * fix module import * Update sorobanathon.js * Fixed Reorg PR Fixed links, moved sections, deleted double sections * Update index.js * Updating Sorobanathon Info * Fixed links Many links. * Formatting * Change SDK section to Reference section * Adding JS SDK to list of SDKs * Adding Overcat's Python SDK to list of SDKs * Moving Networks -> Futurenet to Reference section * Moving Releases to Reference section * Delete Networks from main nav Networks now lives under Reference section * Deleting as Releases now live in Reference section * Changing sidebar position Temporary, this will eventually move to How-To Guides * Update byo.mdx * formatting * fix broken links * Edited Quick Start to 1. Hello World Includes Tutorials -> Create a Project / Write a Contract / Test / Build / Run on Sandbox / Optimizing Builds * Move Storing Data from Examples to Getting Started * Move Deploy to Local Network to Getting Started Moved this section from Tutorials to Getting Started * Move Freighter wallet tutorial to Getting Started * Update and rename 6.-connect-Freighter-wallet.mdx to 4. Connect Freighter Wallet * Move Deploy to Futurenet to Getting Started * Rename 4. Connect Freighter Wallet to 4. Connect Freighter Wallet.mdx * Moved to Getting Started Removing this as it has been moved to Getting Started * Moved to Getting Started -> Hello World * Moved to Getting Started -> Hello World * formatting * fix broken links * moar link fixes * Update Examples to How-To Guides * Move BYO SDK to How-To Guides * Moved invoking contracts with transactions to How-To Guides * Moved Token Interface to Token How-To Guide * Remove Token Interface Token Interface has been moved to How-To Guides -> Token * Move Stellar Asset Contract to How-To Guides * Delete docs/built-in-contracts directory Moved to How-To Guides * formatting * fixed broken links * Move Stellar FAQs to Learn * Update authorization.mdx Alphabetize sidebar * Update contract-lifecycle.mdx Alphabetizing sidebar * Update custom-types.mdx Alphabetizing sidebar * Update rust-dialect.mdx Alphabetizing sidebar * Update debugging.mdx Alphabetizing sidebar * Update environment-concepts.mdx Alphabetizing sidebar * Update errors.mdx Alphabetizing sidebar * Update events.mdx Alphabetizing sidebar * Update gas-and-metering.mdx Alphabetizing sidebar * Update interacting-with-contracts.mdx Alphabetizing sidebar * Update persisting-data.mdx Alphabetizing sidebar * Update high-level-overview.mdx Update spelling * formatting * Update faq.mdx * fixed some broken links * Update releases.mdx * update prettier * fixed the callouts * formatting * fix module import * Fixed Reorg PR Fixed links, moved sections, deleted double sections * Fixed links Many links. * Formatting * Merge cleanup * More cleanup * Formatting * some small design tweaks * copy tweaks --------- Co-authored-by: Bri <92327786+briwylde08@users.noreply.github.com> Co-authored-by: Anuxhya <36203801+achallagundla@users.noreply.github.com> * Pre mainnet restructure (#644) * docs: rename "fundamentals and concepts" to "soroban internals" * docs: remove old "under the hood" section * docs: add tags to the various tutorials * docs: move tutorials into one main directory * fix broken links to old pages * docs: renaming soroban internals in category file * docs: remove old "command line reference" category * docs: add tokens directory, rearrange sidebars * docs: rearrange migration from evm guide * docs: remove unused reference/interfaces category * docs: move "reference" section to "resources" * docs: move "releases" page up a level * docs: move FAQ page up one level * docs: move dev tools into resources directory * docs: move testnet.mdx to networks.mdx * docs: rearrange items in resources directory * docs: collapse various SDK pages into two pages * docs: move data-providers up one level * docs: remove some empty categories, move the tutorial template * docs: add a new getting-started page, reorganize that section * docs: change sidebar position integers in soroban-internals * docs: shuffling contract interaction around in soroban-internals * style: fixing a couple small markdown nits in dapps directory * docs: fix a broken link * feat: start to the "guides" page(s) * style(lint): fixing a small linting error * remove guides placeholder * fixing broken links * work on guides listing. might revert this * formatting mdx * docs: fixing a broken link to tutorials * style: crack at making the tutorials filterable and hidden in the sidebar * customizing some components for the `/guides` pages and layouts * rename index page for guides to README * remove commented configuration option * remove some console logging in components * change name of index page in guides sidebar * remove commented sidebar generation code * remove comments and add description to sidebar generator * rename sidebar generator file * more work on how the 'guides' pages might look. * docs: adjusting sidebar positions of new getting started pages * fix some broken links in the getting-started section * prefer "README.mdx" files where possible * some more guides placeholder stubs * docs(guides): More placeholder stubs for guides and categories * feat: don't display "guides in category" page on `/guides` * build: check/fix MDX formatting in more directories than just docs * style: add a larger margin before more category guides * style: more selectively increase that top margin * docs(guides): a quick stab at a "publishing" events guide * docs(guides): first stab at the "publish events" guide * docs: updating tutorial descriptions * fix a few broken links * docs: add note about a tuple with one element * style: couple link changes and reformats * move fuzzing tutorial back * change to README file in contract interactions category * docs(guides): give a better title for the wasm metadata guide * fixing some broken markdown links * fix (another!) broken link * move the guides back into the main layout of the docs directory * add placeholder for testnet reset automation stuff * some initial content for some guides * markdown formatting and fixing broken links * moving "resources" back to "reference" to fit the definition better More like "technical reference" rather than a "reference encyclopedia" * change some styles of the tutorial list * removing most category pages * some more first-drafts of guides * fixing some category links * include a period at the end of each tutorial description * simplify tutorial search box placeholder text * better description for the tutorials page * making the pre-commit script executable * flesh out some of the state archival guides * first effort for some rpc ledger key guides * fix some broken links * add a guide on ingesting events into a db * first effort at storage type guides * Some more stubs, marking drafts, and a couple additions * make not a draft to fix a broken link * guides category descriptions in README.mdx files * marking incomplete chain migration docs as drafts * change some tutorial difficulty levels * fine-tune the tutorials component styling a bit * improving some guides organization * fix linting errors and broken links * include wrap instructions for native lumens * fix broken link in contract metadata guide * final changes to existing guides * moving developer tools into the main sidebar * create real redirects instead of just notes * fix broken links in a dapps challenge page * fix a redirect syntax error * fix a tutorials redirect * Add 20.1.0 section (#704) * Add 20.1.0 section * format * Update docs/releases.mdx Co-authored-by: George * Update docs/releases.mdx --------- Co-authored-by: George * use the docusaurus blog feature for meeting notes (#719) * use the docusaurus blog feature for meeting notes * tweak the meeting notes a bit --------- Co-authored-by: Tyler van der Hoeven * [Do Not Merge] Updates pending vote (#729) * update to the welcome page to reflect the live on Mainnet status * remove note about non-production software on networks page * add the link definition for the phased rollout * Add v20.2.0 release to `releases.mdx` (#737) * Update releases.mdx * use latest versions * add changelog * update title * Update resource limits and make a new reference page for them (#736) * add a reference page on resource limits and fees * remove resource fee/limit tables from "explainer" page * removing some unnecessary comments and entries Some of the comments are more applicable in the discussion doc, than they are for developer documentation. So, let's get rid of those. * remove unnecessary "current is..." language from resource fees * Update resource-limits-fees.mdx (#746) * Update resource-limits-fees.mdx Add context around the phased approach * formatting and linting --------- Co-authored-by: Elliot Voris * Create 2024-02-22.mdx (#748) * Create 2024-02-22.mdx * Update 2024-02-22.mdx * Create 2024-02-15.mdx (#750) * Create 2024-02-15.mdx * proper indents --------- Co-authored-by: Tyler van der Hoeven * Phase 1 updates to Soroban docs (#747) * Adding Mainnet to Networks section -Need help with Mainnet information for Horizon API, Validator, and History Archive -Also getting errors when clicking on Testnet and Futurenet History Archive links * Add Mainnet information to Block Explorers * Add Releases section for Phase 1 * put in version numbers for (most) software * add changelong for soroban rpc * add changelog for soroban cli * add mainnet passphrase to protocol 20 release notes * try another title for this version * remove unnecessary headings * update Horizon link for Mainnet * add resource limits and fees to releases page * shifting some things around in resource limits for phase 1 * use `TBD` for soroban react version placeholders * networks placeholders * add validator and history urls for Mainnet --------- Co-authored-by: Elliot Voris * replace a link for indexing services in a meeting notes post (#753) * rename "releases" page to "software versions" * format mdx in newly added pages * create a reference sidebar and add the navbar item * add navbar and sidebar links to meeting notes blog * fix some broken links * add fees disclaimer to resource page * updates to SDP Introduction * add phase 2 references * rollback commit that updated software version for phase 2 * correctly spell "position" so the meetings are actually on the right * Revert "add phase 2 references" This reverts commit b3e553f97c276477436b490a273be1f8be6954a2. * remove the extra "meeting notes" entry from reference sidebar * fix some broken links (just a couple this time!) * remove some old, commented-out entries from the `docs` sidebar * add some links * fix some soroban links to point to this site's pages --------- Co-authored-by: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> Co-authored-by: shawn Co-authored-by: Tyler van der Hoeven Co-authored-by: Jay Geng Co-authored-by: Siddharth Suresh Co-authored-by: Tsachi Herman <24438559+tsachiherman@users.noreply.github.com> Co-authored-by: Bri <92327786+briwylde08@users.noreply.github.com> Co-authored-by: Anuxhya <36203801+achallagundla@users.noreply.github.com> Co-authored-by: George Co-authored-by: Julian Martinez <73849597+Julian-dev28@users.noreply.github.com> Co-authored-by: Naman Kumar <330364+namankumar@users.noreply.github.com> Co-authored-by: Julian Martinez --- docs/learn/fundamentals/networks.mdx | 16 +- docs/learn/fundamentals/stellar-stack.mdx | 12 +- .../fees-and-metering.mdx | 6 +- docs/reference/networks.mdx | 24 + docs/reference/resource-limits-fees.mdx | 94 + docs/reference/software-versions.mdx | 1511 +++++++++++++++++ docusaurus.config.js | 21 +- meeting-notes/2024-01-18.mdx | 32 + meeting-notes/2024-01-26.mdx | 33 + meeting-notes/2024-02-01.mdx | 27 + meeting-notes/2024-02-09.mdx | 20 + meeting-notes/2024-02-15.mdx | 43 + meeting-notes/2024-02-22.mdx | 19 + meeting-notes/authors.yml | 10 + network/soroban-rpc/admin-guide.mdx | 12 +- network/soroban-rpc/rpc-providers.mdx | 2 +- .../stellar-disbursement-platform/README.mdx | 6 +- .../admin-guide/overview.mdx | 2 +- sidebars.js | 47 +- 19 files changed, 1867 insertions(+), 70 deletions(-) create mode 100644 docs/reference/networks.mdx create mode 100644 docs/reference/resource-limits-fees.mdx create mode 100644 docs/reference/software-versions.mdx create mode 100644 meeting-notes/2024-01-18.mdx create mode 100644 meeting-notes/2024-01-26.mdx create mode 100644 meeting-notes/2024-02-01.mdx create mode 100644 meeting-notes/2024-02-09.mdx create mode 100644 meeting-notes/2024-02-15.mdx create mode 100644 meeting-notes/2024-02-22.mdx create mode 100644 meeting-notes/authors.yml diff --git a/docs/learn/fundamentals/networks.mdx b/docs/learn/fundamentals/networks.mdx index 424432fa7..9b59bfdf1 100644 --- a/docs/learn/fundamentals/networks.mdx +++ b/docs/learn/fundamentals/networks.mdx @@ -10,11 +10,11 @@ Stellar has three networks: the public network (Mainnet, also called Pubnet or t ### Mainnet - Validator nodes are run by the public -- SDF offers a free [Horizon instance](https://horizon.stellar.org/) to interact with the Mainnet with a limited set of history, or you can [run your own](https://developers.stellar.org/docs/run-api-server) or use an instance offered by an infrastructure provider. +- SDF offers a free [Horizon instance](https://horizon.stellar.org/) to interact with the Mainnet with a limited set of history, or you can [run your own](/network/core-node/admin-guide) or use an instance offered by an infrastructure provider. - You need to fund your account with XLM from another account -- Mainnet is limited to 1,000 operations per ledger and will be limited to a maximum of 30 smart contract transactions per ledger (the precise amount of smart contract txs per ledger can vary greatly depending on transaction [resource limits](https://soroban.stellar.org/docs/fundamentals-and-concepts/fees-and-metering#resource-limits)) - - See more detailed smart contract network settings in the section on [Fees and Metering](https://soroban.stellar.org/docs/fundamentals-and-concepts/fees-and-metering) in the Soroban docs -- No publicly available RPC, see RPC service providers [here](https://soroban.stellar.org/docs/reference/rpc-list) +- Mainnet is limited to 1,000 operations per ledger and will be limited to a maximum of 30 smart contract transactions per ledger (the precise amount of smart contract txs per ledger can vary greatly depending on transaction [resource limits](../smart-contract-internals/fees-and-metering.mdx#resource-limits)) + - See more detailed smart contract network settings in the section on [Fees and Metering](../smart-contract-internals/fees-and-metering.mdx) +- No publicly available RPC, see RPC service providers [here](/network/soroban-rpc/rpc-providers) ### Testnet @@ -22,7 +22,7 @@ Stellar has three networks: the public network (Mainnet, also called Pubnet or t - SDF offers a free [Horizon instance](https://horizon-testnet.stellar.org/) you can use to interact with the Testnet - Friendbot is a faucet you can use for free Testnet XLM - Testnet is limited to 100 operations per ledger and one smart contract transaction per ledger -- SDF offers free RPC endpoints, more information [here](https://soroban.stellar.org/docs/reference/rpc-list#sdf-futurenet-and-testnet-only) +- SDF offers free RPC endpoints, more information [here](/network/soroban-rpc/rpc-providers#sdf-provided-rpc) ### Futurenet @@ -30,7 +30,7 @@ Stellar has three networks: the public network (Mainnet, also called Pubnet or t - SDF offers a free [Horizon instance](https://horizon-futurenet.stellar.org) you can use to interact with the Futurenet - Friendbot is a faucet you can use for free Futurenet XLM - Futurenet is limited to 100 operations per ledger and one smart contract transaction per ledger -- SDF offers free RPC endpoints, more information [here](https://soroban.stellar.org/docs/reference/rpc-list#sdf-futurenet-and-testnet-only) +- SDF offers free RPC endpoints, more information [here](/network/soroban-rpc/rpc-providers#sdf-provided-rpc) ## Friendbot @@ -100,6 +100,6 @@ The current passphrases for the Stellar Mainnet, Testnet, and Futurenet are: For applications that don’t rely on the state of the network (such as specific accounts needing to exist), you move to production by changing the network passphrase and ensuring your Horizon instance is connected to Mainnet. -If you’ve been running a Stellar Core or Horizon instance against the Testnet and want to switch to production, changing the passphrase will require both respective databases to be completely reinitialized. If you run your own RPC on Testnet or Futurenet, you may want to use an RPC service when you move to Mainnet. Check out the RPC service providers [here](https://soroban.stellar.org/docs/reference/rpc-list). +If you’ve been running a Stellar Core or Horizon instance against the Testnet and want to switch to production, changing the passphrase will require both respective databases to be completely reinitialized. If you run your own RPC on Testnet or Futurenet, you may want to use an RPC service when you move to Mainnet. Check out the RPC service providers [here](/network/soroban-rpc/rpc-providers). -To learn more about network passphrases, see our [Network Passphrase Encyclopedia Entry](../encyclopedia/network-passphrases) +To learn more about network passphrases, see our [Network Passphrase Encyclopedia Entry](../encyclopedia/network-passphrases.mdx) diff --git a/docs/learn/fundamentals/stellar-stack.mdx b/docs/learn/fundamentals/stellar-stack.mdx index ecbd9d47b..239542594 100644 --- a/docs/learn/fundamentals/stellar-stack.mdx +++ b/docs/learn/fundamentals/stellar-stack.mdx @@ -3,7 +3,7 @@ title: Stellar Stack sidebar_position: 20 --- -The Stellar stack is made up of the following components: Stellar Core, Horizon API, RPC, CLI, SDKs, DeFi protocols, and the [networks](./networks), each of which plays a specific part in providing financial infrastructure that is resilient to failures, available to anyone, and fast and cheap enough to serve real-world use cases. +The Stellar stack is made up of the following components: Stellar Core, Horizon API, RPC, CLI, SDKs, DeFi protocols, and the [networks](./networks.mdx), each of which plays a specific part in providing financial infrastructure that is resilient to failures, available to anyone, and fast and cheap enough to serve real-world use cases. ![Stellar Stack](/assets/updated-stellar-stack.png) @@ -11,7 +11,7 @@ The Stellar stack is made up of the following components: Stellar Core, Horizon Stellar Core is the program used by the individual nodes (or computers) that make up the network. Stellar Core keeps a common distributed ledger and engages in consensus to validate and process transactions. Generally, nodes reach consensus, apply a transaction set, and update the ledger every 5-7 seconds. -Nodes reach consensus using the Stellar Consensus Protocol, which can you can learn more about here: [Stellar Consensus Protocol](./stellar-consensus-protocol) +Nodes reach consensus using the Stellar Consensus Protocol, which can you can learn more about here: [Stellar Consensus Protocol](./stellar-consensus-protocol.mdx) Anyone can run a Stellar Core node, but you don’t have to in order to build on Stellar. We recommend you do so if you issue an asset and want to ensure the accuracy of the ledger, if you want to participate in network governance by voting on protocol version, minimum fees, and resource and ledger limits, and/or if you want to contribute to Stellar’s overall health and decentralization. Check out our tutorial on installing, configuring, and maintaining your own node here: [Run a Core Node Tutorial](/network/core-node). @@ -21,7 +21,7 @@ Horizon is the client-facing RESTful HTTP API server in the platform layer which You do not need to run your own Horizon instance — when you're getting started, you can use the free SDF Horizon instance to access the network — but it is recommended that you do when you’re ready to launch a finished product. Check out how to do so here: [Run Platform Services Tutorial](/network/horizon/admin-guide) -Learn all there is to know about using Horizon in the Horizon [API Reference documentation](https://developers.stellar.org/api). +Learn all there is to know about using Horizon in the Horizon [documentation](/network/horizon). ## RPC @@ -29,7 +29,7 @@ Soroban's RPC is a JSON RPC server that provides an interface for users and appl SDF has RPC endpoints available for Futurenet and Testnet. These services are free to use, and are suitable for development and testing. -SDF does not provide a publicly available RPC endpoint for Mainnet. Developers should [select an ecosystem provider](https://soroban.stellar.org/docs/reference/rpc-list) that works for their project before migrating to Mainnet. In some cases, projects may choose to run their own RPC instance. +SDF does not provide a publicly available RPC endpoint for Mainnet. Developers should [select an ecosystem provider](/network/soroban-rpc/rpc-providers) that works for their project before migrating to Mainnet. In some cases, projects may choose to run their own RPC instance. ## CLI @@ -39,7 +39,7 @@ The Soroban CLI is the command line interface to Soroban and can be downloaded [ SDKs simplify some of the work of accessing Horizon and the Soroban RPC by converting the data into friendlier formats and allowing you to program in the language of your choice. Stellar’s SDKs show you how to request data and create and submit transactions. Soroban's SDKs allow you to write smart contracts in Rust and interact with smart contracts in a myriad of other languages. -View Stellar's [SDK library](../../tools/sdks/library.mdx) to access our SDKs and their documentation. View Soroban's [SDK library](https://soroban.stellar.org/docs/category/sdks) in the Soroban docs. +View Stellar's [SDK library](../../tools/sdks/library.mdx) to access our SDKs and their documentation. ## DeFi protocols @@ -49,4 +49,4 @@ DeFi protocols are financial frameworks (such as lending and borrowing tools, AM Stellar has three networks: the public network (Mainnet, also called Pubnet or the Public Network), the test network (Testnet), and a dev network (Futurenet). Mainnet is the main network used by applications in production. The Testnet is a smaller, free-to-use network maintained by SDF that functions like the Mainnet but doesn’t connect to real money and is the best place for developers to test their applications. Futurenet is a dev network you can use to test more bleeding edge features. -Read more about the different networks in the [Networks section](./networks). +Read more about the different networks in the [Networks section](./networks.mdx). diff --git a/docs/learn/smart-contract-internals/fees-and-metering.mdx b/docs/learn/smart-contract-internals/fees-and-metering.mdx index fb1ca0454..36fc5e2cc 100644 --- a/docs/learn/smart-contract-internals/fees-and-metering.mdx +++ b/docs/learn/smart-contract-internals/fees-and-metering.mdx @@ -73,7 +73,7 @@ The refundable fees is calculated from rent, events, and return value. Refundabl ### Where to find Resource Fee Info for the Transaction -The best way to find the required resource fee for any Soroban transaction is to use the [`simulateTransaction`](contract-interactions/transaction-simulation.mdx) endpoint from the RPC, which enables you to send a preflight transaction that will return resource fees. +The best way to find the required resource fee for any Soroban transaction is to use the [`simulateTransaction`](./contract-interactions/transaction-simulation.mdx) endpoint from the RPC, which enables you to send a preflight transaction that will return resource fees. ## Resource limits @@ -81,7 +81,7 @@ Ledger close time is constrained to a few seconds, thus preventing the execution These resource limits may change in the Mainnet release. They can also be updated, usually increased, based on the network validator vote and consensus. -Currently defined resource limits can be found in [the "Resource Limits & Fees" page](https://soroban.stellar.org/docs/reference/resource-limits-fees) in the Reference section. +Currently defined resource limits can be found in [the "Resource Limits & Fees" page](../../reference/resource-limits-fees.mdx) in the Reference section. # Metering @@ -132,4 +132,4 @@ If the contract execution concludes within the specified resource limits, the me ### Current Fee Rates -Currently defined fee rates can be found in the [Resource Limits & Fees](https://soroban.stellar.org/docs/reference/resource-limits-fees) page. +Currently defined fee rates can be found in the [Resource Limits & Fees](../../reference/resource-limits-fees.mdx) page. diff --git a/docs/reference/networks.mdx b/docs/reference/networks.mdx new file mode 100644 index 000000000..eb0c4cb3c --- /dev/null +++ b/docs/reference/networks.mdx @@ -0,0 +1,24 @@ +--- +sidebar_position: 10 +title: Networks +description: The shared Soroban test networks. +--- + +Read more about the different networks in the [Networks section](../learn/fundamentals/networks.mdx). + +| | Mainnet | Testnet | Futurenet | +| :-- | --- | --- | --- | +| Network Passphrase | `Public Global Stellar Network ; September 2015` | `Test SDF Network ; September 2015` | `Test SDF Future Network ; October 2022` | +| Horizon API | https://horizon.stellar.org/ | https://horizon-testnet.stellar.org | https://horizon-futurenet.stellar.org | +| Soroban RPC | Please check out the available [ecosystem providers] | https://soroban-testnet.stellar.org | https://rpc-futurenet.stellar.org | +| Friendbot API | N/A | https://friendbot.stellar.org | https://friendbot-futurenet.stellar.org | +| Validator | `core-live-a.stellar.org` `core-live-b.stellar.org` `core-live-c.stellar.org` | `core-live-testnet.stellar.org` | `core-live-futurenet.stellar.org` | +| History Archive | http://history.stellar.org/prd/core-live/core_live_001/ http://history.stellar.org/prd/core-live/core_live_002/ http://history.stellar.org/prd/core-live/core_live_003/ | https://history-testnet.stellar.org | https://history-futurenet.stellar.org | + +:::caution + +Testnet and Futurenet can be reset at any time. A reset erases all accounts, contract data, and contract deployments from the network. + +::: + +[ecosystem providers]: /network/soroban-rpc/rpc-providers diff --git a/docs/reference/resource-limits-fees.mdx b/docs/reference/resource-limits-fees.mdx new file mode 100644 index 000000000..edf8dfdc9 --- /dev/null +++ b/docs/reference/resource-limits-fees.mdx @@ -0,0 +1,94 @@ +--- +sidebar_position: 30 +title: Resource Limits & Fees +--- + +:::note + +Resource limitations and fees only apply to smart contract transactions. Read more about the inner workings of inclusion fees in the [Fees section](../learn/encyclopedia/fees-surge-pricing-fee-strategies.mdx) and more about smart contract fees, which include resource fees, in the [Fees and Metering section](../learn/smart-contract-internals/fees-and-metering.mdx). + +::: + +## Resource Limits + +Soroban introduces smart contracts, marking the most transformative upgrade to the Stellar network to date. To maintain network performance, the ecosystem has decided to upgrade the network in a phased approach where network capacity is increased gradually over time. See [this blog post](https://stellar.org/blog/developers/the-stellar-network-s-phased-rollout-of-smart-contracts-the-road-to-mainnet) for more details and [Discord](https://discord.com/invite/zVYdY3ktTn) for current status. + +| Network Setting | Phase 0 | Phase 1 (current) | +| :-- | :-- | :-- | +| Soroban Txn per ledger | 1 | 100 | +| Max CPU Instructions per Txn | 2.5 million (2M instructions for max Wasm) | 100 million (VM instantiation consumes up to 23M for a 64KB Wasm, and 46M for multiple Wasms of 130KB) | +| Memory limit per Txn | 2 MB | 40 MB | +| Ledger entry size (including Wasm entries) per Txn | 2 KB | 64 KB | +| Read/Write Ledger entries per Txn | 3 read; 2 write | 40 read; 25 write | +| Read/Write bytes per Txn | 3.2 KB read; 3.2 KB write | 130 KB read; 65 KB write | +| Transaction size | 10 KB | 70 KB | +| Persistent entry minimal/initial lifetime | 4,096 ledgers (~5.68 hours) | 120 days | +| Temporary entry minimal/initial lifetime | 16 ledgers | 1 day | +| Max ledger entry expiration bump | 61 days | 6 months | +| Events+return value size bytes | 200 B | 8 KB | + +## Resource Fees + +Note that write fees grow linearly from empty ledger to ledger "target size", and then grow linearly, but with a 1000x factor after exceeding the target. This is to bound the ledger size growth. + +The ledger rent cost ('Write 1KB' entries in the table) is based on the write fee, rent period and some coefficient. For the temporary storage, the coefficient is 10 months (in ledgers), thus 1 month of temporary entry rent is 1/10 of the rent fee. For persistent storage the coefficient is 1 month (in ledgers) and thus 1 month of rent is equivalent to the write fee. + +### Phase 1 (current) {#phase-1} + +Phase 1 is meant for network operators to monitor network performance under use. While you'll be able to deploy contracts, Mainnet in Phase 1 has limited throughput. You should not expect more than 1 smart contract transaction per ledger. You can expect throughput to be gradually increased based on network performance and user (your) feedback. See [this blog post](https://stellar.org/blog/developers/the-stellar-network-s-phased-rollout-of-smart-contracts-the-road-to-mainnet) for more details and share your feedback in [Discord](https://discord.com/invite/zVYdY3ktTn). + +| Network setting | Phase 1 Cost (stroops) | +| :-- | :-- | +| 10,000 instructions | 25 (250,000/max tx) | +| Read 1 ledger entry | 6,250 (250,000/max tx) | +| Write 1 ledger entry | 10,000 (250,000/max tx) | +| Read 1KB from ledger | 1,786 (250,000/max tx) | +| 1KB of transaction size (bandwidth) | 1,624 (113,642/max tx) | +| 1KB of transaction size (history) | 16,235 (1,136,418/max tx) | +| 1KB of Events/return value | 10,000 (80,000/max tx) | +| “Target” ledger size | 13 GB | +| Fee multiplier after reaching the target size | 1,000 | +| Write 1KB to ledger, stroops (empty) | -1,234,673 (the write cost is always positive; this value is used only for the effective write fee computations) | +| Write 1KB to ledger, stroops (current, 12 GB) | 11,539 (750,000/max tx) | +| Write 1KB to ledger, stroops (target, 13 GB) | 115,390 (7,500,000/max tx) | +| Temp entry rent period, ledgers | 2,804 | +| Persistent entry rent period, ledgers | 1,402 | +| Minimum persistent entry TTL, ledgers | 2,073,600 (120 days) | +| Minimum temp entry TTL, ledgers | 17,280 (~1 day) | + +#### Phase 1 Examples + +Here are some examples to put things in perspective (the fees are computed at "current" ledger size and would grow as ledger size increases): + +| Scenario | Phase 1 Cost | +| :-- | :-- | +| Upload a new 64KB Wasm (includes 120 day rent payment) | 109.2 XLM | +| 1 year of 64KB Wasm storage rent | 327.7 XLM | +| Bump 64KB Wasm rent by 1 day | 0.91 XLM | +| Modify 64 KB contract data entry without increasing the size | 0.075 XLM | +| Create 100 byte contract data entry, e.g. user balance (includes 120 day rent payment) | 0.17 XLM | +| 1 year of 100 byte storage rent | 0.512 XLM | +| Modify 100 byte contract data entry without increasing the size | 1150 stroops | + +### Phase 0 + +Phase 0 is meant for network operators to observe and ensure network stability. While you may be able to deploy simple contracts, Mainnet in Phase 0 is not designed for contract development or deployment. Testnet is better suited for this purpose. + +| Network Setting | Phase 0 Cost (stroops) | +| :-------------------------------------------- | :---------------------- | +| 10,000 instructions | 100 (1,000,000/tx) | +| Read 1 ledger entry | 1,000 (20,000/tx) | +| Write 1 ledger entry | 3,000 (30,000/tx) | +| Read 1KB from ledger | 1,000 (127,000/tx) | +| 1KB of transaction (bandwidth) | 500 (34,000/tx) | +| 1KB of transaction (history) | 5,000 (340,000/tx) | +| 1KB of Events/return value | 300 (1,500/tx) | +| “Target” ledger size | 14.5 GB | +| Fee multiplier after reaching the target size | 1,000 | +| Write 1KB to ledger (empty) | 1,000 | +| Write 1KB to ledger (current, 12 GB) | 0.356 XLM (17.4 XLM/tx) | +| Write 1KB to ledger (target, 14 GB) | 0.4 XLM (2.26 XLM/tx) | +| Temp entry rent period | 10 months | +| Persistent entry rent period | 1 month | +| 1 KB of temp storage per month | 400,000 | +| 1 KB of persistent storage per month | 4,000,000 | diff --git a/docs/reference/software-versions.mdx b/docs/reference/software-versions.mdx new file mode 100644 index 000000000..ce8cbadd1 --- /dev/null +++ b/docs/reference/software-versions.mdx @@ -0,0 +1,1511 @@ +--- +sidebar_position: 20 +title: Software Versions +description: Soroban software releases and changelogs. +--- + +We're releasing early versions of Soroban because we believe it's important to share the development process, and we want Stellar ecosystem developers and smart contract developers from other ecosystems to have a chance to experiment and provide feedback. + +:::caution + +Release candidates are software releases that are also released to the [Testnet] test network. Software releases may occur between Testnet releases. If you're interacting with Testnet, the recommended software versions to use in development are provided below. Releases to Testnet may include network resets and network passphrase changes. + +::: + +[testnet]: ./networks.mdx + +## Protocol 20: Soroban Phase 1 (February 27, 2024) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [8b9d623ef40423a8462442b86997155f2c04d3a1](https://github.com/stellar/rs-stellar-xdr/commit/8b9d623ef40423a8462442b86997155f2c04d3a1) | +| Soroban Environment | `v20.2.2` | +| Soroban Interface Version | `0` | +| Soroban Resource Limits | [Phase 1 Limits](./resource-limits-fees.mdx#resource-limits) | +| Soroban Resource Fees | [Phase 1 Fees](./resource-limits-fees.mdx#phase-1) | +| Stellar Core | `v20.2.0` | +| Soroban Rust SDK | `v20.3.2` | +| Soroban CLI | `v20.3.1` | +| Soroban RPC | `v20.3.3` | +| Stellar Horizon | `v2.28.3` | +| Stellar Friendbot | `TBD` | +| Stellar Quickstart | `docker.io/stellar/quickstart:latest@sha256:1a82b17a4fae853d24189dd25d4e6b774fa7a1b6356a993e618c6e9bd2f3e04c` | +| Stellar JS Stellar Base | [`v11.0.0`](https://github.com/stellar/js-stellar-base/releases/tag/v11.0.0) | +| Stellar JS Stellar SDK | [`v11.2.2`](https://github.com/stellar/js-stellar-sdk/releases/tag/v11.2.2) | +| Freighter | `v5.17.0` | +| Laboratory | `v4.1.0` | +| Soroban React Payment dapp | `TBD` | +| Soroban Mint Token dapp | `TBD` | +| Soroban Swap Token dapp | `TBD` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | +| Testnet Network Passphrase | `Test SDF Network ; September 2015` | +| Mainnet Network Passphrase | `Public Global Stellar Network ; September 2015` | + +### Changelog + +#### Soroban RPC + +- (tag: v20.3.3) Bump version to 20.3.3 +- Update Dockerfile and Makefile to refer rpc instead of tools +- Fix publish-dry-run failures +- Revert "soroban-rpc: Remove publish-dry-run Workflow" +- Perform fee padding in a larger bit width of integers +- (tag: v20.3.2) Bump version to 20.3.2 +- Merge pull request #68 from stellar/add-spec-tools-crate +- Merge branch 'main' into add-spec-tools-crate +- Change module from soroban-tool to rpc in go.mod +- Add hardcoded WASM file and reference it in tests +- Uncomment install_rust +- Add prometheus hook to count different log levels +- Remove build-test-wasms from makefile + +#### Soroban CLI + +- (tag: v20.3.1) Bump version to 20.3.1 +- Update references in end-to-end tests to point to the latest releases +- Bump version of soroban rpc and spec tools +- Repoint soroban-spec-tools to the moved one in stellar/soroban-rpc +- Rename Cargo.toml in the init template files +- soroban-cli: Remove ALL RPC Related Code and Workflows +- Use soroban-rpc crate from the RPC repo +- fix: embed the init template files in the build +- [Epic] Separating soroban-rpc to prepare for repo change +- Soroban contract init followup +- Merge pull request #1190 from stellar/release/v20.3.0 +- Merge branch 'main' into release/v20.3.0 +- Revert "[Epic] Separating soroban-rpc to prepare for repo change" +- [Epic] Separating soroban-rpc to prepare for repo change + +## Protocol 20: Soroban Phase 1 (Mainnet Edition) (February 5, 2024) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [8b9d623ef40423a8462442b86997155f2c04d3a1](https://github.com/stellar/rs-stellar-xdr/commit/8b9d623ef40423a8462442b86997155f2c04d3a1) | +| Soroban Environment | `v20.2.2` | +| Soroban Interface Version | `0` | +| Soroban Resource Limits | [Phase 0 Limits](./resource-limits-fees.mdx#resource-limits) | +| Soroban Resource Fees | [Phase 0 Fees](./resource-limits-fees.mdx#phase-0) | +| Stellar Core | `v20.2.0` | +| Soroban Rust SDK | `v20.3.2` | +| Soroban CLI | `v20.3.0` | +| Soroban RPC | `v20.3.1` | +| Stellar Horizon | `v2.28.3` | +| Stellar Friendbot | `TBD` | +| Stellar Quickstart | `docker.io/stellar/quickstart:latest@sha256:8d6f6520ad3842042bfe4e271f8b2324ec2f128564487abedd3876cea83af4f1` | +| Stellar JS Stellar Base | [`v11.0.0`](https://github.com/stellar/js-stellar-base/releases/tag/v11.0.0) | +| Stellar JS Stellar SDK | [`v11.2.2`](https://github.com/stellar/js-stellar-sdk/releases/tag/v11.2.2) | +| Freighter | `5.16.0` | +| Laboratory | `v4.1.0` | +| Soroban React Payment dapp | `v3.0.0` | +| Soroban Mint Token dapp | `v3.0.0` | +| Soroban Swap Token dapp | `TBD` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | +| Testnet Network Passphrase | `Test SDF Network ; September 2015` | +| Mainnet Network Passphrase | `Public Global Stellar Network ; September 2015` | + +### Changelog + +#### XDR + +- Run CI for the msrv and latest rust version +- Backfill changes to next for json rendering +- Bump XDR +- Bump version to 20.1.0 + +#### Soroban Environment + +- Allow small version-range wiggle room on curve25519-dalek to enable docs.rs nightly build +- Bump version to 20.2.2 +- Enable publish of soroban-simulation crate +- Add a function to invoke host function 'end-to-end' in recording mode. +- Bug 1283 asset code rendering +- Use strkeys for contract IDs and addresses in diagnostic events. +- Turn off wasm_reference_types in Wasmi +- Prng tests +- Remove ConversionError from ScVal/Val conversions +- Tightening up metering in auth +- Bump XDR to 20.1 +- Allow negative fee1 kb low +- Bump version to 20.2.0 +- Cover various Symbol conversion code paths with various valid/invalid cases +- Run CI for the msrv and latest rust version +- Add protocol version method to invoke_contract +- Enable VM execution in a WASM environment by guarding time track behind time feature +- Add test for checking VM stack depth. +- Migrate preflight computations from soroban-rpc +- soroban-simulate: Misc fixes +- Add CI job to run cargo-semver-checks +- Tracing +- Add some basic test coverage for e2e_invoke. +- Add test vectors for ed25519 edge cases +- Trace should not emit diagnostic errors +- Bump wasmi to 0.31.1-soroban.20.0.1 +- Bump version to 20.1.1 + +#### Soroban Rust SDK + +- Update soroban-env-\* +- Bump version to 20.3.2 +- Update extend_ttl docs +- Bug 1076 conversion error flattening + +#### Soroban RPC + +- Migrate Soroban Tools to Soroban RPC +- Use soroban-tools Crates +- Pull in Recent Soroban RPC changes from soroban-tools +- Mirror Last Remaining PRs from soroban-tools Repo +- Add Workflow to Publish soroban-rpc Crate +- added user agent config on ha archive pool +- Update getTxn rpc with events data +- Remove publish-dry-run Workflow +- Use external soroban-simulation library for preflight computations +- Store and serve the event transaction ID +- Reduce event memory footprint +- Add diagnostic events to sendTransaction response +- Remove panics from internal codebase + +#### Soroban CLI + +- feat: soroban init command +- Bump dependencies for pubnet release +- Upgrade Ubuntu to 22.04 from 20.04 +- Bump Go, Rust and Core dependencies +- feat/cli: Move config commands to top level +- bindings-ts: update to latest SDK & TypeScript, add CI test +- TypeScript bindings have been updated to use the latest stellar-sdk +- Support multi-auth workflows in typescript bindings +- Replace cli xdr command with stellar-xdr cli +- Update typescript bindings for latest versions +- Warn about RC versions only when using pubnet + +## Stable v20.1.0 (January 11, 2024) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [bb54e505f814386a3f45172e0b7e95b7badbe969](https://github.com/stellar/stellar-xdr/commit/bb54e505f814386a3f45172e0b7e95b7badbe969) | +| Soroban Environment | `v20.1.0` | +| Soroban Interface Version | `0` | +| Stellar Core | `v20.1.0` | +| Soroban Rust SDK | `v20.2.0` | +| Soroban CLI | `v20.2.0` | +| Soroban RPC | `v20.2.0` | +| Stellar Horizon | `v2.27.0` | +| Stellar Friendbot | `TBD` | +| Stellar Quickstart | `docker.io/stellar/quickstart:soroban-dev@sha256:64b2d14b8a531c534560e287768846f538b2f063fc776aa9ca016c788e86c782` | +| Stellar JS Stellar Base | [`v10.0.1`](https://github.com/stellar/js-stellar-base/releases/tag/v10.0.1) | +| Stellar JS Stellar SDK | [`v11.2.0`](https://github.com/stellar/js-stellar-sdk/releases/tag/v11.2.0) | +| Freighter | `5.9.0` | +| Laboratory | `TBD` | +| Soroban React Payment dapp | `TBD` | +| Soroban Mint Token dapp | `TBD` | +| Soroban Swap Token dapp | `TBD` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | +| Testnet Network Passphrase | `Test SDF Network ; September 2015` | + +### Changelog + +#### Soroban Rust SDK + +- Fix bug with Timepoint/Duration as parameters/returns +- Add storage update fns +- Export functions for creating Timepoint/Duration +- Allow `&Env` in contract fns + +## Stable v20.0.0 (December 18, 2023) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [bb54e505f814386a3f45172e0b7e95b7badbe969](https://github.com/stellar/stellar-xdr/commit/bb54e505f814386a3f45172e0b7e95b7badbe969) | +| Soroban Environment | `v20.0.0` | +| Soroban Interface Version | `0` | +| Stellar Core | `v20.0.1` | +| Soroban Rust SDK | `v20.0.0` | +| Soroban CLI | `v20.0.2` | +| Soroban RPC | `v20.0.2` | +| Stellar Horizon | `v2.27.0` | +| Stellar Friendbot | `TBD` | +| Stellar Quickstart | `docker.io/stellar/quickstart:testing@sha256:3c7947f65db493f2ab8ca639753130ba4916c57d000d4a1f01ec530e3423853b` | +| Stellar JS Stellar Base | [`v10.0.0`](https://github.com/stellar/js-stellar-base/releases/tag/v10.0.0) | +| Stellar JS Stellar SDK | [`v11.0.1`](https://github.com/stellar/js-stellar-sdk/releases/tag/v11.0.1) | +| Stellar JS Soroban Client | [`v1.0.0`](https://github.com/stellar/js-soroban-client/releases/tag/v1.0.0) (deprecated, prefer the Stellar SDK) | +| Freighter | `5.12.0` | +| Laboratory | `4.11.0` | +| Soroban React Payment dapp | `3.0.0` | +| Soroban Mint Token dapp | `3.0.0` | +| Soroban Swap Token dapp | `TBD` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | +| Testnet Network Passphrase | `Test SDF Network ; September 2015` | + +### Changelog + +#### XDR + +- Update the docs for extendTTL/restore ops to match the threshold change + +#### Soroban Environment + +- Make RecordedAuthPayload consistently return None for invoker. +- Expiration-related fixes +- Turn dynamic borrow panics into HostErrors +- Use Ed25519 verify_strict function rather than just verify, fix #857 +- Misc int32 issues +- Enforce object handle integrity when inserting into containers, fix #569 +- Add testcase for out-of-order scmaps, fix #223. +- Add a function to compute the rent fee. +- Use host.err for auth error +- Add a smoke test for recording auth for create contract host fn. +- Stop treating storage errors as missing entries +- Refactor authorization manager to only maintain mutable borrow on minimal amount of fields +- Bump xdr +- Add rent bumps to the SAC +- Add is_admin function +- Bump xdr +- Add function to compute the write fee based on the ledger size. +- Prohibit using disjoint signatures to cover the auth tree. +- Enforce DepthLimiter in the Host to avoid stack overflow +- Relative objects in wasm +- Adapt to ResourceLimiter, replacing mem_fuel metering +- Make del_contract_data no-op for removing non-existent instance storage key. +- Add "tracy" feature to enable Tracy profiler, with some basic annotations +- Update host to account for the XDR changes. +- Update rust-version +- Adapt to SCError change to be an enum, with ContractError(u32) +- Make some host errors non-recoverable in try_call. +- Fix panic-string-logging code path broken by recent dynamic-borrow fix. +- Add soroban-bench-utils, add benchmark tests to measure metering accuracy +- Bump env xdr and do the fee library changes corresponding to config changes +- Bump env xdr +- Remove event topic limits +- Bump env xdr +- Unify/fix expiration bump logic in host. +- Add new tests for error escalation from contract calls. +- Add a helper that invokes a host function 'end-to-end' +- Add helpers for container bulk init; applies to auth metering +- Switch some auth errors from Internal to InvalidInput. +- Enable post-MVP WASM ops (sign-ext and mutable-globals), fix #968. +- More token tests +- Alloc example +- Mop up some residual uses of format strings in errors (no longer supported) +- Add wasm for upgrade write-bytes contract +- Scale the linear cost model coefficient; improve model fitting +- Error if bumping past max_entry_expiration and host function to retrieve max_entry_expiration +- Make has checks to properly populate the storage map in recording mode +- Clean up budget cost types +- Add debug events to storage error reporting. +- Switch to stable rust-analyzer in CI +- Add some comments and tests to env-common/symbol.rs +- Upgrade dalek crates to new stable versions. +- Add an option to return an error when encountering non-root auth in recording mode. +- Reject env.json if there are duplicate export names, fix #189 +- Tighten signature of unchecked_visit_val_obj, fix #595 +- Tighten dependencies further +- Fix incorrect argument name +- Bump env xdr +- Tighten up Map and Vector and metering coverage +- Store dummy instance for test contracts. +- Update XDR to take change that removes SCSpecTypeSet +- Fix comparison in Tag::is_object +- Fix calibration due to delak change +- Charge write fees for expiration entry bumps. +- Reduce the expiration entry write size. +- Refactor host to support the new expiration ledger approach. +- Add lifetime threshold +- Enable build workflow for merge groups +- Remove key size from rent change computation. +- Take change from txSOROBAN_RESOURCE_LIMIT_EXCEEDED to txSOROBAN_INVALID +- Add ExpirationEntry support +- Add git rev dep check to ci +- Fix encode contract events metering +- Trim deps +- Reject vals with invalid tags, fix #1029 +- Fix EXPIRATION_ENTRY_SIZE constant +- Avoid iloop externalizing diagnostics for invalid references +- Add "coverage" Makefile target for lcov.info, add a test that extends coverage +- Fix asset-code rendering in native contract. +- Fix rent changes extraction bug +- Graydon code review +- Jay code review +- Bump xdr and use curr instead of next +- Trivial xdr bump +- Tighten wasm interface version checks, and do on upload. +- Update wasmi to 0.31.0-soroban +- Bump version to 20.0.0-rc1 +- Add "next" feature to crates using xdr directly or indirectly +- Move out-slice len adjustment from symbol_copy_to_slice to its caller. +- Bump interface and regenerate wasms to handle symbol semantics change. +- No-op rename: remove metered from metered_scan_slice_of_slices +- Get rid of an unnecessary vector allocation in map_new_from_slices +- Remove metered map iterator functions. +- Small vec cleanup +- Code cleanup around PRNG +- Factor Tag::is_object to let Val::is_object delegate to it +- Set LedgerEntry extensions on existing entries +- Attach the auth in recording mode to any valid tracker. +- Improve storage error reporting for token contract. +- Env-common cleanups and dead code removal +- More cleanups, comments and fixes from code review. +- Make the 'unknown' wasmi error to be InvalidAction instead of InternalError +- Error improvements +- Small update for the default budget limits. +- Calibration for PRNG and charge budget +- Code review, cleanup, removal of dead/dangerous host functions +- Add redundant "next" dependencies +- Host code review, minor cleanups and code reorganization +- Fix the instance storage update logic. +- Feature: Expose rem_euclid functions on 256 bit numbers +- Replace address bytes conversions with strkey conversions. +- Use Address for call_account_contract_check_auth test helper. +- More code review and cleanup of host.rs module +- Budget fiddling +- Bump env XDR +- State expiration renames +- Cost type cleanup, bug fix, improve calibration +- Code review on fees, crypto, prng, dispatch +- Storage code review +- Setup bench framework to run experiments +- Decorate error for nonce missing from the footprint. +- Remove bad LEs +- Add missing fixed-size metering in comparison.rs, clean up a bit +- Properly dispatch test contracts based on the executable. +- Tighten up metering for linear memory routines +- conversion.rs code review fixes +- Review fixes for declared_size and metered_clone +- Gate recording auth behind the feature. +- Fix test wasms for latest sdk +- Cackle gate +- Remove spendable_balance from SAC. +- Extend upgrade contract from 30 to 60 days +- Bug 1042 internal renames +- Remove panic +- Stop caching authorization tracker verification status. +- Overhaul "free budget" and migrate non-metered code +- Clarify (and add redundant defensive code) in check_val_integrity +- Remove a panic and be more conservative about depth limit +- Add conceptual overview comment to auth module +- Fix fuzz-found panic in Prng::u64_in_inclusive_range +- Fix fuzzer-found frame stack corruption in rollback if instance storage fails +- Arbitrary-compatible expr generation and host fuzzing +- Improve auth test coverage a bit +- Rollback tests +- Add a test that ensures that SAC reentry is not possible. +- Remove vnext test wasms +- Add fn to find out if Host can be finished +- Add tests for more wasmi trap conditions +- Storage tests +- Add tests that try to build a deep host stack. +- More events and diagnostics testing +- Fix #1174 fuzzer-found deserialization of non-representable ScVal bug. +- tighten up handling of debug mode +- Update rust-version +- Adapt to rs-stellar-xdr Limits change +- Add tests that cover fees for each individual resource. +- Cover non-existent Wasm in test for updating Wasm. +- Adds loadgen test WASM +- Add wasm test for excessive initial memory and table size +- Initial cut at bug 872, observe side effects of tests +- Remove unnecessary copy of value +- Test update_contract_wasm with rollbacks. +- Bug 1146 test invalid val bit patterns +- Add @dmkozh as code owner of soroban-env-host +- Hook envbase and vec slices +- Update stellar-xdr +- Don't block merges on rust-analyzer compat check +- Observe most of the remainder of the testsuite +- Update deps, fix #1200 +- Test nested extend_ttl +- Fix #1175 error code spoofing +- Do not error if no authorizations +- Add a contract that allows materializing arbitrarily large values. +- Updated loadgen Wasm +- Cap persistent extension to max +- Error on issuer for mint, burn, clawback, and burn_from +- Add a very simple hook for tracking top-level contract invocations. +- Macro for testing host function dispatch with bad inputs +- Check val integrity more +- Adapt to Rust 1.74 +- Improve test coverage for crypto functions. +- Pub ContractInvocationEvent +- Pass ref to host to contract invocation hook +- Fix top contract invocation hook and auth interaction +- XDR limits updates +- Run user seeds to PRNGs through HMAC-SHA256 to unbias +- Add size_hint methods to Arbitrary impls +- Add tests for de-serializing deep XDR in deep call stack. +- Generate combinational tests for linear memory functions +- Add tests that grow containers until running out of memory budget. +- Observe more things +- Setting pre_release_version to zero in meta.rs in preparation of Soroban launch +- Add Host::has_frame +- Validated TTLentries +- Budget subsystem code review +- Rename extend host functions +- Fuzz fixes +- Cap number of args to wasm functions +- Cargo version pinning +- Pass --locked to publish as well +- Tighten up saturating\_ math checks +- Auth code review +- Remove unused publish scripts/make targets +- Write tests for unrecoverable errors with try_call +- Fix the invoker contract auth rollback logic and cover it in the tests. +- Re-calibration on x86 and update cost parameters +- Add tests for invalid maps, oversized maps/vecs/bytes from various paths +- Frame code review +- Improve XDR conversion coverage +- Add more error tests +- Improve budget tracker +- Validate assets when trying to create SAC instance. +- Conversion tests +- Update stellar-xdr +- Change string_new_from_slice to use &[u8] instead of &str. +- Update stellar-xdr +- Initial SAC review +- Derive debug, eq, ord on CostTracker for SDK +- Noop auth fix +- Test bad WASMs +- Add time tracker +- Bump wasmi and xdr to release versions +- SAC final code review +- Add fuzz target that runs wasmi on wasm-smith output +- Remaining host code review +- Bump version to 20.0.0 + +#### Soroban Rust SDK + +- Token events +- Update rust-version +- Update SDK to recent env +- Add admin function +- fix: use uppercase const name +- Fix allocator +- Add Arbitrary impl for Duration and Timepoint +- Fix Budget::memory_bytes_cost +- Bump env to c5607a2e9e296b2636b46dc910387aa3446b3e29 +- Bump env +- Update dalek, remove non-syn2 exemptions, tighten deps +- Update map iterator to be index based +- Remove ScSpecTypeSet support, which was already mostly dead. +- Provide a way to allow non-root auth in recording mode. +- Update env version in SDK. +- Update SDK to support expiration entry rework. +- Bump env for bump interface changes +- Correct comment on String::copy_into_slice +- Add doc comments about why symbol_short! +- Add test vector for workspace setups where contract types live in a lib +- Update rust-version +- Enable build workflow for merge groups +- re-enable linux arm64 builds +- Fix/criadoperez +- Text corrections +- Update rust-version +- bump env +- Fix name of the Stellar Asset admin client +- Add git rev dep check to ci +- Remove authorized from standard token interface +- Bump env +- Adapt to removal of ConversionError from number type conversions. +- Bump version to 20.0.0-rc1 +- Implement deployer functions that return the deployed contract id. +- Add Vec::to_vals +- Expose PRNG functions +- Expose secp256k1 and keccak256 in the SDK +- Upgrade env to v20.0.0-rc2 +- Elaborate more in comment on PRNG strengths and weaknesses +- Bump version to 20.0.0-rc2 +- More explicit PRNG-explaining comments +- Adapt to minor env changes from code review +- Adapt to recent changes in env +- docs: Fixing a broken link in the SDK's lib.rs file +- Fix typos in arbitrary docs +- Change Storage::get to pub(crate) +- Add fn to expose max expiration available +- Update rust-version +- fix(snapshot): set entry expiration info in set_ledger_info +- Add SDK support for Address<->strkey conversions. +- bump env and xdr for state exp rename +- bump env +- Feature: expose rem_euclid functions and add 128/256 bit conversions +- Fix type of signature in auth +- Add testutils for accessing all storage of a contract +- Remove spendable balance +- Fix nightly lints on unused internal exports +- Generate all types of addresses when fuzzing. +- Use deterministic randomness in arbitrary tests +- Generate arbitrary containers with heterogeneous elements +- Add SorobanArbitrary implementations for tuples. +- Update env version +- Fix docs about prng seed +- Refactor Prng functions +- Add prng generation for slices and arrays +- Make easier to add shuffle to other types +- Make Env::default and Env::from_snapshot configure the environment the same +- Arbitrary testutils +- Remove use of rand from generated addresses, nonces, salts, and issuer pks +- Replace String::from_slice with from_str +- Update soroban-env-\* deps +- Encode network id as hex in ledger snapshots +- Autosave a test snapshot file on every test exit +- Allow bumping other instances +- Update env +- Make Option work with contract type +- Rename token::Interface/Client to TokenInterface/Client +- Don't write test snapshot if no thread name +- Minor tidy and organization of test snapshots +- Don't block merges on rust-analyzer compat check +- Expand Env test to check that separate tests are written for multiple Envs +- Do not record test snapshots for doc tests +- Check that no diffs exist after test run due to uncommitted test snapshots +- Add auth to Env snapshot +- Update env and xdr +- Snapshot all auths during a test not just last invokes +- Update rust-version +- Improvements to Arbitrary Options +- Hide EnvBase and other internal types +- Restore previous auth state in client +- Make try\_ fns return smaller SDK error type +- Remove nextest from Makefile +- bump env +- Renamed extend host function +- Update env +- Bump version to 20.0.0 + +#### Soroban RPC + +- increased preflight instruction fee padding to 3 million +- Enforce enabling diagnostics events +- Add getPreflight benchmark and test +- Add write-through cache for config ledger entries +- Cache all ledger entries queried from DB in read transaction +- simulateTransaction automatically detects ledger entries which require restoring +- Add heap profiling endpoints +- Try to return diagnostic events on failure from simulateTransaction +- Add generic panic handling +- Limit request size to 10MB +- getLedgerEntries can query multiple ledger entries at once +- Stream ledgers on initialization +- Set maximum number of keys to query for getLedgerEntries +- Add support for new state expiration ledger entries +- Ingest temp ledger entry evictions +- Lower max http request size +- Set base prng to zero in preflight and invoke +- Exclude temporary expired entries from SnapshotSource in preflight +- Include system events in fee calculation in preflight +- Get expiration ledger sequence at source +- Add a "Building from Source" README.md +- Flatten the getEvents response structure +- Enable debug by default for preflight +- Optimize in-memory transaction store +- Force On-Disk Mode +- Fix datarace in bufferedResponseWriter.WriteOut +- Fix upsert bug in DB cache +- Fix ledger entry visibility bug +- Fix unwrap() errors in libpreflight due to bugs in the Go<->Rust interface +- Fix simulation sequence number for bump/restore operations +- Improve missing command line arguments message +- Fix caching of GetLatestLedgerSequence +- Ensure that the sim events are logged; improve format of main logs +- Validate xdr payloads in soroban-rpc requests +- Fix double-counting bug in preflight +- Fix potential overflow +- Fix multi-entry responses for getLedgerEntries method +- Update jrpc2 version to enable application/json; charset=utf-8 +- Unify all ledger sequence types to uint32 and stop stringyfying integers < 53-bits wide +- Restore CORS support + +#### Soroban CLI + +- Allow fetching contract from network +- Each generated contract method adds -file-path +- Add two new output types for contract inspect +- Add config identity fund to fund accounts on networks +- Add Auth-next signing support +- Add dotenv so directories can now set CLI args +- Add key::Args and FullLedgerEntry/FullLedgerEntries +- Remove sandbox +- Add Assembled Transaction that handle preparing transaction post simulation +- Make aliases visible in help doc +- Fix --cost flag +- Set the exit code to 1 in case of an error +- Return an error once contract read is unable to read any entry +- Wrap token no longer fails with valid inputs in sandbox mode +- fund command now can accept a public strkey +- Warn or Error When Deploying Contracts Compiled with RC Version of Soroban SDK +- Print help if custom CLI is empty & replace unwrap where possible +- Fix various typescript bindings +- Make output consistent for all ways to get version + +## Preview 11 (September 11, 2023): Testnet and Futurenet Edition + +### Software + +| Software | Version | +| --- | --- | +| XDR | [9ac02641139e6717924fdad716f6e958d0168491](https://github.com/stellar/stellar-xdr/commit/9ac02641139e6717924fdad716f6e958d0168491) | +| Soroban Environment | `v20.0.0-rc2` | +| Soroban Interface Version | `57` | +| Stellar Core | `20.0.0-1504.rc2.22088c1f2.focal` | +| Soroban Rust SDK | `v20.0.0-rc2` | +| Soroban CLI | `v20.0.0-rc4` | +| Soroban RPC | `v20.0.0-rc4` | +| Stellar Horizon | `2.27.0~rc2-384` | +| Stellar Friendbot | `soroban-v0.0.2-alpha` | +| Stellar Quickstart | `docker.io/stellar/quickstart:testing@sha256:0c756150e7b3c53603fe36bb932c4e7d7ceaef691906b2d3d952771ccc195559` | +| Stellar JS Stellar Base | [`v10.0.0-beta.3`](https://github.com/stellar/js-stellar-base/releases/tag/v10.0.0-beta.3) | +| Stellar JS Stellar SDK | [`v11.0.0-beta.5`](https://github.com/stellar/js-stellar-sdk/releases/tag/v11.0.0-beta.5) | +| Stellar JS Soroban Client | [`v1.0.0-beta.3`](https://github.com/stellar/js-soroban-client/releases/tag/v1.0.0-beta.3) (deprecated, prefer the Stellar SDK) | +| Freighter | `5.6.1` | +| Laboratory | `2.12.0` | +| Soroban React Payment dapp | `2.0.0` | +| Soroban Mint Token dapp | `2.0.0` | +| Soroban Swap Token dapp | `2.0.0` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | +| Testnet Network Passphrase | `Test SDF Network ; September 2015` | + +:::note + +The Soroban RPC version for Preview 11 is presently in Stellar's unstable and testing apt repositories. Additionally, its Docker image release can be accessed at [docker.io/stellar/soroban-rpc:20.0.0-rc3-39](https://hub.docker.com/layers/stellar/soroban-rpc/20.0.0-rc3-39/images/sha256-227170869bca74998e1b6cc1e07deb3aca8d03e36154b3da700d6669e19d485b?context=explore). + +::: + +### Changelog + +#### XDR + +- Generate for entry expired error +- Bump XDR +- Generate XDR DepthLimiter and depth-limited Read/WriteXdr +- Bump XDR +- Make SCError into a union to allow user errors to be u32 +- Update rust-version +- Bump XDR +- Bump XDR +- Bump XDR +- Regen to pick up ContractCostType changes +- Bump XDR +- Update to reflect removal of SCSpecTypeSet +- Bump XDR +- Take change from txSOROBAN_RESOURCE_LIMIT_EXCEEDED to txSOROBAN_INVALID +- Run CI via in merge queue +- Update rust-version +- Bump curr and next +- Bump XDR +- Bump version to 20.0.0-rc1 + +#### Soroban Environment + +- Attach the auth in recording mode to any valid tracker when possible +- Make RecordedAuthPayload consistently return None for invoker +- Expiration-related fixes +- Turn dynamic borrow panics into HostErrors +- Use Ed25519 verify_strict function rather than just verify, fix #857 +- Misc int32 issues +- Enforce object handle integrity when inserting into containers, fix #569 +- Add testcase for out-of-order scmaps, fix #223 +- Add a function to compute the rent fee +- Use host.err for auth error +- Add a smoke test for recording auth for create contract host fn +- Stop treating storage errors as missing entries +- Refactor authorization manager to only maintain mutable borrow on minimal amount of fields +- Bump xdr +- Add rent bumps to the SAC +- Add is_admin function +- Bump xdr +- Add function to compute the write fee based on the ledger size +- Prohibit using disjoint signatures to cover the auth tree +- Enforce DepthLimiter in the Host to avoid stack overflow +- Relative objects in wasm +- Adapt to ResourceLimiter, replacing mem_fuel metering +- Make del_contract_data no-op for removing non-existent instance storage key +- Add "tracy" feature to enable Tracy profiler, with some basic annotat… +- Update host to account for the XDR changes +- Update rust-version +- Adapt to SCError change to be an enum, with ContractError(u32) +- Make some host errors non-recoverable in try_call +- Fix panic-string-logging code path broken by recent dynamic-borrow fix +- Add soroban-bench-utils, add benchmark tests to measure metering accuracy +- Bump env xdr and do the fee library changes corresponding to config changes +- Bump env xdr +- Remove event topic limits +- Bump env xdr +- Unify/fix expiration bump logic in host +- Add new tests for error escalation from contract calls +- Add a helper that invokes a host function 'end-to-end' +- Add helpers for container bulk init; applies to auth metering +- Switch some auth errors from Internal to InvalidInput +- Enable post-MVP WASM ops (sign-ext and mutable-globals), fix #968 +- More token tests +- Alloc example +- Mop up some residual uses of format strings in errors (no longer supported) +- Add wasm for upgrade write-bytes contract +- Scale the linear cost model coefficient; improve model fitting +- Error if bumping past max_entry_expiration and and host function to retrieve max_entry_expiration +- Make has checks to properly populate the storage map in recording mode +- Clean up budget cost types +- Add debug events to storage error reporting +- Switch to stable rust-analyzer in CI +- Add some comments and tests to env-common/symbol.rs +- Upgrade dalek crates to new stable versions +- Add an option to return an error when encountering non-root auth in recording mode +- Reject env.json if there are duplicate export names, fix #189 +- Tighten signature of unchecked_visit_val_obj, fix #595 +- Tighten dependencies further +- Fix incorrect argument name +- Bump env xdr +- Tighten up Map and Vector and metering coverage +- Store dummy instance for test contracts +- Update XDR to take change that removes SCSpecTypeSet +- Fix comparison in Tag::is_object +- Fix calibration due to delak change +- Charge write fees for expiration entry bumps +- Reduce the expiration entry write size +- Refactor host to support the new expiration ledger approach +- Add lifetime threshold +- Enable build workflow for merge groups +- Remove key size from rent change computation +- Take change from txSOROBAN_RESOURCE_LIMIT_EXCEEDED to txSOROBAN_INVALID +- Add ExpirationEntry support +- Add git rev dep check to ci +- Fix encode contract events metering +- Trim deps +- Reject vals with invalid tags, fix #1029 +- Host: fix EXPIRATION_ENTRY_SIZE constant +- Avoid iloop externalizing diagnostics for invalid references +- Add "coverage" Makefile target for lcov.info, add a test that extends coverage +- Fix asset-code rendering in native contract +- Fix rent changes extraction bug +- Graydon code review +- Jay code review +- Bump xdr and use curr instead of next +- Trivial xdr bump +- Tighten wasm interface version checks, and do on upload, Fix #1052 +- Update wasmi to 0.31.0-soroban +- Bump version to 20.0.0-rc1 + +#### Soroban Rust SDK + +- Implement deployer functions that return the deployed contract id +- Add Vec::to_vals +- Expose PRNG functions +- Expose secp256k1 and keccak256 in the SDK +- Upgrade env to v20.0.0-rc2 +- Elaborate more in comment on PRNG strengths and weaknesses +- Bump version to 20.0.0-rc2 +- Token events +- Update rust-version +- Update SDK to recent env +- Add admin function +- fix: use uppercase const name +- Fix allocator +- Add Arbitrary impl for Duration and Timepoint +- Fix Budget::memory_bytes_cost +- Bump env to c5607a2e9e296b2636b46dc910387aa3446b3e29 +- Bump env +- Update dalek, remove non-syn2 exemptions, tighten deps +- Update map iterator to be index based +- Remove ScSpecTypeSet support, which was already mostly dead +- Provide a way to allow non-root auth in recording mode +- Update env version in SDK +- Update SDK to support expiration entry rework +- Bump env for bump interface changes +- Correct comment on String::copy_into_slice +- Add doc comments about why symbol_short! +- Add test vector for workspace setups where contract types live in a lib +- Update rust-version +- Enable build workflow for merge groups +- re-enable linux arm64 builds +- Fix/criadoperez +- Text corrections +- Update rust-version +- bump env +- Fix name of the Stellar Asset admin client +- Add git rev dep check to ci +- Remove authorized from standard token interface +- Bump env +- Adapt to removal of ConversionError from number type conversions +- Bump version to 20.0.0-rc1 + +#### Soroban RPC + +- List --network under RPC options +- Enforce enabling diagnostics events +- simulateTransaction will automatically detect ledger entries which require restoring +- simulateTransaction will try to return diagnostic events on failure +- getLedgerEntries can query multiple ledger entries at once +- getLedgerEntries can set the maximum number of keys to query for +- Temporary ledger entry evictions are ingested +- Support StrKey format for contractIds field in getEvents request +- Limit the execution duration of the jrpc requests +- Performance fixes and improvements: add writethrough cache for config ledger entries and cache DB results better +- Fix ledgerentry visibility bug +- Fix simulation sequence number for bump/restore operations +- Improve missing command line arguments message +- Add missing config settings in ledger entry cache on reads +- Fix caching of GetLatestLedgerSequence +- Limit request size to 10MB +- Limit number of concurrent requests +- Improve HTTPRequestDurationLimiter by adding a recover handling +- Stream ledgers on initialization +- Increase instruction leeway to 20% in transaction simulation +- Validate xdr payloads in soroban-rpc requests +- Fix double-counting bug +- Fix datarace in bufferedResponseWriter.WriteOut +- Fix set_authorization_entries bug in transaction simulation +- Restore CORS support + +#### Soroban CLI + +- Add multi-party authorization + signing support +- Add two new output types for contract inspect +- Add config identity fund to fund accounts on networks +- Add restore/bump support with --wash_hash +- Allow passing true and false to boolean types +- Each generated contract method adds `-file-path` +- Add dotenv so directories can now set CLI args +- Generated TypeScript bindings have significantly improved +- Make Wallet injectable +- Correct generated README +- Allow fetching contract from network +- Removed --contract-name, added --overwrite +- Require configuring network settings +- Leveraging the latest soroban-client (v1.0.0-beta) +- Make aliases visible in help doc +- Ensure that the sim events are logged; improve format of main logs +- Fix --cost flag +- Set the exit code to 1 in case of an error +- Return an error once contract read is unable to read any entry +- wrap token no longer fails with valid inputs in sandbox mode + +## Preview 10 (July 13, 2023) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [e372df9f677961aac04c5a4cc80a3667f310b29f](https://github.com/stellar/stellar-xdr/commit/e372df9f677961aac04c5a4cc80a3667f310b29f) | +| Soroban Environment | `v0.0.17` | +| Soroban Interface Version | `51` | +| Stellar Core | `19.12.1-1406.b7d3a8f8d.focal~soroban` | +| Soroban Rust SDK | `v0.9.2` | +| Soroban CLI | `v0.9.1` | +| Soroban RPC | `v0.9.2` | +| Stellar Horizon | `stellar-horizon:2.26.1~soroban-373` | +| Stellar Friendbot | `soroban-v0.0.2-alpha` | +| Stellar Quickstart | `stellar/quickstart:soroban-dev@sha256:8a99332f834ca82e3ac1418143736af59b5288e792d1c4278d6c547c6ed8da3b` | +| Stellar JS Stellar Base | `10.0.0-soroban.3` | +| Stellar JS Soroban Client | `0.9.2` | +| Freighter | `5.2.3` | +| Laboratory | `2.11.0` | +| Soroban React Payment dapp | `1.1.0` | +| Soroban Mint Token dapp | `1.1.0` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | + +### Changelog + +#### XDR + +- Remove TransactionResultV2 +- Regenerate for overhaul of error codes +- Bump xdr +- Bump XDR +- Update for state-expiration XDR changes +- Update rust-version +- Bump XDR +- Regenerate for new crypto cost types +- Bump XDR +- Bump op +- Generate for storage type removal +- Drop ContractCostType::VerifyEcdsaSecp256k1Sig +- Update next to pickup int256 cost types +- Regenerate rename +- Regenerate for typo +- Bump xdr with contract instance storage changes +- Regenerate for removal of ScVal::StorageType +- Regenerate for RestoreFootprintOp +- Generate rename +- Update crate-git-revision + +#### Soroban Environment + +- Move a bunch of code out of host, reorg modules slightly. +- Remove temp storage, fixes #758 +- Bump xdr +- Anti features +- Err reform +- Some further cleanups to diagnostic events +- Bump xdr +- Enforce AUTH_REVOCABLE on contract balances +- Implement PRNG subsystem (round 2) +- Remove incorrect debug_assert from ed25519_pub_key_from_bytes +- Support Auth Next for host fns +- Bump xdr +- Update rust-version +- Switch to wasmi native fuel metering +- Fix get_authenticated_authorizations test utility. +- Change authentication contract errors to be auth errors. +- Improve VmInstantiation calibration +- Update storage interface for state expiration +- Update README.md +- Implement contract expiration bumps +- Calibrate wasmi fuel and tiered wasm instructions +- Bump env XDR +- Implement `TryFrom<&Error>` for ScVal +- Provide host function for authorizing deep contract calls from current contract +- Switch auth from autoincrement nonces to temporary random values. +- Fix metering for internal events +- Return strings for name/symbol and use strkey for issuer. +- Remove Mergeable and rename Exclusive to Persistent +- Add secp256k1 and keccak256 host functions +- Add host functions for returning contract ids +- Fix comparisons +- Rename rawval to val +- Enforce readonly footprint on bump +- Add host functions for {u,i}256 arithmetics +- More raw to val +- Support Timepoint, Duration +- Bump xdr +- Check map order when rebuilding from exact iter +- Updates for contract instance related XDR changes. +- Change StorageType to Just Be An Enum +- Bump xdr for RestoreFootprintOp +- Bump xdr for rename +- Add host function for bumping contract instance +- Implement contract instance storage in Soroban host. +- Change [IU]256 arithmetic host functions to take *Val not *Object. +- Replace increase and decrease functions with approve +- Expose bumps +- Fix calibration tests +- Change [IU]256 [from,to]\_bytes functions to work with Val +- Bump wasmi version + +#### Soroban Rust SDK + +- Fix storage comment +- Noop in instance bump for tests + +#### Soroban RPC + +- Update js-soroban-client dependency from 0.9.0 to 0.9.1 + +#### Soroban CLI + +- Update js-soroban-client dependency from 0.9.0 to 0.9.1 + +## Preview 9 (May 24th, 2023) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [2f16687fdf6f4bcfb56805e2035f69997f4b34c4](https://github.com/stellar/stellar-xdr/commit/2f16687fdf6f4bcfb56805e2035f69997f4b34c4) | +| Soroban Environment | `v0.0.16` | +| Soroban Interface Version | `37` | +| Stellar Core | `19.10.1-1310.6649f5173.focal~soroban` | +| Soroban Rust SDK | `v0.8.4` | +| Soroban CLI | `v0.8.0` | +| Soroban RPC | `v0.8.0` | +| Stellar Horizon | `stellar-horizon:2.25.1~soroban-346` | +| Stellar Friendbot | `soroban-v0.0.2-alpha` | +| Stellar Quickstart | `stellar/quickstart:soroban-dev@sha256:57e8ab498bfa14c65595fbb01cb94b1cdee9637ef2e6634e59d54f6958c05bdb` | +| Stellar JS Stellar Base | `9.0.0-soroban.1` | +| Stellar JS Soroban Client | `0.7.0` | +| Freighter | `5.0.1` | +| Laboratory | `2.10.0` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | + +### Changelog + +#### XDR + +See https://github.com/stellar/rs-stellar-xdr/releases v0.0.16 for more details. + +#### Soroban Environment + +See https://github.com/stellar/rs-soroban-env/releases v0.0.16 for more details. + +#### Soroban Rust SDK + +See https://github.com/stellar/rs-soroban-sdk/releases v0.8.4 for more details. + +#### Soroban RPC + +See https://github.com/stellar/soroban-tools/releases v0.8.0 for more details. + +#### Soroban CLI + +See https://github.com/stellar/soroban-tools/releases v0.8.0 for more details. + +## Preview 8 (April 4th, 2023) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [7356dc237ee0db5626561c129fb3fa4beaabbac6](https://github.com/stellar/stellar-xdr/commit/7356dc237ee0db5626561c129fb3fa4beaabbac6) | +| Soroban Environment | `v0.0.15` | +| Soroban Interface Version | `32` | +| Stellar Core | `19.8.1-1246.064a2787a.focal~soroban` | +| Soroban Rust SDK | `v0.7.0` | +| Soroban CLI | `v0.7.0` | +| Soroban RPC | `v0.7.0` | +| Stellar Horizon | `stellar-horizon:2.24.62~soroban-338` | +| Stellar Friendbot | `soroban-v0.0.2-alpha` | +| Stellar Quickstart | `stellar/quickstart:soroban-dev@sha256:a057ec6f06c6702c005693f8265ed1261e901b153a754e97cf18b0962257e872` | +| Stellar JS Stellar Base | `8.2.2-soroban.12` | +| Stellar JS Soroban Client | `v0.5.0` | +| Freighter | `v2.12.2` | +| Laboratory | `v2.8.0` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | + +### Breaking changes note + +This release includes a major overhaul of the value representation at the XDR level, which potentially breaks contracts that rely on the old type definitions, here is a summary of the changes: + +- Removed the object/value split at the XDR level +- Expanded size of value tag from 8 to 128 cases +- Removed types: `U63`, `Static`, `Bitset` +- Added `U256`, `I256` and special case u64 subtypes `Timepoint` and `Duration` +- Added `String` which is a `Bytes`-like object but displays as text +- Enhanced `Symbol` to have a maximum size of 32 bytes (no more 10-char limit) + +SDK support has also been added/updated for these types. See [xdr](https://github.com/stellar/stellar-xdr/pull/70), [env](https://github.com/stellar/rs-soroban-env/pull/682) and [sdk](https://github.com/stellar/rs-soroban-sdk/pull/879) changes for more details. + +### Changelog + +#### XDR + +- Make types wrapping Strings no longer aliases +- Value representation overhaul +- Diagnostic events + +See https://github.com/stellar/rs-stellar-xdr/releases v0.0.15 for more details. + +#### Soroban Environment + +- Remove the unnecessary error events that appeared in non-error scenarios. +- Reform metering for value cloning and memory allocation. +- Provide more test coverage for Auth Next. +- Check issuer clawback flag when new contract balance is created. +- Add a test that covers out-of-order require_auth calls. +- Token name in events. +- Adapt Storage and SnapshotSource to use Rc only. +- Add host functions to convert addresses to/from account/contract ids. +- Value and object representation overhaul. +- Move InvokerType from common env to internal host implementation. +- fix thinko in vec_new_from_linear_memory. +- Improve safety of custom account contracts. +- Split out DeclaredSizeForMetering from MeteredClone and use it for Compare. +- Structured debug events. +- Fix an i128 conversion bug. +- Use new bulk memory ops for tuples. +- Host budget metering, cost model, calibration changes. +- Increase memory budget to 50MB. + +See https://github.com/stellar/rs-soroban-env/releases v0.0.15 for more details. + +#### Soroban Rust SDK + +- Add docs in specs for types. +- Rename Serialize/Deserialize to To/FromXdr. +- Use the updated source_account() interface. +- Update storage docs. +- Expose reset budget functions to testutils. +- Adapt storage and snapshot interface to env changes. +- Add utils for converting from/to contract/account ids. +- Value and object representation overhaul. +- Add a getter for address of a generated contract client. +- Use String for log_fmt_values. +- Add a utility to call \_\_check_auth in tests. +- Add more support for the new types in soroban-spec. +- Use vector bulk-init in Vec. +- Bump env and update for event changes. +- fix(macro): add new XDR types to parser. +- Update budget test. +- bump env and update budget print. + +See https://github.com/stellar/rs-soroban-sdk/releases v0.7.0 for more details. + +#### Soroban RPC + +- Set a maximum ledger latency in /health method. +- Add resultMetaXdr and envelopeXdr back to getTransaction() response. +- Support for new `diagnostic` contract events. + - soroban-rpc: Add filtering support for diagnostic events. + - soroban-rpc: Ingest diagnostic events. +- Remove 'soroban serve' subcommand. +- Limit preflight-computation concurrency through a worker pool. +- Miscellaneous fixes. +- General improvements to compilation and testing. +- Add contract events to simulateTransaction's response. + +See https://github.com/stellar/soroban-tools/releases v0.7.0 for more details. + +#### Soroban CLI + +- Improved documentation, and `--help` text + - feat: auto-generate comprehensive CLI docs. +- When using `invoke`, contract function names now come after the `--`, like `soroban invoke --id -- hello --to "world"` +- Improvements to identity management + - fix: allow using ENV to add identity and pass secret. + - Replaced `--identity`, `--secret-key`, and `--account` flags. Replace with single `--source`, which understands identities, and secret keys. + - feat: add better docs for UDT and add examples for each arg. +- Added `soroban --version` +- Better errors, replacing `Unknown` +- Refactor, so that the cli can be imported via the new `soroban-test` crate. This makes testing and using soroban-cli as a library easier. + - feat: reorg into a proper library. + - feat: add new soroban-test crate. +- Update to Clap v4. +- fix(CLI): string/u/i256 XDR parsing. +- Support for new `diagnostic` type events + +See https://github.com/stellar/soroban-tools/releases v0.7.0 for more details. + +## Preview 7 (February 16th, 2023) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [df18148747e807618acf4639db41c4fd6f0be9fc](https://github.com/stellar/stellar-xdr/commit/df18148747e807618acf4639db41c4fd6f0be9fc) | +| Soroban Environment | `v0.0.14` | +| Soroban Interface Version | `29` | +| Stellar Core | `19.7.1-1204.871accefc.focal~soroban` | +| Soroban Rust SDK | `v0.6.0` | +| Soroban CLI | `v0.6.0` | +| Soroban RPC | `0.6.1-13` | +| Stellar Horizon | `stellar-horizon:2.24.61~soroban-335` | +| Stellar Friendbot | `soroban-v0.0.2-alpha` | +| Stellar Quickstart | `stellar/quickstart:soroban-dev@sha256:81c23da078c90d0ba220f8fc93414d0ea44608adc616988930529c58df278739` | +| Stellar JS Stellar Base | `8.2.2-soroban.11` | +| Stellar JS Soroban Client | `v0.4.0` | +| Freighter | `v2.10.0` | +| Laboratory | `v2.7.0` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | + +### Breaking changes note + +This release comes with a revamp of authorization approach that is breaking for most of the contracts that did any sort of auth logic or used tokens. [example](https://soroban.stellar.org/docs/tutorials/auth) and [authorization overview](../learn/smart-contract-internals/authorization.mdx) for more details. + +### Changelog + +#### XDR + +- Update Rust XDR for Auth Next. + +See https://github.com/stellar/rs-stellar-xdr/releases v0.0.13 and v0.0.14 for more details. + +#### Soroban Environment + +- Allow for a custom budget outside tests +- Restructure Event to be cheap to clone and allow it to be rolled back +- Add auth_required support for non-account balances +- Reform TryFromVal to reduce number of impls +- Fix override of panic hook during cross-contract testing +- Add EnvBase::Error, remove CheckedEnv, make Env methods return Error +- Initial Auth Next implementation in Soroban Host +- Add 13-tuple conversions +- Do not include Status as the first arg of a DebugEvent +- Add a simpler version of require_auth +- Use auth specific errors +- Emulate classic account authentication in recording auth mode. +- Change the interface for the auth testing utility. + +See https://github.com/stellar/rs-soroban-env/releases v0.0.13 and v0.0.14 for more details. + +#### Soroban Rust SDK + +- Support variants with multiple fields in UDTs +- Error on UDT enums with 0-element tuple variants +- Allow xlm balance updates +- Fix vec insert +- Adapt SDK to changes to {Try,}{From,Into}Val in env crates +- Fix vec pop_front +- Use better storage error in tests +- Adapt to introduction of Env::Error +- Improve compiler errors for UDTs +- Allow same named types and functions +- Make soroban_token_spec::spec_xdr easier to keep updated +- Remove build-optimized makefile target +- Auth Next changes in SDK +- Add docs to contract spec entries +- SDK support for simplified require_auth + +See https://github.com/stellar/rs-soroban-sdk/releases v0.5.0 and v0.6.0 for more details. + +#### Soroban RPC + +- Configure default limit, update cursor / startLedger validation, and include latest ledger for getEvents +- Add support for AuthNext +- Fix rollback error in logs +- Add getNetwork command +- Implement event storage +- Implement ledger entry storage +- Refactor db and ingestion packages, add ingestion of LedgerCloseMeta +- Implement simulateTransaction using rust instead of preflight +- Simplify topic matching for events search + +See https://github.com/stellar/soroban-tools/releases v0.5.0 v0.6.0 for more details. + +#### Soroban CLI + +- Add option for running contract with unlimited budget +- Add support for AuthNext +- Add config command +- Add getNetwork support +- Reorganize CLI commands + +See https://github.com/stellar/soroban-tools/releases v0.5.0 v0.6.0 for more details. + +## Preview 6 (January 9th, 2023) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [026c9cd074bdb28ddde8ee52f2a4502d9e518a09](https://github.com/stellar/stellar-xdr/tree/026c9cd074bdb28ddde8ee52f2a4502d9e518a09) | +| Soroban Environment | `v0.0.12` | +| Soroban Interface Version | `27` | +| Stellar Core | `19.6.1-1158.c0ad35aa1.focal~soroban` | +| Soroban Rust SDK | `v0.4.2` | +| Soroban CLI | `v0.5.0` | +| Soroban RPC | `0.4.0-10` | +| Stellar Horizon | `stellar-horizon:2.22.0~soroban-323` | +| Stellar Friendbot | `soroban-v0.0.2-alpha` | +| Stellar Quickstart (amd64) | `stellar/quickstart:soroban-dev@sha256:c4429def497ed78ca99ae40c8e2522ec932081b4428df992900b5bc8d53bd642` | +| Stellar Quickstart (arm64) | `stellar/quickstart:soroban-dev@sha256:37205510329845f5fe533bb7c4c182d8f35b3a3515f0a6729889067663e1ec97` | +| Stellar JS Stellar Base | `8.0.1-soroban.6` | +| Stellar JS Soroban Client | `v0.3.0` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | + +### Changelog + +#### Soroban Environment + +- Wasm instruction level calibration +- Replace `im` containers with `Vec` +- Remove EnvVal +- Fix first/last_index_of functions to use deep object comparison +- Export type aliases for Storage and Footprint +- Add env.json +- Remove built-in soroban token +- Update rust-version +- Use single balances in the Stellar Asset Contract +- Remove unnecessary i128 clone + +See https://github.com/stellar/rs-soroban-env/releases v0.0.12 for more details. + +#### Soroban Rust SDK + +- Fix contractimpl for empty impl blocks +- bump env and fix token interface +- Remove init from the token interface +- Update rust-version +- Require only a borrow of Host when updating ledger snapshot +- Fix doc comments and clippy warnings on ledger snapshot +- Add LedgerSnapshot::update(Host) +- undo token deploy revert +- Revert deploy and update env +- Remove token deploy in anticipation of removal of the soroban only built-in token +- Make ledger snapshot write file create dir path +- Make errors explicit in ledger snapshot functions +- Update env to include delete-im, remove-EnvVal changes + +See https://github.com/stellar/rs-soroban-sdk/releases v0.4.0, v0.4.1, v0.4.2 for more details. + +#### Soroban RPC + +- Add GitHub linting for GO code + +See https://github.com/stellar/soroban-tools/releases v0.4.0 for more details. + +#### Soroban CLI + +- Update rust version +- StrValError --> Error and implemented using thiserror +- Use soroban-ledger-snapshot for managing ledger.json +- Use LedgerSnapshot::update to update snapshot instead of unpacking the host and updating ledger info and entries separately. +- Add events subcommand for local and remote event viewing +- Deprecate token create command + +See https://github.com/stellar/soroban-tools/releases v0.4.0 for more details. + +## Preview 5 (December 8th, 2022) + +### Software + +| Software | Version | +| --- | --- | +| XDR | [026c9cd074bdb28ddde8ee52f2a4502d9e518a09](https://github.com/stellar/stellar-xdr/tree/026c9cd074bdb28ddde8ee52f2a4502d9e518a09) | +| Soroban Environment | `v0.0.11` | +| Soroban Interface Version | `26` | +| Stellar Core | `stellar-core_19.5.1-1137.b3a6bc281.focal~soroban` | +| Soroban Rust SDK | `v0.3.2` | +| Soroban CLI | `v0.3.3` | +| Soroban RPC | `0.3.1-32` | +| Stellar Horizon | `stellar-horizon:2.22.0~soroban-318` | +| Stellar Friendbot | `soroban-v0.0.2-alpha` | +| Stellar Quickstart | `stellar/quickstart:soroban-dev@sha256:8046391718f8e58b2b88b9c379abda3587bb874689fa09b2ed4871a764ebda27` | +| Stellar JS Stellar Base | `8.0.1-soroban.5` | +| Stellar JS Soroban Client | `v0.2.0` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | + +### Changelog + +#### XDR + +- Remove BigInt from ScVal +- Add u128 and i128 to ScVal +- Change the structure of events in meta +- Change transaction operation structure for Soroban contract deployments and invocations + +See https://github.com/stellar/stellar-xdr/compare/48d5e17ae63bba0aa9725cd9d18d7438f44c07b1...026c9cd074bdb28ddde8ee52f2a4502d9e518a09 for more details. + +#### Soroban Environment + +- Upgrade crate-git-revision to 0.0.4 (contribution by [@brson]) +- Add Host::with_artificial_test_contract_frame +- Restructure benchmark framework, add calibration code for all CostTypes +- Disable budget costs for object cmp +- Env changes to decouple contract instance from source +- Remove BigInt, switch everything to u128 and i128 + +See https://github.com/stellar/rs-soroban-env/releases v0.0.10, v0.0.11 for more details. + +#### Soroban Rust SDK + +- Rename data to storage by @leighmcculloch in #786 +- Add ability to get current Budget from env in tests by @leighmcculloch in #789 +- Add Env::as_contract for testutils by @leighmcculloch in #761 +- Update contract deployment to match the Env changes by @dmkozh in #766 +- Make contract_id public in contract clients. by @dmkozh in #768 +- Remove BigInt by @sisuresh in #770 +- Add soroban-ledger-snapshot +- Change gen JSON output from stream to array (contribution by [@vinamogit]) +- Contributions from [@vinamogit] + +See https://github.com/stellar/rs-soroban-sdk/releases v0.3.0, v0.3.1, v0.3.2 for more details. + +#### Soroban RPC + +- Add soroban-rpc version subcommand +- Add a new getLedgerEntry jsonrpc method, deprecating and replacing getContractData allowing an application to fetch any ledger entry +- Added new getEvents method currently backed by horizon + +See https://github.com/stellar/soroban-tools/releases v0.3.0, v0.3.1 for more details. + +#### Soroban CLI + +- Fix apt-get install in publish workflow +- Added type description to errors when using --arg (contribution by [@waldmatias]) +- Additional CLI support for the contract deployment changes +- Adds support for `soroban contract deploy --wasm-hash`, as well as `soroban contract install --wasm` +- Add xdr and env version to version subcommand output +- Fix that the footpoint was not set correctly when deploying the wrapped token contract (contribution by [@overcat]) +- Contributions from [@waldmatias], [@willemneal], [@overcat], [@brson] + +See https://github.com/stellar/soroban-tools/releases v0.3.0, v0.3.1, 0.3.3 for more details. + +## Preview 4 (November 15th, 2022) + +### Software + +| Software | Version | +| --- | --- | +| XDR | https://github.com/stellar/stellar-xdr-next/tree/48d5e17ae63bba0aa9725cd9d18d7438f44c07b1 | +| Soroban Environment | `v0.0.9` | +| Soroban Interface Version | `23` | +| Stellar Core | `19.5.1-1111.eba1d3de9.focal~soroban` | +| Soroban Rust SDK | `v0.2.1` | +| Soroban CLI | `v0.2.1` | +| Soroban RPC | `0.3.1-32` | +| Stellar Horizon | `2.22.0~soroban-304` | +| Stellar Quickstart | `stellar/quickstart:soroban-dev@sha256:0993d3350148af6ffeab5dc8f0b835236b28dade6dcae77ff8a09317162f768d` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | + +### Changelog + +#### XDR + +- Trivial whitespace changes + +#### Soroban Environment + +- Vm tuning +- Add token events +- Catch panics from native contracts in try_call +- Improved built-in token error reporting +- Add missing conversion from Status->ScStatus for the ContractError variant +- Capture user panic-strings in native builds, avoid spurious NoContractRunning error +- Few small fixes to error debug events + +See https://github.com/stellar/rs-soroban-env/releases v0.0.7, v0.0.8, v0.0.9 for more details. + +#### Soroban Rust SDK + +- Add Logger::print in testutils +- Add conversion from Address to Identifier +- Remove deprecated functions +- Remove panic-catching and fix tests that use newly-working native try_call +- Reintroduce an optimized aborting unwrap +- Add assert_with_error! macro +- Rename panic_error! to panic_with_error! + +See https://github.com/stellar/rs-soroban-sdk/releases v0.2.0, v0.2.1 for more details. + +#### Soroban RPC + +- Initial Release + +#### Soroban CLI + +- Strings and symbols are rendered as text in JSON output +- Bytes are rendered as hex in JSON output +- Accounts in invocations are created in sandbox +- Add optimize sub-command that optimizes contracts +- Fix the bin name in the completion command +- Fix jsonrpc compliance issue + +See https://github.com/stellar/soroban-cli/releases v0.2.0, v0.2.1 for more details. + +## Preview 3 (October 11th, 2022) + +### Software + +| Software | Version | +| --- | --- | +| XDR | https://github.com/stellar/stellar-xdr-next/tree/161e2e5b64425a49f9ccfef7f732ae742ed5eec4 | +| Soroban Environment | `v0.0.6` | +| Soroban Interface Version | `23` | +| Stellar Core | `19.4.1-1097.4e813f20e.focal~soroban` | +| Soroban Rust SDK | `v0.1.1` | +| Soroban CLI | `v0.1.2` | +| Soroban RPC | ??? | +| Stellar Horizon | `2.22.0~soroban-304` | +| Stellar Quickstart | `stellar/quickstart:soroban-dev@sha256:e58d83f92a61f43406087f488dd1cba110a92646dca85f14b3a416163609e853` | +| Futurenet Network Passphrase | `Test SDF Future Network ; October 2022` | + +### Changelog + +See https://www.stellar.org/blog/soroban-a-new-smart-contract-standard. + +## Preview 2 (September 13th, 2022) + +See https://www.stellar.org/developers-blog/soroban-preview-release-2. + +## Preview 1 (August 1st, 2022) + +See https://www.stellar.org/blog/project-jump-cannon-soroban-preview-release. + +[@waldmatias]: https://github.com/waldmatias +[@willemneal]: https://github.com/willemneal +[@overcat]: https://github.com/overcat +[@brson]: https://github.com/brson +[@vinamogit]: https://github.com/vinamogit diff --git a/docusaurus.config.js b/docusaurus.config.js index eaeced443..77197a830 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -96,7 +96,15 @@ const config = { "classic", /** @type {import('@docusaurus/preset-classic').Options} */ ({ - blog: false, + blog: { + path: 'meeting-notes', + blogTitle: 'Meeting Notes', + blogDescription: 'Notes and recordings from the Soroban protocol & developers meetings', + blogSidebarTitle: 'All meetings', + blogSidebarCount: 'ALL', + postsPerPage: 'ALL', + routeBasePath: 'meetings', + }, docs: { showLastUpdateTime: true, showLastUpdateAuthor: true, @@ -166,6 +174,12 @@ const config = { label: 'Tools', position: 'left', }, + { + type: 'docSidebar', + sidebarId: 'reference', + label: 'Reference', + position: 'left', + }, { type: "dropdown", label: "Network", @@ -213,6 +227,11 @@ const config = { }, ] }, + { + to: '/meetings', + label: 'Meetings', + position: 'right', + }, { href: "https://github.com/stellar/stellar-docs", label: "GitHub", diff --git a/meeting-notes/2024-01-18.mdx b/meeting-notes/2024-01-18.mdx new file mode 100644 index 000000000..0e5d48509 --- /dev/null +++ b/meeting-notes/2024-01-18.mdx @@ -0,0 +1,32 @@ +--- +title: '2024-01-18' +authors: naman +tags: [protocol] +--- + + + +[Discord agenda thread](https://discord.com/channels/897514728459468821/1196897067445010452) + +1. The need for zk-enabling encryption curves like BLS12-381. [Github thread](https://github.com/stellar/rs-soroban-env/issues/779). +1. Use cases that ecosystem is interestd in: + 1. Excellar, i.e. folks that kicked off this conversation by submitting a [PR for BLS12-381](https://github.com/stellar/rs-soroban-env/pull/1310), wants to add a DAO-controlled oracle where the elliptical curve provides the ability to add new DAO voters + 2. Zkbricks wants to build an L2 system for that enables secret state for arbitrary smart contracts + 3. Skyhitz wants to use stellar for efficient compute, cost, and scalability while using zk to prove ownership of high-value assets on another chain + 4. Use case enumeration continues in the [discord thread](https://discord.com/channels/897514728459468821/1197663875512942653). +1. Considerations for host function implementation + 1. Core devs questioned whether BLS12-381 was the right curve and also highlighted the need to determine the correct level of abstraction given there is a tradeoff between flexibility and efficiency. Lower level of abstraction will enable more flexibility but result in more hot loops in the wasm while a higher level of abstraction will be highly efficient but will restrict generality. + 2. ZkBricks thought that there is a need to directly expose pairings and group operations without any level of abstraction. The space is in active development and flexibility is needed to try out new approaches and proof systems. From the point of view of crypto agility, it would be good to expose a generic interface that supports a variety of curves in the backend. +1. Path Forward + 1. Core devs mentioned crypto curves can be experimented locally by linking rust crates, which it turns out, had failed in the past. This will be explored and fixed. + 2. ZkBricks and others will prototype locally and provide feedback. +1. What are the best practices for managing transactions in the frontend, with respect to transaction ordering. +1. Core devs confirmed that ordering is intentionally arbitrary. +1. Request for an API for current version of the environment/sdk +1. Github issue filed for the RPC to return versions of the current node. \ No newline at end of file diff --git a/meeting-notes/2024-01-26.mdx b/meeting-notes/2024-01-26.mdx new file mode 100644 index 000000000..8b9068ecc --- /dev/null +++ b/meeting-notes/2024-01-26.mdx @@ -0,0 +1,33 @@ +--- +title: '2024-01-26' +authors: kalepail +tags: [developer] +--- + + + +[Discord agenda thread](https://discord.com/channels/897514728459468821/1199121845656486009) + +1. Plan and schedule for these meetings + 1. Protocol meetings every other Thursday at 4pm ET + 2. Developer meetings every other Friday at 1pm ET + 3. Will continue to adjust as needed +2. Fee bump bug - [announcement](https://stellar.org/blog/developers/fee-bump-bug-disclosure) | [discussion thread](https://discord.com/channels/897514728459468821/1200432249594707998/1200432306314281000) + 1. Fee sponsorship bug: unused fee is refunded to the inner tx source rather than the sponsor source. + 2. Fix in new release. Up to the ecosystem and validators to upgrade. The fix will likely be rolled out before Phase 2. + 3. Up to validators to determine if they’d like to push the v20 upgrade date to wait for the fix; or upgrade with current release. +3. TxMeta Deprecation in Horizon - [announcement](https://discord.com/channels/897514728459468821/900374272751591424/1199438109796999298) +4. Ideas around testing against ledger snapshots - [request](https://discord.com/channels/897514728459468821/1199121845656486009/1199158421254049912) + 1. Define the needs a bit more clearly + 2. Definitely something here we should be addressing to make testing against specific ledger state easier +5. How do you get a list of smart contracts? - [thread](https://discord.com/channels/897514728459468821/1199121845656486009/1199739331078803496) + 1. Observe create contract ops as ledgers close + 2. Use an [indexing service](https://developers.stellar.org/docs/tools/developer-tools#data-indexers) +6. What is the status of contracts caching support? - [question](https://discord.com/channels/897514728459468821/1199121845656486009/1200484710447587490) + 1. [response](https://discord.com/channels/897514728459468821/1199121845656486009/1200516877680644276) diff --git a/meeting-notes/2024-02-01.mdx b/meeting-notes/2024-02-01.mdx new file mode 100644 index 000000000..6378cb821 --- /dev/null +++ b/meeting-notes/2024-02-01.mdx @@ -0,0 +1,27 @@ +--- +title: '2024-02-01' +authors: naman +tags: [protocol] +--- + + + +[Discord agenda thread](https://discord.com/channels/897514728459468821/1201979721211203614) + +1. The proposal is to advance stellar-core by adding a host function to verify the secp256r1 signature, which is the most common elliptic curve used outside of the blockchain space. It is useful in connecting off-chain authentication interfaces with on-chain functionality. +1. Note that the proposal is not for a new signer type but a host function. +1. Leigh investigated adding support for the WebAuthN use case, by allowing a custom account / smart contract to sign soroban auth entries using a secp256r1-signed payload. +1. secp256r1 is supported by phones, passkeys, and enables an app to replace passwords. This is a massive benefit to user-facing applications like wallets. +1. Pros and cons of the interface: blockchains generally implement the recovery interface over the verification interface but verification is easier for developers as it reduces burden on the client and the network. +1. The WebAuthN use case requires encoding and decoding of base64 payloads and decoding JSON blobs, which is not currently supported in Soroban. +1. While there are hacky ways of accomplishing the latter, it’s not a great developer experience and final implementation is susceptible to breakages on updates. +1. It is also costly to bundle decoding with verification in guest. +1. Soroban has always led with a batteries included mindset. Keeping in line with that approach, it makes sense to further investigate and determine whether a host function makes sense for these as well. +1. Leigh’s implementation may require further evaluation of the crates used for ecdsa and p256. +1. Brief discussion around proposed process for adding of a host function by a non-core dev. \ No newline at end of file diff --git a/meeting-notes/2024-02-09.mdx b/meeting-notes/2024-02-09.mdx new file mode 100644 index 000000000..3042ee8b7 --- /dev/null +++ b/meeting-notes/2024-02-09.mdx @@ -0,0 +1,20 @@ +--- +title: '2024-02-09' +authors: kalepail +tags: [developer] +--- + + + +[Discord agenda thread](https://discord.com/channels/897514728459468821/1204462856037470248) + +1. Stellar Asset List (SEP-0042) draft presentation by [OrbitLens](https://github.com/orbitlens) + 1. [SEP draft](https://github.com/orbitlens/stellar-protocol/blob/sep-0042-token-lists/ecosystem/sep-0042.md) + 2. [Discord discussion](https://discord.com/channels/897514728459468821/1162558946867953704) +2. Stellar + Soroban documentation survey + 1. [Take the survey](https://discord.com/channels/897514728459468821/1204462856037470248/1205196745877757962) \ No newline at end of file diff --git a/meeting-notes/2024-02-15.mdx b/meeting-notes/2024-02-15.mdx new file mode 100644 index 000000000..71c74b1c9 --- /dev/null +++ b/meeting-notes/2024-02-15.mdx @@ -0,0 +1,43 @@ +--- +title: '2024-02-15' +authors: naman +tags: [protocol] +--- + + + +[Discord agenda thread](https://discord.com/channels/897514728459468821/1207385360116490360) + +1. The meeting was focused on the process of adding host functions, using WebAuthN as the example use case; continued from the previous meeting. +2. Discussion of remaining concerns with adding secp256r1 verification host function from previous meeting. + - What does it mean for secp256r1 to be added as a host function vs. as a signer type? + - As a host function, user can sign soroban auth entries. Need another stellar account to fund and submit tx to the chain. The latter can be done by a stellar account which may be operated by a wallet or a contract. + - __check_auth is invoked when the contract being interacted with calls require_auth +3. CAP-52 was drafted to introduce encoding/decoding functions for Base64, which is needed by WebAuthN. Considerations discussed in the meeting: + - Performance: 1066 bytes that costs 1M instr to encode a 32byte hash; so the cost is very small and it’s questionable whether a host function is required. + - Interface required two functions (encode/decode) + - Implementation wise, WebAuthN requires url alphabet and padding, which decoder likely needs to support. Should we use symbols or ints? Do we need custom alphabets? + - Do we really need more encoding schemes? Isn’t XDR enough? + - Expensive auth mechanisms, i.e. webauthn, cannot be coupled with contracts with heavy business logic (which might be a lot of contracts), thus making adoption problematic. + - We should probably add building blocks to enable the ecosystem to add new use cases. +4. CAP-53 was drafted to introduce encoding/decoding functions for JSON, which is needed by WebAuthN. Considerations discussed in the meeting: + - Performance: 3.9Kb, 2.5M CPU instr. + - If the size of the input blob is unknown, execution time will increase. + - Valuable to have such a lightweight function that’ll be used in various place. + - Interface: 11 functions + - What to do with numbers and decimals? Add decimals and floats? + - We only have to extract one field for WebAuthN but what about the general case? + - The number type in JSON is decimal but soroban does not support that. How should this be handled? + - Discussion around alternative interface and implementations. +5. Core dev concerns + - Maintainability: if you add a host function, you have to maintain it forever. If there are more versions, we have to keep it around. + - Expanded surface area for security bugs. + - Should define a path where core dev is not in the implementation loop, as their schedules are packed with stability work. How to prioritize against stability work, which may get derailed due to new functionality such as what’s being currently discussed. + - Next steps: + - Core team to put together a plan for adding Base64. This is an important exercise that helps determine even more challenges of doing so. The output of this exercise may be that base64 _shouldn’t_ in fact be implemented at this point. + - Discussion around the JSON interface is to be continued. diff --git a/meeting-notes/2024-02-22.mdx b/meeting-notes/2024-02-22.mdx new file mode 100644 index 000000000..a4460c838 --- /dev/null +++ b/meeting-notes/2024-02-22.mdx @@ -0,0 +1,19 @@ +--- +title: '2024-02-22' +authors: kalepail +tags: [developer] +--- + + + +[Discord agenda thread](https://discord.com/channels/897514728459468821/1209582245824823337) + +1. Latest and greatest on the TypeScript bindings with [@chadoh](https://github.com/chadoh) +2. [Available RPC providers](/network/soroban-rpc/rpc-providers) +3. Standing up a [`soroban-rpc` docker container](/network/soroban-rpc/admin-guide#docker-image) +4. Installing and invoking a [Stellar Asset Contract](https://soroban.stellar.org/docs/tokens/stellar-asset-contract) on mainnet in Phase 0 diff --git a/meeting-notes/authors.yml b/meeting-notes/authors.yml new file mode 100644 index 000000000..763ddbdc7 --- /dev/null +++ b/meeting-notes/authors.yml @@ -0,0 +1,10 @@ +kalepail: + name: Tyler van der Hoeven + title: Lead Developer Advocate + url: https://github.com/kalepail + image_url: https://github.com/kalepail.png +naman: + name: Naman Kumar + title: Senior Product Manager + url: https://github.com/namankumar + image_url: https://github.com/namankumar.png diff --git a/network/soroban-rpc/admin-guide.mdx b/network/soroban-rpc/admin-guide.mdx index 265616b65..2f49bc4da 100644 --- a/network/soroban-rpc/admin-guide.mdx +++ b/network/soroban-rpc/admin-guide.mdx @@ -3,11 +3,11 @@ sidebar_position: 20 title: Admin Guide --- -The RPC service allows you to communicate directly with Soroban via a [JSON RPC interface](https://soroban.stellar.org/api/). +The RPC service allows you to communicate directly with Soroban via a [JSON RPC interface](./README.mdx). -For example, you can build an application and have it [send a transaction](https://soroban.stellar.org/api/methods/sendTransaction), [get ledger](https://soroban.stellar.org/api/methods/getLedgerEntries) and [event data](https://soroban.stellar.org/api/methods/getEvents), or [simulate transactions](https://soroban.stellar.org/api/methods/simulateTransaction). +For example, you can build an application and have it [send a transaction](./methods/sendTransaction.mdx), [get ledger](./methods/getLedgerEntries.mdx) and [event data](./methods/getEvents), or [simulate transactions](./methods/simulateTransaction). -Alternatively, you can use one of Soroban's [client SDKs](https://soroban.stellar.org/docs/category/sdks), such as the [stellar-sdk](https://soroban.stellar.org/docs/reference/sdks/js), which will need to communicate with an RPC instance to access the network. +Alternatively, you can use one of Soroban's [client SDKs](/docs/tools/sdks/library), such as the [@stellar/stellar-sdk](/docs/tools/sdks/library#javascript-sdk), which will need to communicate with an RPC instance to access the network. ## Run Your Own Instance for Development @@ -111,7 +111,7 @@ soroban contract invoke \ When you're done with your Standalone node, you can close it with ctrlc (not cmd). This will fully remove the container (that's what the `--rm` option to the `docker` command does), which means you will need to re-deploy your contract and re-fund your identity the next time you start it. If you work with local nodes often, you may want to create scripts to make these initialization steps easier. For example, see the [example dapp's `initialize.sh`](https://github.com/stellar/soroban-example-dapp/blob/abdac3afdb6c410cc426831ece93371c1a27347d/initialize.sh). -[Testnet]: https://soroban.stellar.org/docs/reference/networks +[Testnet]: /docs/reference/networks [Run on Sandbox]: https://soroban.stellar.org/docs/getting-started/hello-world#run-on-sandbox ### Testnet @@ -211,7 +211,7 @@ helm install my-rpc stellar/soroban-rpc \ This example of Helm chart usage highlights some key aspects: -- Set the `global.image.sorobanRpc.tag` to a tag from the [soroban-rpc dockerhub repo](https://hub.docker.com/r/stellar/soroban-rpc) for the image version you want to run. Refer to [the releases page](https://soroban.stellar.org/docs/releases) to find the correct tag for the Soroban release you are running. +- Set the `global.image.sorobanRpc.tag` to a tag from the [soroban-rpc dockerhub repo](https://hub.docker.com/r/stellar/soroban-rpc) for the image version you want to run. Refer to [the software versions page](/docs/reference/software-versions) to find the correct tag for the Soroban release you are running. - The RPC server stores a revolving window of recent data from network ledgers to disk. The size of that data varies depending on the network and its transaction volumes, but it has an estimated range between 10 to 100 MB. To ensure the RPC pod has consistent access to disk storage space and read/write throughput, this example demonstrates how to optionally enable the Helm chart deployment to use a `PersistentVolumeClaim` (PVC) of 100MB from `default` storage class on Kubernetes by enabling these persistence parameters: @@ -637,4 +637,4 @@ The logs have the format: ``` time= level= msg= pid= subservice= -``` \ No newline at end of file +``` diff --git a/network/soroban-rpc/rpc-providers.mdx b/network/soroban-rpc/rpc-providers.mdx index 09938bbff..66760456c 100644 --- a/network/soroban-rpc/rpc-providers.mdx +++ b/network/soroban-rpc/rpc-providers.mdx @@ -22,7 +22,7 @@ Testnet and Mainnet._ \**_Please note that both Blockdaemon and Quicknode combine Horizon and RPC in the same endpoint._ -## SDF Provided RPC (Futurenet and Testnet only) +## SDF Provided RPC (Futurenet and Testnet only) {#sdf-provided-rpc} SDF has made available Soroban RPC with access to the Futurenet and Testnet networks. These services are free to use, and are suitable for development and testing. diff --git a/network/stellar-disbursement-platform/README.mdx b/network/stellar-disbursement-platform/README.mdx index c22fcb640..6e69615a2 100644 --- a/network/stellar-disbursement-platform/README.mdx +++ b/network/stellar-disbursement-platform/README.mdx @@ -1,10 +1,10 @@ --- -title: Stellar Disbursement Platform API Reference +title: Stellar Disbursement Platform sidebar_position: 10 sidebar_label: Introduction slug: /stellar-disbursement-platform --- -The Stellar Disbursement Platform (SDP) enables organizations to disburse bulk payments to recipients using Stellar. +The Stellar Disbursement Platform (SDP) is a tool built for organizations to make bulk payments to a group of recipients over the Stellar network. -This section includes the API reference for the Stellar Disbursement Platform. To learn more about the Stellar Disbursement Platform and how to run it, check out the [Admin Guide](./admin-guide/README.mdx). +In this section, you'll find an [Admin Guide](./admin-guide/README.mdx) that will teach you how to run the Stellar Disbursement Platform as well as an [API Reference](./resources/README.mdx). diff --git a/network/stellar-disbursement-platform/admin-guide/overview.mdx b/network/stellar-disbursement-platform/admin-guide/overview.mdx index aa05024cc..ef8b511e9 100644 --- a/network/stellar-disbursement-platform/admin-guide/overview.mdx +++ b/network/stellar-disbursement-platform/admin-guide/overview.mdx @@ -3,7 +3,7 @@ title: Overview sidebar_position: 10 --- -The Stellar Disbursement Platform (SDP) is a tool built for organizations to make bulk payments to a group of recipients over the Stellar network. The full step-by-step process usually looks something like the following after the SDP is deployed and organizational users have been set up: +The entire SDP step-by-step process usually looks something like the following after the SDP is deployed and organizational users have been set up: 1. The organization funds the SDP’s distribution account with a Stellar-based asset (e.g. USDC) 2. An administrator logs in to the SDP’s dashboard and uploads a CSV file containing the payment information to initiate a new disbursement diff --git a/sidebars.js b/sidebars.js index 13818ef9c..a07ff5e7a 100644 --- a/sidebars.js +++ b/sidebars.js @@ -4,12 +4,6 @@ const sidebars = { docs: [ 'index', - // { - // 'Fundamentals and Concepts': [{ - // type: 'autogenerated', - // dirName: 'fundamentals-and-concepts', - // }] - // }, { type: 'category', label: 'Basic Tutorials', @@ -49,41 +43,6 @@ const sidebars = { dirName: 'building-apps', }] }, - // { - // type: 'category', - // label: 'Run a Core Node', - // link: { - // type: 'doc', - // id: 'run-core-node/index' - // }, - // // I can't (yet) figure out a way to autogenerate this without having - // // `overview` show up as an item - // items: [ - // 'run-core-node/prerequisites', - // 'run-core-node/installation', - // 'run-core-node/configuring', - // 'run-core-node/publishing-history-archives', - // 'run-core-node/running-node', - // 'run-core-node/monitoring', - // 'run-core-node/commands', - // 'run-core-node/network-upgrades', - // 'run-core-node/tier-1-orgs', - // ] - // }, - // { - // type: 'category', - // label: 'Encyclopedia', - // link: { - // type: 'generated-index', - // title: 'Encyclopedia', - // slug: '/category/encyclopedia', - // }, - // items: [{ - // type: 'autogenerated', - // dirName: 'encyclopedia', - // }] - // }, - // 'glossary', 'soroban', ], tools: [ @@ -92,6 +51,12 @@ const sidebars = { dirName: 'tools', } ], + reference: [ + { + type: 'autogenerated', + dirName: 'reference', + }, + ], learn: [ { type: 'autogenerated',