@@ -18,7 +18,7 @@ Lotus is an implementation of the Filecoin Distributed Storage Network. For more
## Building & Documentation
-For instructions on how to build lotus from source, please visit [Lotus build and setup instruction](https://docs.filecoin.io/get-started/lotus/installation/#minimal-requirements) or read the source [here](https://github.com/filecoin-project/lotus/tree/master/documentation).
+For instructions on how to build, install and setup lotus, please visit [https://docs.filecoin.io/get-started/lotus](https://docs.filecoin.io/get-started/lotus/).
## Reporting a Vulnerability
diff --git a/documentation/en/.glossary.json b/documentation/en/.glossary.json
index e8a9e0846..0967ef424 100644
--- a/documentation/en/.glossary.json
+++ b/documentation/en/.glossary.json
@@ -1,146 +1 @@
-{
- "bellman": {
- "title": "Bellman",
- "value": "Bellman is a rust crate for building zk-SNARK circuits. It provides circuit traits and primitive structures, as well as basic gadget implementations such as booleans and number abstractions."
- },
- "nvme": {
- "title": "NVMe",
- "value": "(non-volatile memory express) is a host controller interface and storage protocol created to accelerate the transfer of data between enterprise and client systems and solid-state drives (SSDs) over a computer's high-speed Peripheral Component Interconnect Express (PCIe) bus."
- },
- "multiaddr": {
- "title": "Multiaddr",
- "value": "Multiaddr is a format for encoding addresses from various well-established network protocols. It is useful to write applications that future-proof their use of addresses, and allow multiple transport protocols and addresses to coexist."
- },
- "attofil": {
- "title": "attoFIL",
- "value": "AttoFIL is a word used to describe 10^-18 FIL. The word atto comes from the Norwegian and Danish term: atten eighteen."
- },
- "fil": {
- "title": "FIL",
- "value": "A ticker symbol is an abbreviation used to uniquely identify Filecoin when it is used in a wallet exchange or a cryptocurrency exchange."
- },
- "epost": {
- "title": "Election Proof-of-Spacetime",
- "value": "Election Proof-of-Spacetime couples the Proof-of-Spacetime process with block production, meaning that in order to produce a block, the miner must produce a valid Proof-of-Spacetime proof (snark output)."
- },
- "jwt": {
- "title": "JWT",
- "value": "JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties."
- },
- "json-rpc": {
- "title": "JSON-RPC",
- "value": "JSON-RPC is a remote procedure call protocol encoded in JSON. It is a very simple protocol (and very similar to XML-RPC), defining only a few data types and commands."
- },
- "bls-address": {
- "title": "BLS Signature (Address)",
- "value": "A Boneh–Lynn–Shacham (BLS) signature is a digital signature scheme that allows a user to determine the authenticity of a signer, and is a commonly used signature scheme in the Filecoin Distributed Storage Network."
- },
- "faucet": {
- "title": "Filecoin Test Faucet",
- "value": "A webpage where you can get free test Filecoin to participate in the Testnet."
- },
- "chain": {
- "title": "Chain",
- "value": "The Filecoin Blockchain is a distributed virtual machine that achieves consensus, processes messages, accounts for storage, and maintains security in the Filecoin Protocol. It is the main interface linking various actors in the Filecoin system."
- },
- "miner-power": {
- "title": "Miner Power",
- "value": "Miner storage in relation to network storage, tracked in the power table."
- },
- "sector": {
- "title": "Sector",
- "value": "A fixed-size block of data of SECTOR_SIZE bytes which generally contains client's data."
- },
- "sealing": {
- "title": "Sealing",
- "value": "A slow encoding process that returns commitments and proofs for data being stored in a sector."
- },
- "seal": {
- "title": "Seal",
- "value": "A slow encoding process that returns commitments and proofs for data being stored in a sector."
- },
- "posts": {
- "title": "Proof-of-Spacetime(s)",
- "value": "Filecoin is a protocol token whose blockchain runs on a novel proof, called Proof-of-Spacetime, where blocks are created by miners that are storing data."
- },
- "filecoin-testnet": {
- "title": "Filecoin Testnet",
- "value": "Until we launch, we are making lots of changes to Lotus. The Testnet is expected to bring a few significant fixes/improvements. During Testnet, you can retrieve test filecoin from our network faucet to use as collateral to start mining. Test filecoin do not have any value – the official filecoin tokens will not be released until Mainnet launch."
- },
- "filecoin-decentralized-storage-market": {
- "title": "Filecoin Decentralized Storage Market",
- "value": "Storage Market subsystem is the data entry point into the network. Miners only earn power from data stored in a storage deal and all deals live on the Filecoin network."
- },
- "filecoin-proof-parameters": {
- "title": "Filecoin Proof Parameters",
- "value": "The proving algorithms rely on a large binary parameter file."
- },
- "lotus-devnet": {
- "title": "DevNet",
- "value": "On the DevNets, you can store data as a storage client and also try how Filecoin mining works. The devnets are an important development tool for those who anticipate building applications on top of the Filecoin protocol or storing data on the decentralized storage market. "
- },
- "filecoin-distributed-storage-network": {
- "title": "Filecoin Distributed Storage Network",
- "value": "Filecoin is a distributed storage network based on a blockchain mechanism. Filecoin miners can elect to provide storage capacity for the network, and thereby earn units of the Filecoin cryptocurrency (FIL) by periodically producing cryptographic proofs that certify that they are providing the capacity specified."
- },
- "lotus-node": {
- "title": "Lotus Node",
- "value": "The Lotus Node is full of capabilities. It runs the Blockchain system, makes retrieval deals, does data transfer, supports block producer logic, and syncs and validates the chain."
- },
- "block-rewards": {
- "title": "Block Reward",
- "value": "Over the entire lifetime of the protocol, 1,400,000,000 FIL (TotalIssuance) will be given out to miners. The rate at which the funds are given out is set to halve every six years, smoothly (not a fixed jump like in Bitcoin)."
- },
- "block-producer-miner": {
- "title": "Miner (Block Producer)",
- "value": "The Block Producer Miner's logic. It currently shares an interface and process with the Lotus Node. A Block Producer chooses which messages to include in a block and is rewarded according to each message’s gas price and consumption, forming a market."
- },
- "lotus-miner": {
- "title": "Miner (lotus-miner)",
- "value": "The Miner's logic. It has its own dedicated process. Contributes to the network through Sector commitments and Proofs of Spacetime to prove that it is storing the sectors it has commited to."
- },
- "swarm-port": {
- "title": "Swarm Port (Libp2p)",
- "value": "The LibP2P Swarm manages groups of connections to peers, handles incoming and outgoing streams, and is part of the miners implementation. The port value is part of the Host interface."
- },
- "daemon": {
- "title": "Lotus Daemon",
- "value": "A Daemon is a program that runs as a background process. A Daemon in the context of the Filecoin Distributed Storage Network may enable applications to communicate with peers, handle protocols, participate in pubsub, and interact with a distributed hash table (DHT)."
- },
- "storage-deal": {
- "title": "Storage deal",
- "value": "One of the two types of deals in Filecoin markets. Storage deals are recorded on the blockchain and enforced by the protocol."
- },
- "retrieval-deal": {
- "title": "Retrieval deal",
- "value": "One of the two types of deals in Filecoin markets. Retrieval deals are off chain and enabled by micropayment channel by transacting parties."
- },
- "deal-cid": {
- "title": "Deal CID",
- "value": "CID is a format for referencing content in distributed information systems, it is a way to store information so it can be retrieved based on its content, not its location. DealCID specifically is used in storage deals."
- },
- "data-cid": {
- "title": "Data CID",
- "value": "CID is a format for referencing content in distributed information systems, it is a way to store information so it can be retrieved based on its content, not its location. DataCID specifically is used to represent the file that is stored in the Filecoin Distributed Storage Network."
- },
- "cid": {
- "title": "CID",
- "value": "A CID is a self-describing content-addressed identifier. It uses cryptographic hashes to achieve content addressing. It uses several multiformats to achieve flexible self-description, namely multihash for hashes, multicodec for data content types, and multibase to encode the CID itself into strings."
- },
- "total-network-power": {
- "title": "Total Network Power",
- "value": "A reference to all the Power Tables for every subchain, accounting for each Lotus Miner on chain."
- },
- "chain-block-height": {
- "title": "Chain Block Height",
- "value": "Chain block height is defined as the number of blocks in the chain between any given block and the very first block in the blockchain."
- },
- "block-height": {
- "title": "Block Height",
- "value": "Height of the Merkle Tree of a sector. A sector is a contiguous array of bytes that a miner puts together, seals, and performs Proofs of Spacetime on."
- },
- "blocktime": {
- "title": "Blocktime",
- "value": "The time it takes for a Block to propagate to the whole network."
- }
-}
+{}
diff --git a/documentation/en/.library.json b/documentation/en/.library.json
index 3fab0df9b..e31f09950 100644
--- a/documentation/en/.library.json
+++ b/documentation/en/.library.json
@@ -1,232 +1,25 @@
{
"posts": [
{
- "title": "Hardware Requirements",
- "slug": "en+hardware",
- "github": "en/hardware.md",
+ "title": "About Lotus",
+ "slug": "",
+ "github": "en/about.md",
"value": null,
- "posts": [
- {
- "title": "Testing Configuration",
- "slug": "en+hardware-mining",
- "github": "en/hardware-mining.md",
- "value": null
- }
- ]
+ "posts": []
},
{
- "title": "Setup",
- "slug": "en+getting-started",
- "github": "en/getting-started.md",
- "value": null,
- "posts": [
- {
- "title": "Arch Linux Installation",
- "slug": "en+install-lotus-arch",
- "github": "en/install-lotus-arch.md",
- "value": null
- },
- {
- "title": "Ubuntu Installation",
- "slug": "en+install-lotus-ubuntu",
- "github": "en/install-lotus-ubuntu.md",
- "value": null
- },
- {
- "title": "Fedora Installation",
- "slug": "en+install-lotus-fedora",
- "github": "en/install-lotus-fedora.md",
- "value": null
- },
- {
- "title": "MacOS Installation",
- "slug": "en+install-lotus-macos",
- "github": "en/install-lotus-macos.md",
- "value": null
- },
- {
- "title": "Updating Lotus",
- "slug": "en+updating-lotus",
- "github": "en/updating-lotus.md",
- "value": null
- },
- {
- "title": "Join Testnet",
- "slug": "en+join-testnet",
- "github": "en/join-testnet.md",
- "value": null
- },
- {
- "title": "Use Lotus with systemd",
- "slug": "en+install-systemd-services",
- "github": "en/install-systemd-services.md",
- "value": null
- },
- {
- "title": "Setup Troubleshooting",
- "slug": "en+setup-troubleshooting",
- "github": "en/setup-troubleshooting.md",
- "value": null
- },
- {
- "title": "Environment Variables",
- "slug": "en+env-vars",
- "github": "en/environment-vars.md",
- "value": null
- }
- ]
- },
- {
- "title": "Architecture",
+ "title": "Lotus Architecture (WIP)",
"slug": "en+arch",
- "github": "en/architecture.md",
+ "github": "en/architecture/architecture.md",
"value": null,
"posts": [
- {
- "title": "The Message Pool",
- "slug": "en+mpool",
- "github": "en/mpool.md",
- "value": null
- }
+ {
+ "title": "The Message Pool",
+ "slug": "en+mpool",
+ "github": "en/architecture/mpool.md",
+ "value": null
+ }
]
- },
- {
- "title": "Storage Mining",
- "slug": "en+mining",
- "github": "en/mining.md",
- "value": null,
- "posts": [
- {
- "title": "Lotus Worker",
- "slug": "en+lotus-worker",
- "github": "en/mining-lotus-worker.md",
- "value": null
- },
- {
- "title": "Static Ports",
- "slug": "en+setting-a-static-port",
- "github": "en/setting-a-static-port.md",
- "value": null
- },
- {
- "title": "Mining Troubleshooting",
- "slug": "en+mining-troubleshooting",
- "github": "en/mining-troubleshooting.md",
- "value": null
- }
- ]
- },
- {
- "title": "Storing Data",
- "slug": "en+storing-data",
- "github": "en/storing-data.md",
- "value": null,
- "posts": [
- {
- "title": "Storage Troubleshooting",
- "slug": "en+storing-data-troubleshooting",
- "github": "en/storing-data-troubleshooting.md",
- "value": null
- },
- {
- "title": "Information for Miners",
- "slug": "en+info-for-miners",
- "github": "en/miner-deals.md",
- "value": null
- },
- {
- "title": "IPFS Integration",
- "slug": "en+ipfs-client-integration",
- "github": "en/storing-ipfs-integration.md",
- "value": null
- }
- ]
- },
- {
- "title": "Retrieving Data",
- "slug": "en+retrieving-data",
- "github": "en/retrieving-data.md",
- "value": null,
- "posts": []
- },
- {
- "title": "Payment Channels",
- "slug": "en+payment-channels",
- "github": "en/payment-channels.md",
- "value": null,
- "posts": []
- },
- {
- "title": "Command Line Interface",
- "slug": "en+cli",
- "github": "en/cli.md",
- "value": null,
- "posts": []
- },
- {
- "title": "API",
- "slug": "en+api",
- "github": "en/api.md",
- "value": null,
- "posts": [
- {
- "title": "Remote API Support",
- "slug": "en+api-scripting-support",
- "github": "en/api-scripting-support.md",
- "value": null
- },
- {
- "title": "API Methods",
- "slug": "en+api-methods",
- "github": "en/api-methods.md",
- "value": null
- },
- {
- "title": "API Troubleshooting",
- "slug": "en+api-troubleshooting",
- "github": "en/api-troubleshooting.md",
- "value": null
- }
- ]
- },
- {
- "title": "Developer Tools",
- "slug": "en+dev-tools",
- "github": "en/dev-tools.md",
- "value": null,
- "posts": [
- {
- "title": "Setup Local Devnet",
- "slug": "en+setup-local-dev-net",
- "github": "en/local-dev-net.md",
- "value": null,
- "posts": []
- },
- {
- "title": "Jaeger Tracing",
- "slug": "en+dev-tools-jaeger-tracing",
- "github": "en/dev-tools-jaeger-tracing.md",
- "value": null,
- "posts": []
- }
- ]
- },
- {
- "title": "FAQs",
- "slug": "en+faqs",
- "github": "en/faqs.md",
- "value": null,
- "posts": []
- },
- {
- "title": "Glossary",
- "slug": "en+glossary",
- "github": "en/.glossary.json",
- "value": null,
- "custom": {
- "glossary": true
- },
- "posts": []
}
]
}
diff --git a/documentation/en/README.md b/documentation/en/README.md
new file mode 100644
index 000000000..76f11ed90
--- /dev/null
+++ b/documentation/en/README.md
@@ -0,0 +1,16 @@
+# Lotus documentation
+
+This folder contains some Lotus documentation mostly intended for Lotus developers.
+
+User documentation (including documentation for miners) has been moved to specific Lotus sections in https://docs.filecoin.io:
+
+- https://docs.filecoin.io/get-started/lotus
+- https://docs.filecoin.io/store/lotus
+- https://docs.filecoin.io/mine/lotus
+- https://docs.filecoin.io/build/lotus
+
+## The Lotu.sh site
+
+The https://lotu.sh and https://docs.lotu.sh sites are generated from this folder based on the index provided by [.library.json](.library.json). This is done at the [lotus-docs repository](https://github.com/filecoin-project/lotus-docs), which contains Lotus as a git submodule.
+
+To update the site, the lotus-docs repository should be updated with the desired version for the lotus git submodule. Once pushed to master, it will be auto-deployed.
diff --git a/documentation/en/dev/WIP-arch-complementary-notes.md b/documentation/en/WIP-arch-complementary-notes.md
similarity index 100%
rename from documentation/en/dev/WIP-arch-complementary-notes.md
rename to documentation/en/WIP-arch-complementary-notes.md
diff --git a/documentation/en/about.md b/documentation/en/about.md
new file mode 100644
index 000000000..f2051e00b
--- /dev/null
+++ b/documentation/en/about.md
@@ -0,0 +1,19 @@
+# Lotus
+
+Lotus is an implementation of the **Filecoin Distributed Storage Network**.
+
+It is written in Go and provides a suite of command-line applications:
+
+- Lotus Node (`lotus`): a Filecoin Node: validates network transactions, manages a FIL wallet, can perform storage and retrieval deals.
+- Lotus Miner (`lotus-miner`): a Filecoin miner. See the the respective Lotus Miner section in the Mine documentation.
+- Lotus Worker (`lotus-worker`): a worker that assists miners to perform mining-related tasks. See its respective guide for more information.
+
+The [Lotus user documentation](https://docs.filecoin.io/get-started/lotus) is part of the [Filecoin documentation site](https://docs.filecoin.io):
+
+* To install and get started with Lotus, visit the [Get Started section](https://docs.filecoin.io/get-started/lotus).
+* Information about how to perform deals on the Filecoin network using Lotus can be found in the [Store section](https://docs.filecoin.io/store/lotus).
+* Miners looking to provide storage to the Network can find the latest guides in the [Mine section](https://docs.filecoin.io/mine/lotus).
+* Developers and integrators that wish to use the Lotus APIs can start in the [Build section](https://docs.filecoin.io/mine/lotus).
+
+For more details about Filecoin, check out the [Filecoin Docs](https://docs.filecoin.io) and [Filecoin Spec](https://spec.filecoin.io/).
+
diff --git a/documentation/en/api-scripting-support.md b/documentation/en/api-scripting-support.md
deleted file mode 100644
index 653f144ed..000000000
--- a/documentation/en/api-scripting-support.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# Remote API Support
-
-You may want to delegate the work **Lotus Miner** or **Lotus Node** performs to other machines.
-Here is how to setup the necessary authorization and environment variables.
-
-## Environment variables
-
-Environmental variables are variables that are defined for the current shell and are inherited by any child shells or processes. Environmental variables are used to pass information into processes that are spawned from the shell.
-
-Using the [JWT you generated](https://lotu.sh/en+api#how-do-i-generate-a-token-18865), you can assign it and the **multiaddr** to the appropriate environment variable.
-
-```sh
-# Lotus Node
-FULLNODE_API_INFO="JWT_TOKEN:/ip4/127.0.0.1/tcp/1234/http"
-
-# Lotus Miner
-MINER_API_INFO="JWT_TOKEN:/ip4/127.0.0.1/tcp/2345/http"
-```
-
-You can also use `lotus auth api-info --perm admin` to quickly create _API_INFO env vars
-
-- The **Lotus Node**'s `mutliaddr` is in `~/.lotus/api`.
-- The default token is in `~/.lotus/token`.
-- The **Lotus Miner**'s `multiaddr` is in `~/.lotusminer/config`.
-- The default token is in `~/.lotusminer/token`.
diff --git a/documentation/en/api-troubleshooting.md b/documentation/en/api-troubleshooting.md
deleted file mode 100644
index 0cb3a6800..000000000
--- a/documentation/en/api-troubleshooting.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# API Troubleshooting
-
-## Types: params
-
-`params` must be an array. If there are no `params` you should still pass an empty array.
-
-## Types: TipSet
-
-For methods such as `Filecoin.StateMinerPower`, where the method accepts the argument of the type `TipSet`, you can pass `null` to use the current chain head.
-
-```sh
-curl -X POST \
- -H "Content-Type: application/json" \
- --data '{ "jsonrpc": "2.0", "method": "Filecoin.StateMinerPower", "params": ["t0101", null], "id": 3 }' \
- 'http://127.0.0.1:1234/rpc/v0'
-```
-
-## Types: Sending a CID
-
-If you do not serialize the CID as a [JSON IPLD link](https://did-ipid.github.io/ipid-did-method/#txref), you will receive an error. Here is an example of a broken CURL request:
-
-```sh
-curl -X POST \
- -H "Content-Type: application/json" \
- --data '{ "jsonrpc": "2.0", "method":"Filecoin.ClientGetDealInfo", "params": ["bafyreiaxl446wlnu6t6dpq4ivrjf4gda4gvsoi4rr6mpxau7z25xvk5pl4"], "id": 0 }' \
- 'http://127.0.0.1:1234/rpc/v0'
-```
-
-To fix it, change the `params` property to:
-
-```sh
-curl -X POST \
- -H "Content-Type: application/json" \
- --data '{ "jsonrpc": "2.0", "method":"Filecoin.ClientGetDealInfo", "params": [{"/": "bafyreiaxl446wlnu6t6dpq4ivrjf4gda4gvsoi4rr6mpxau7z25xvk5pl4"}], "id": 0 }' \
- 'http://127.0.0.1:1234/rpc/v0'
-```
diff --git a/documentation/en/api.md b/documentation/en/api.md
deleted file mode 100644
index 9760e2f32..000000000
--- a/documentation/en/api.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# API
-
-Here is an early overview of how to make API calls.
-
-Implementation details for the **JSON-RPC** package are [here](https://github.com/filecoin-project/go-jsonrpc).
-
-## Overview: How do you modify the config.toml to change the API endpoint?
-
-API requests are made against `127.0.0.1:1234` unless you modify `.lotus/config.toml`.
-
-Options:
-
-- `http://[api:port]/rpc/v0` - HTTP endpoint
-- `ws://[api:port]/rpc/v0` - Websocket endpoint
-- `PUT http://[api:port]/rest/v0/import` - File import, it requires write permissions.
-
-## What methods can I use?
-
-For now, you can look into different files to find methods available to you based on your needs:
-
-- [Both Lotus node + miner APIs](https://github.com/filecoin-project/lotus/blob/master/api/api_common.go)
-- [Lotus node API](https://github.com/filecoin-project/lotus/blob/master/api/api_full.go)
-- [Lotus miner API](https://github.com/filecoin-project/lotus/blob/master/api/api_storage.go)
-
-The necessary permissions for each are in [api/struct.go](https://github.com/filecoin-project/lotus/blob/master/api/struct.go).
-
-## How do I make an API request?
-
-To demonstrate making an API request, we will take the method `ChainHead` from [api/api_full.go](https://github.com/filecoin-project/lotus/blob/master/api/api_full.go).
-
-```go
-ChainHead(context.Context) (*types.TipSet, error)
-```
-
-And create a CURL command. In this command, `ChainHead` is included as `{ "method": "Filecoin.ChainHead" }`:
-
-```sh
-curl -X POST \
- -H "Content-Type: application/json" \
- --data '{ "jsonrpc": "2.0", "method": "Filecoin.ChainHead", "params": [], "id": 3 }' \
- 'http://127.0.0.1:1234/rpc/v0'
-```
-
-If the request requires authorization, add an authorization header:
-
-```sh
-curl -X POST \
- -H "Content-Type: application/json" \
- -H "Authorization: Bearer $(cat ~/.lotusminer/token)" \
- --data '{ "jsonrpc": "2.0", "method": "Filecoin.ChainHead", "params": [], "id": 3 }' \
- 'http://127.0.0.1:1234/rpc/v0'
-```
-
-> In the future we will add a playground to make it easier to build and experiment with API requests.
-
-## CURL authorization
-
-To authorize your request, you will need to include the **JWT** in a HTTP header, for example:
-
-```sh
--H "Authorization: Bearer $(cat ~/.lotusminer/token)"
-```
-
-Admin token is stored in `~/.lotus/token` for the **Lotus Node** or `~/.lotusminer/token` for the **Lotus Miner**.
-
-## How do I generate a token?
-
-To generate a JWT with custom permissions, use this command:
-
-```sh
-# Lotus Node
-lotus auth create-token --perm admin
-
-# Lotus Miner
-lotus-miner auth create-token --perm admin
-```
-
-## What authorization level should I use?
-
-When viewing [api/apistruct/struct.go](https://github.com/filecoin-project/lotus/blob/master/api/apistruct/struct.go), you will encounter these types:
-
-- `read` - Read node state, no private data.
-- `write` - Write to local store / chain, and `read` permissions.
-- `sign` - Use private keys stored in wallet for signing, `read` and `write` permissions.
-- `admin` - Manage permissions, `read`, `write`, and `sign` permissions.
diff --git a/documentation/en/architecture.md b/documentation/en/architecture/architecture.md
similarity index 99%
rename from documentation/en/architecture.md
rename to documentation/en/architecture/architecture.md
index ca4789fa0..61cd117bb 100644
--- a/documentation/en/architecture.md
+++ b/documentation/en/architecture/architecture.md
@@ -6,7 +6,7 @@ Filecoin protocol, validating the blocks and state transitions.
The specification for the Filecoin protocol can be found [here](https://filecoin-project.github.io/specs/).
For information on how to setup and operate a Lotus node,
-please follow the instructions [here](https://lotu.sh/en+getting-started).
+please follow the instructions [here](en+getting-started).
# Components
diff --git a/documentation/en/mpool.md b/documentation/en/architecture/mpool.md
similarity index 100%
rename from documentation/en/mpool.md
rename to documentation/en/architecture/mpool.md
diff --git a/documentation/en/cli.md b/documentation/en/cli.md
deleted file mode 100644
index fd26400d0..000000000
--- a/documentation/en/cli.md
+++ /dev/null
@@ -1,108 +0,0 @@
-# Lotus Command Line Interface
-
-The Command Line Interface (CLI) is a convenient way to interact with
-a Lotus node. You can use the CLI to operate your node,
-get information about the blockchain,
-manage your accounts and transfer funds,
-create storage deals, and much more!
-
-The CLI is intended to be self-documenting, so when in doubt, simply add `--help`
-to whatever command you're trying to run! This will also display all of the
-input parameters that can be provided to a command.
-
-We highlight some of the commonly
-used features of the CLI below.
-All CLI commands should be run from the home directory of the Lotus project.
-
-## Operating a Lotus node
-
-### Starting up a node
-
-```sh
-lotus daemon
-```
-This command will start up your Lotus node, with its API port open at 1234.
-You can pass `--api=` to use a different port.
-
-### Checking your sync progress
-
-```sh
-lotus sync status
-```
-This command will print your current tipset height under `Height`, and the target tipset height
-under `Taregt`.
-
-You can also run `lotus sync wait` to get constant updates on your sync progress.
-
-### Getting the head tipset
-
-```sh
-lotus chain head
-```
-
-### Control the logging level
-
-```sh
-lotus log set-level
-```
-This command can be used to toggle the logging levels of the different
-systems of a Lotus node. In decreasing order
-of logging detail, the levels are `debug`, `info`, `warn`, and `error`.
-
-As an example,
-to set the `chain` and `blocksync` to log at the `debug` level, run
-`lotus log set-level --system chain --system blocksync debug`.
-
-To see the various logging system, run `lotus log list`.
-
-### Find out what version of Lotus you're running
-
-```sh
-lotus version
-```
-
-## Managing your accounts
-
-### Listing accounts in your wallet
-
-```sh
-lotus wallet list
-```
-
-### Creating a new account
-
-```sh
-lotus wallet new bls
-```
-This command will create a new BLS account in your wallet; these
-addresses start with the prefix `t3`. Running `lotus wallet new secp256k1`
-(or just `lotus wallet new`) will create
-a new Secp256k1 account, which begins with the prefix `t1`.
-
-### Getting an account's balance
-
-```sh
-lotus wallet balance
-```
-
-### Transferring funds
-
-```sh
-lotus send --source=