Skip to content

Commit

Permalink
docs: format all markdown documents
Browse files Browse the repository at this point in the history
Tool used: `npm install -g markdownlint-cli2`
  • Loading branch information
drahnr committed Feb 10, 2025
1 parent 66a4109 commit c70e639
Show file tree
Hide file tree
Showing 57 changed files with 339 additions and 276 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/lint-pr.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "Lint PR"
name: "Lint PR title"

on:
pull_request:
Expand Down
52 changes: 26 additions & 26 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ All notable changes to this project will be documented in this file.

## [axon-r05] - 2024-09-24

_Full changelog below._
*Full changelog below.*

### ⭐ HIGHLIGHT | Token-bound validator collateral 🪙🔐

Expand All @@ -102,19 +102,19 @@ By decoupling consensus security from the parent token, subnet operators gain gr

### 🚀 Features

- _(contracts)_ Token-bound validator collateral (#1130)
- *(contracts)* Token-bound validator collateral (#1130)

### 🐛 Bug Fixes

- _(topdown)_ Pull effects up until committed finality. (#887)
- *(topdown)* Pull effects up until committed finality. (#887)

### ⚙️ Miscellaneous Tasks

- Remove Python requirement for contracts development (#1144)

## [axon-r04] - 2024-09-18

_Full changelog below._
*Full changelog below.*

### ⭐ HIGHLIGHT | Validator Gating 🌁🌉

Expand All @@ -124,11 +124,11 @@ This feature is designed to support both federated and collateral-based networks

### 🚀 Features

- _(contracts)_ Validator gating (#1127)
- *(contracts)* Validator gating (#1127)

### 📚 Documentation

- _(docs)_ Validator gating docs (#1127)
- *(docs)* Validator gating docs (#1127)

### ⚙️ Miscellaneous Tasks

Expand All @@ -137,27 +137,27 @@ This feature is designed to support both federated and collateral-based networks

## [axon-r03] - 2024-09-06

_Full changelog below._
*Full changelog below.*

### ⭐ HIGHLIGHT | Consistent Genesis 🧬🚀

The Consistent Genesis feature introduces an additional step of sealing the genesis, ensuring the inclusion of the genesis state, including both custom and built-in actors. This step prevents inconsistencies during node initialization. Previously, the genesis process required certain actors to be deployed at runtime when the node started, which could result in a panic and prevent the node from starting. With the Consistent Genesis update, actor code is directly incorporated into the genesis as part of the state tree, ensuring stability and consistency across all node starts.

### 🚀 Features

- _(node)_ Consistent Genesis (#1016)
- _(contracts)_ Improvements to contract deployment scripts (#1108)
- *(node)* Consistent Genesis (#1016)
- *(contracts)* Improvements to contract deployment scripts (#1108)

### 🐛 Bug Fixes

- _(core)_ Set the default Fendermint log level to INFO (#1123)
- _(ci)_ CI speed-up improvements (#1124)
- *(core)* Set the default Fendermint log level to INFO (#1123)
- *(ci)* CI speed-up improvements (#1124)

### 📚 Documentation

- _(docs)_ Moved documentation to monorepo (#1014)
- _(specs)_ Subnet Genesis v2 spec (#1113)
- _(node)_ Updated running docs with Consistent Genesis (#1128)
- *(docs)* Moved documentation to monorepo (#1014)
- *(specs)* Subnet Genesis v2 spec (#1113)
- *(node)* Updated running docs with Consistent Genesis (#1128)

### ⚙️ Miscellaneous Tasks

Expand All @@ -167,7 +167,7 @@ The Consistent Genesis feature introduces an additional step of sealing the gene

## [axon-r02] - 2024-07-23

_Full changelog below._
*Full changelog below.*

### ⭐ HIGHLIGHTED | Observability Framework 👁️📊

Expand Down Expand Up @@ -202,23 +202,23 @@ Refer to full observability documentation [here](./docs/fendermint/observability

### 🚀 Features

- _(node)_ New observability architecture + events (#1053)
- _(node)_ New observability bottom up tracing/metrics (#1061)
- _(ethapi)_ Add eth cors settings (#1021)
- _(node)_ File-based observability configuration (#1078)
- _(node)_ Observability docs and changelog section (#1083)
- *(node)* New observability architecture + events (#1053)
- *(node)* New observability bottom up tracing/metrics (#1061)
- *(ethapi)* Add eth cors settings (#1021)
- *(node)* File-based observability configuration (#1078)
- *(node)* Observability docs and changelog section (#1083)

### 🐛 Bug Fixes

- _(ethapi)_ Make `eth_getTransactionReceipt` null for unexecuted/unknown transactions (#1006)
- *(ethapi)* Make `eth_getTransactionReceipt` null for unexecuted/unknown transactions (#1006)

### 🚜 Refactor

- _(node)_ Observability refinements. (#1085)
- *(node)* Observability refinements. (#1085)

### 📚 Documentation

- _(specs)_ Ethereum JSON-RPC API (#913)
- *(specs)* Ethereum JSON-RPC API (#913)

### ⚙️ Miscellaneous Tasks

Expand All @@ -232,11 +232,11 @@ Hello World! It's early days for IPC. We are starting to enact a proper versioni

We introduce the notion of "product generations" to represent the lifetime of IPC under each of these major architectural iterations. Product generations are named alphabetically A-Z (we certainly don't expect more than 26 generations...) We've kept the naming universe deliberately broad: entities/concepts found in biological, mathematical, or computing networks.

The first product generation is called **_Axon_**!
The first product generation is called ***Axon***!

![image](https://github.com/user-attachments/assets/7f9ac874-acdd-49d2-a409-995c55f6bfd4)

Find more background on these choices / implications here: https://github.com/consensus-shipyard/ipc/issues/1012.
Find more background on these choices / implications here: <https://github.com/consensus-shipyard/ipc/issues/1012>.

### Axon r01

Expand All @@ -259,6 +259,6 @@ Axon r01 supports these major features (not a comprehensive list):
- Compatibility with the BlockScount explorer and Ethereum wallets out of the box.
- ... and a lot more.

### Join the conversation!
### Join the conversation

Come ask your questions or give us feedback in the `#ipc` channel on [Filecoin Slack](https://filecoin.io/slack).
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

## Reporting a vulnerability

Please report any security-sensitive issues via ipc@protocol.ai
Please report any security-sensitive issues via <ipc@protocol.ai>
21 changes: 11 additions & 10 deletions contracts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ These actors are written in Solidity and target Filecoin’s FEVM.

The project accommodates the following main contracts

- `GatewayDiamond.sol`: Implementation of the IPC GatewayActor within the Diamond pattern.
- `SubnetActorDiamond.sol`: Reference implementation of an IPC SubnetActor within the Diamond pattern.
- `SubnetRegistry.sol`: Registry contract for seamlessly deploying subnet actors.
- `GatewayDiamond.sol`: Implementation of the IPC GatewayActor within the Diamond pattern.
- `SubnetActorDiamond.sol`: Reference implementation of an IPC SubnetActor within the Diamond pattern.
- `SubnetRegistry.sol`: Registry contract for seamlessly deploying subnet actors.

# Documentation

Expand Down Expand Up @@ -62,19 +62,20 @@ When you run an upgrade command, the repository's scripts handle several tasks:
To upgrade a contract, you may use the following commands.
The NETWORK parameter is optional; if not specified, the scripts will default to "auto":

- **Gateway Diamond Upgrade**:
- **Gateway Diamond Upgrade**:

```bash
make upgrade-gw-diamond [NETWORK=<network-name>]
```

- **Subnet Actor Diamond Upgrade**:
- **Subnet Actor Diamond Upgrade**:

```bash
make upgrade-sa-diamond [NETWORK=<network-name>]
```

- **Subnet Registry Diamond Upgrade**:
- **Subnet Registry Diamond Upgrade**:

```bash
make upgrade-sr-diamond [NETWORK=<network-name>]
```
Expand All @@ -84,10 +85,10 @@ Check the transaction on the appropriate block explorer to confirm the upgrade's
## Important Notes
- The upgrade commands are intended for use by authorized personnel with a deep understanding of the contracts' functionality.
- Ensure that your local repository is up to date with the latest contract code and JSON files before initiating an upgrade.
- Backup all contract data and thoroughly test any new code in a controlled environment prior to an upgrade.
- Monitor the output of the upgrade process carefully for transaction details and to verify its successful completion.
- The upgrade commands are intended for use by authorized personnel with a deep understanding of the contracts' functionality.
- Ensure that your local repository is up to date with the latest contract code and JSON files before initiating an upgrade.
- Backup all contract data and thoroughly test any new code in a controlled environment prior to an upgrade.
- Monitor the output of the upgrade process carefully for transaction details and to verify its successful completion.

# Actors overview

Expand Down
6 changes: 3 additions & 3 deletions contracts/contracts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ To do that, we use the `get_selectors` function from a script in Python.

## References

- [Introduction to EIP-2535 Diamonds](https://eip2535diamonds.substack.com/p/introduction-to-the-diamond-standard)
- [ERC-2535: Diamonds, Multi-Facet Proxy](https://eips.ethereum.org/EIPS/eip-2535#facets-state-variables-and-diamond-storage)
- [Understanding Diamonds on Ethereum](https://dev.to/mudgen/understanding-diamonds-on-ethereum-1fb)
- [Introduction to EIP-2535 Diamonds](https://eip2535diamonds.substack.com/p/introduction-to-the-diamond-standard)
- [ERC-2535: Diamonds, Multi-Facet Proxy](https://eips.ethereum.org/EIPS/eip-2535#facets-state-variables-and-diamond-storage)
- [Understanding Diamonds on Ethereum](https://dev.to/mudgen/understanding-diamonds-on-ethereum-1fb)
4 changes: 2 additions & 2 deletions contracts/ops/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

This directory includes a set of scripts to ease the deployment of the IPC Solidity contracts to any network using hardhat.

- `deploy.sh`: Deploys the IPC solidity contracts into a specific network.
- `compile-abi.sh`: Compiles all contracts and outputs the ABI for the high-level contracts in the desired folder (by default `./out`).
- `deploy.sh`: Deploys the IPC solidity contracts into a specific network.
- `compile-abi.sh`: Compiles all contracts and outputs the ABI for the high-level contracts in the desired folder (by default `./out`).
20 changes: 10 additions & 10 deletions contracts/specs/PROPERTIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

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):

- Valid States
- State Transitions
- Variable Transitions
- High-Level Properties
- Unit Tests
- Valid States
- State Transitions
- Variable Transitions
- High-Level Properties
- Unit Tests
- Valid States
- State Transitions
- Variable Transitions
- High-Level Properties
- Unit Tests
- Valid States
- State Transitions
- Variable Transitions
- High-Level Properties
- Unit Tests

## Subnet Registry

Expand Down
5 changes: 3 additions & 2 deletions crates/client/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Fendermint is an effort to implement [IPC with Tendermint Core](https://docs.goo

## Quick Start

- [Local testnets](../docs/client/localnet.md)
* [Local testnets](../docs/client/localnet.md)

## Docs

Expand Down Expand Up @@ -62,7 +62,6 @@ make docker-build

See the [docker docs](./docker/README.md) for more details about the build.


### Pre-built Docker Image

The CI build publishes a [Docker image](https://github.com/consensus-shipyard/client/pkgs/container/fendermint) to Github Container Registry upon a successful build on the `main` branch. This is the same image as the one used in the End-to-End tests; it contains the built-in actor bundle and IPC Solidity actors, ready to be deployed during genesis.
Expand All @@ -84,6 +83,7 @@ The [settings](./app/settings/) contains the configuration options for the `fend
The default configuration is in [default.toml](./app/config/default.toml). This file is copied into the `fendermint` docker image and should not be edited, so that any further releases can provide any new keys with default values necessary for the application to start; instead the operator can provide further partial configuration files to override the defaults.

The [Settings::config](./app/settings/src/lib.rs) method expects the following files in a configuration directory:

* `default.toml` with the settings for the keys that have meaningful default values
* `<mode>.toml` is an optional file correponding to the `--mode` CLI option (by default `dev`); these are files that could be checked into Github e.g. to have values for production or test environments
* `local.toml` is also optional with potential overrides specific to the developer's machine
Expand All @@ -95,6 +95,7 @@ An example of this override is the [test.toml](./app/config/test.toml) file whic
The location of the configuration directory is determined by [Options::config_dir](./app/options/src/lib.rs) in the following way: The optional `--config-dir` CLI parameter can be used to set it directly. If it's missing, the default is the `config` directory under the `--home-dir` CLI parameter, which by default is `~/.fendermint`. The `FM_CONFIG_DIR` and `FM_HOME_DIR` env vars are also recognised.

The `--config-dir` can be used in combination with `--home-dir` and the pre-build docker image to:

1. set `--home-dir` to a custom mounted volume where the data files can persist
2. set `--config-dir` to `/client/config`, which is where the `runner.Dockerfile` places the `default.toml` file
3. mount any custom config files next to `default.toml` in the container
Expand Down
11 changes: 6 additions & 5 deletions crates/client/docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ The docker image for `fendermint` can be built with the following top-level comm
make docker-build
```

The image contains both the `fendermint` and `ipc-cli` executables (dispatched by [docker-entry.sh](./docker-entry.sh)), as well as all the actor bytecode that needs to be deployed at genesis inside a subnet. In other words, it's a one-stop image for everything IPC.
The image contains both the `fendermint` and `ipc-cli` executables (dispatched by [docker-entry.sh](./docker-entry.sh)), as well as all the actor bytecode that needs to be deployed at genesis inside a subnet. In other words, it's a one-stop image for everything IPC.

## Dependencies

As a pre-requisite this will ensure that the following artifacts are prepared:

* The builtin-actors bundle is downloaded from GitHub; if you upgrade the version of these, make sure you clear out any existing artifacts or you might get interface version conflicts at runtime when the bundles are loaded.
* The custom actor bundle is built; this prepares some JSON artifacts as well, which are needed for deployment.
* The IPC actor contract-bindings are generated; this is refreshed every time a Solidity artifact changes.
Expand All @@ -21,15 +22,15 @@ The actor bundles are CAR files which are copied into the `fendermint` image, so

The full Docker build comprises two stages: the builder stage and the runner stage.

- The builder stage builds Fendermint and ipc-cli. It relies on a heavier base image + dependencies required by the build.
- The runner stage picks the executables and places them on lighter base images satisfying dynamically linked library dependencies.
* The builder stage builds Fendermint and ipc-cli. It relies on a heavier base image + dependencies required by the build.
* The runner stage picks the executables and places them on lighter base images satisfying dynamically linked library dependencies.

## Builder Stage

For the builder stage, there are two variants of the `Dockerfile`s one of which is chosen to perform the build depending on the `PROFILE` environment variable.

- `builder.ci.Dockerfile`: used only in CI when `PROFILE=ci`.
- `builder.local.Dockerfile`: used otherwise (e.g. for local builds).
* `builder.ci.Dockerfile`: used only in CI when `PROFILE=ci`.
* `builder.local.Dockerfile`: used otherwise (e.g. for local builds).

In both cases the final `Dockerfile` consists of a builder stage variant, joined with the `runner.Dockerfile`.

Expand Down
2 changes: 1 addition & 1 deletion crates/client/eth/api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ The `fendermint_eth_api` crate implements some of the [Ethereum JSON-RPC](https:

The API is tested for basic type lineup during the `make e2e` tests via the [ethers example](./examples/ethers.rs).

The relevant specification is [FIP-55](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0055.md).
The relevant specification is [FIP-55](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0055.md).
1 change: 0 additions & 1 deletion crates/client/testing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ The `fendermint_testing` crate (ie. the current directory) provides some reusabl
* `arb`: provides `quickcheck::Arbitrary` instances for some things which are problematic in the FVM library, such as `Address` and `TokenAmount`.
* `smt`: small framework for State Machine Testing (a.k.a. Model Testing)


# End to end tests

Beyond this, for no other reason than code organisation, the directory has sub-projects, which contain actual tests.
Expand Down
2 changes: 0 additions & 2 deletions crates/client/testing/benchmarks/state-size/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@
The purpose of this benchmark is to establish a baseline for state growth.
The idea is to run a simple standalone node and measure the size of the RocksDB data store as the block height goes up.


## Take measurements

Let's use the [materializer](../../materializer/) to start a node.

The following commands is assumed to be executed in this directory.


### Start a node and take measurements

```bash
Expand Down
5 changes: 3 additions & 2 deletions crates/client/testing/graph-test/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# Integration test with The Graph

## Run test

```bash
cargo make setup # Start CometBFT, Fendermint and ETH API
cargo make test # Run Graph integration test
cargo make teardown
```

This test is derived from: https://docs.hedera.com/hedera/tutorials/smart-contracts/deploy-a-subgraph-using-the-graph-and-json-rpc
This test is derived from: <https://docs.hedera.com/hedera/tutorials/smart-contracts/deploy-a-subgraph-using-the-graph-and-json-rpc>

Reference for docker setup for subgraph: https://github.com/graphprotocol/graph-node/blob/master/docker/README.md
Reference for docker setup for subgraph: <https://github.com/graphprotocol/graph-node/blob/master/docker/README.md>
Loading

0 comments on commit c70e639

Please sign in to comment.