You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: contracts/specs/PROPERTIES.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,16 +2,16 @@
2
2
3
3
List of identified and checked invariants of the IPC protocol following the categorization by [Certora](https://github.com/Certora/Tutorials/blob/master/06.Lesson_ThinkingProperties/Categorizing_Properties.pdf):
Copy file name to clipboardExpand all lines: docs-gitbook/concepts/subnets/parent-child-interactions.md
-3Lines changed: 0 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,8 +16,6 @@ There are following parent-child interactions available in IPC
16
16
17
17
6\. Removing child subnets from the IPC hierarchy.
18
18
19
-
20
-
21
19
## Checkpointing
22
20
23
21
Checkpointing is a method for a parent subnet to keep a record of the evolution of its child subnet’s state by including snapshots of the child’s state (called checkpoints) in the parent’s state. If, for some reason, the child subnet misbehaves as a whole, agreement can be reached in the parent subnet about how to proceed.
@@ -26,7 +24,6 @@ Checkpointed history of a child subnet cannot be reverted as long as a parent su
26
24
27
25
In case of subnet failure, checkpointing enables participants (e.g., former users of the failed subnet) to agree on picking up an older version of the child subnet’s state from before the occurrence of the failure and, say, use that version as the initial state of a new, more robust subnet.\
28
26
29
-
30
27
### Checkpointing fees
31
28
32
29
There are a number of fees that are paid during checkpointing: 
Copy file name to clipboardExpand all lines: docs-gitbook/developer-guides/deploy-blockscout.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,18 @@
1
-
# Deploying Blockscout on a local subnet
1
+
# Deploying Blockscout on a local subnet
2
2
3
3
Before delving into this tutorial, you should have [deployed a local subnet](deploy-a-subnet). If you're connecting to an existing remote subnet and not following the guide, make sure that you have a local docker installation.
4
4
5
5
These are instructions for deploying a basic, non-customised, local subnet explorer. The resulting instance will not provide all Blockscout features not be appropriate for production use.
@@ -21,6 +23,7 @@ The default setup assumes a local subnet with the Ethereum RPC on `localhost:854
21
23
Some frontend calls use hardcoded absolute URLs. Unless you're only accessing the Blockscout interface on `localhost`, make sure to review the environmental variables in the different files under `./envs/` and adjust addresses (e.g. `BLOCKSCOUT_HOST` in `envs/common-blockscout.env` and `NEXT_PUBLIC_STATS_API_HOST` in `envs/common-frontend.env`. You'll also need to make sure the required ports are accessible (at least 80, 8080, and 8081).
22
24
23
25
3. Start Blockscout
26
+
24
27
```
25
28
docker compose -f docker-compose-no-build-geth.yml up -d
* Extending chain-specific syscalls once IPC supports more root chains. Because other chains may have their own special syscalls different as Filecoin (proof validation, etc.).
16
16
* Extending features to support better development tools. E.g. adding special debugging syscalls, adding randomness syscalls, and supporting more ECC curve, etc.
@@ -34,7 +34,7 @@ TIP: For clarity, the instructions may have skipped certain files (like long `Ca
34
34
### **1. Define the custom syscall**
35
35
36
36
* In this example, we will be creating a simple syscall which accesses the filesystem. Inside syscalls, you can run external processes, link to rust libraries, access network, call other syscalls, etc.
37
-
*We’ll call this new syscall `my_custom_syscall`and its defined as follows:
37
+
* We’ll call this new syscall `my_custom_syscall`and its defined as follows:
38
38
39
39
```rust
40
40
pubtraitCustomKernel:Kernel {
@@ -43,7 +43,7 @@ TIP: For clarity, the instructions may have skipped certain files (like long `Ca
*Defineastruct `CustomKernelImpl` whichextends `DefaultKernel` .Weuse the `ambassador` crate to automatically delegate calls which reduces the boilerplate code we need to write.Here we simply delegate all calls to existing syscall to the `DefaultKernel`.
46
+
*Defineastruct `CustomKernelImpl` whichextends `DefaultKernel` .Weuse the `ambassador` crate to automatically delegate calls which reduces the boilerplate code we need to write.Here we simply delegate all calls to existing syscall to the `DefaultKernel`.
47
47
48
48
```rust
49
49
#[derive(Delegate)]
@@ -65,7 +65,7 @@ TIP: For clarity, the instructions may have skipped certain files (like long `Ca
*Let’screatea `customsyscall` folderin `ipc/fendermint/actors/` andthencreateafilecalled [actor.rs](https://github.com/consensus-shipyard/ipc/blob/98497363a10e08236325e6d5c52755b9fcd52958/fendermint/actors/customsyscall/src/actor.rs) in that new folder. Here we want to create a very simple actor, which when invoked (received a message on its Invoke method) will call the new syscall and return its value:
Copy file name to clipboardExpand all lines: docs-gitbook/developer-guides/upgrades/README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,7 @@ In this document, we describe how IPC achieves full upgradability of all its com
7
7
# IPC Actor upgrades
8
8
9
9
The on-chain logic for IPC is implemented in two contracts, the IPC gateway and the subnet actor, as well as an auxiliary contract use for UX purposes, the registry.
10
+
10
11
- The gateway is a singleton actor that lives in every IPC subnet and implements the common logic for IPC. It is responsible for managing the collateral of subnet, enforcing the firewall requirement, and the cross-net interactions.
11
12
- The subnet actor is a user-defined actor that implements the specific logic of a subnet. This contract is deployed in the parent from which the child subnet wants to be deployed. There is one subnet-actor for each child subnet in the parent.
12
13
- The subnet registry behaves as a subnet actor factory that offers users a convenient way of deploying instances of the reference implementation of the subnet actor in a network.
@@ -104,14 +105,14 @@ pub struct Upgrade {
104
105
```
105
106
106
107
Fields:
108
+
107
109
-`chain_id`: The chain id the upgrade should be applied to.
108
110
-`block_height`: The block height where the upgrade should be applied to and the `migration` function executed.
109
111
-`new_app_version`: Indicates a new application protocol version if the upgrade introduces backward-incompatible changes.
110
112
-`migration`: The migration function that is executed when applying the upgrade. The migration function is passed the `FvmExecState` which gives access to the `state_tree`, `block_store`, ability to send messages and more.
111
113
112
114
Fendermint supports scheduling multiple upgrades through its `UpgradeScheduler` API which is defined as follows:
113
115
114
-
115
116
```rust
116
117
structUpgradeKey(ChainID, BlockHeight);
117
118
@@ -219,4 +220,3 @@ halt_height = 0
219
220
#### 5. Start the new Fendermint version
220
221
221
222
We can now start the new version of Fendermint which contains the upgrade we need.
***Replace** the `gateway_addr` and `registry_addr` with the following values. Click on the badges below to take you to the source to copy and paste them or go to [this link](https://github.com/consensus-shipyard/ipc/blob/cd/contracts/deployments/r314159.json).
129
+
***Replace** the `gateway_addr` and `registry_addr` with the following values. Click on the badges below to take you to the source to copy and paste them or go to [this link](https://github.com/consensus-shipyard/ipc/blob/cd/contracts/deployments/r314159.json).
0 commit comments