Skip to content

Commit

Permalink
docs: add Portal Loop concept page (#1582)
Browse files Browse the repository at this point in the history
## Description

This PR adds the Portal Loop concept page to the docs.
I propose we hold on merging this until `gno.land` is live.

EDIT: Portal Loop is live on [gno.land](https://gno.land) so we can
merge this PR.

<details><summary>Contributors' checklist...</summary>

- [x] Added new tests, or not needed, or not feasible
- [x] Provided an example (e.g. screenshot) to aid review or the PR is
self-explanatory
- [x] Updated the official documentation or not needed
- [x] No breaking changes were made, or a `BREAKING CHANGE: xxx` message
was included in the description
- [x] Added references to related issues and PRs
- [x] Provided any useful hints for running manual tests
- [ ] Added new benchmarks to [generated
graphs](https://gnoland.github.io/benchmarks), if any. More info
[here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md).
</details>
  • Loading branch information
leohhhn authored Feb 22, 2024
1 parent 53d6ddd commit 32dcedc
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 0 deletions.
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

0 comments on commit 32dcedc

Please sign in to comment.