github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/docs/concepts/portal-loop.md (about)

     1  ---
     2  id: portal-loop
     3  ---
     4  
     5  # Portal Loop
     6  
     7  Portal Loop is an always-up-to-date staging testnet that allows for using
     8  the latest version of Gno, Gno.land, and TM2. By utilizing the power of Docker
     9  & the [tx-archive](https://github.com/gnolang/tx-archive) tool, the Portal Loop can run the latest code from the 
    10  master branch on the [Gno monorepo](https://github.com/gnolang/gno), 
    11  while preserving most/all of the previous transaction data. 
    12  
    13  The Portal Loop allows for quick iteration on the latest version of Gno - without
    14  having to make a hard/soft fork. 
    15  
    16  Below is a diagram demonstrating how the Portal Loop works:
    17  ```
    18                      +----------------------------------+
    19                      |       Portal Loop running        |  < ----+ 
    20                      +----------------------------------+        |
    21                                       |                          |
    22                                       |                          |
    23                                       v                          |
    24                      +----------------------------------+        |
    25                      |   Detect changes in 'master'     |        |
    26                      +----------------------------------+        |
    27                                       |                          |
    28                                       |                          |
    29                                       v                          |
    30                      +----------------------------------+        |
    31                      | Archive transaction data & state |        |    
    32                      +----------------------------------+        |
    33                                       |                          |
    34                                       |                          |
    35                                       v                          |
    36                      +----------------------------------+        |
    37                      |    Load changes from 'master'    |        |
    38                      +----------------------------------+        |
    39                                       |                          |
    40                                       |                          |
    41                                       v                          |
    42                      +----------------------------------+        |
    43                      |      Replay transaction data     |  ------+  
    44                      +----------------------------------+
    45  ```
    46  
    47  Specifically, Portal Loop behaves like a normal network until a change is detected
    48  in the `master` branch in the Gno monorepo. At this point, Portal Loop archives 
    49  on-chain data using the [tx-archive](https://github.com/gnolang/tx-archive)
    50  tool, saving all transactions that happened on it thus far.
    51  
    52  It then pulls the latest changes from the `master` branch, and inserts all 
    53  previously archived transactions into the genesis of the newly deployed chain.
    54  After genesis has been replayed, the chain continues working as normal.
    55  
    56  ## Using the Portal Loop
    57  
    58  The Portal Loop deployment can be found at [gno.land](https://gno.land), while
    59  the exposed RPC endpoints can be found on `https://rpc.gno.land:443`. The RPC endpoint
    60  list can be found in the [reference section](../reference/rpc-endpoints.md).
    61  
    62  ### A warning note
    63  
    64  While allowing for quick iteration on the most up-to-date software, the Portal Loop
    65  has some drawbacks:
    66  - If a breaking change happens on `master`, transactions that used the previous version of
    67  Gno will fail to be replayed, meaning **data will be lost**. 
    68  - Since transactions are archived and replayed during genesis, 
    69  block height & timestamp cannot be relied upon.