Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add Portal Loop concept page #1582

Merged
merged 11 commits into from
Feb 22, 2024
60 changes: 60 additions & 0 deletions docs/concepts/portal-loop.md
Original file line number Diff line number Diff line change
@@ -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.
1 change: 1 addition & 0 deletions misc/docusaurus/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
Loading