diff --git a/docs/concepts/portal-loop.md b/docs/concepts/portal-loop.md new file mode 100644 index 00000000000..f335013034d --- /dev/null +++ b/docs/concepts/portal-loop.md @@ -0,0 +1,60 @@ +--- +id: portal-loop +--- + +# Portal Loop + +Portal Loop is an always-up-to-date staging testnet that allows for using +the latest version of Gno, Gno.land, and TM2. By utilizing the power of Docker +& the [tx-archive](https://github.com/gnolang/tx-archive) tool, the Portal Loop can run the latest code from the +master branch on the [Gno monorepo](https://github.com/gnolang/gno), +while preserving most/all the previous the transaction data. + +The Portal Loop allows for quick iteration on the latest version of Gno - without +having to make a hard/soft fork. + +Below is a diagram demonstrating how the Portal Loop works: +``` + +----------------------------------+ + | Portal Loop running | < ----+ + +----------------------------------+ | + | | + | | + v | + +----------------------------------+ | + | Detect changes in 'master' | | + +----------------------------------+ | + | | + | | + v | + +----------------------------------+ | + | Archive transaction data & state | | + +----------------------------------+ | + | | + | | + v | + +----------------------------------+ | + | Load changes from 'master' | | + +----------------------------------+ | + | | + | | + v | + +----------------------------------+ | + | Replay transaction data | ------+ + +----------------------------------+ +``` + +## Using the Portal Loop + +The Portal Loop deployment can be found at [gno.land](https://gno.land), while +the exposed RPC endpoints can be found on `https://rpc.gno.land:443`. The RPC endpoint +list can be found in the [reference section](../reference/rpc-endpoints.md). + +### A warning note + +While allowing for quick iteration on the most up-to-date software, the Portal Loop +has some drawbacks: +- If a breaking change happens on `master`, transactions that used the previous version of +Gno will fail to be replayed, meaning **data will be lost**. +- Since transactions are archived and replayed during genesis, +block height & timestamp cannot be relied upon. diff --git a/misc/docusaurus/sidebars.js b/misc/docusaurus/sidebars.js index b6317cbbae0..c4f8a56c009 100644 --- a/misc/docusaurus/sidebars.js +++ b/misc/docusaurus/sidebars.js @@ -57,6 +57,7 @@ const sidebars = { 'concepts/effective-gno', 'concepts/proof-of-contribution', 'concepts/tendermint2', + 'concepts/portal-loop', 'concepts/gno-modules', 'concepts/gno-test', 'concepts/from-go-to-gno',