Elaborate on things a bit in the readme
This commit is contained in:
parent
e2459b1731
commit
f255bd929f
57
README.md
57
README.md
@ -1,6 +1,15 @@
|
|||||||
# project lotus - 莲
|
# project lotus - 莲
|
||||||
|
|
||||||
Lotus is an implementation of the Filecoin Distributed Storage Network.
|
Lotus is an experimental implementation of the Filecoin Distributed Storage
|
||||||
|
Network. For more details, check out the
|
||||||
|
[spec](https://github.com/filecoin-project/spec).
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
All work is tracked via issues, and an attempt to keep an up to date view on
|
||||||
|
this exists in the [lotus testnet github project
|
||||||
|
board](https://github.com/filecoin-project/go-lotus/projects/1).
|
||||||
|
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
@ -15,5 +24,51 @@ Lotus is an implementation of the Filecoin Distributed Storage Network.
|
|||||||
$ make
|
$ make
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
Lotus is architected modularly, and aims to keep clean api boundaries between
|
||||||
|
everything, even if they are in the same process. Notably, the 'lotus full node'
|
||||||
|
software, and the 'lotus storage miner' software are two separate programs.
|
||||||
|
|
||||||
|
The lotus storage miner is intended to be run on the machine that manages a
|
||||||
|
single storage miner instance, and is meant to communicate with the full node
|
||||||
|
via the websockets api for all of its chain interaction needs. This way, a
|
||||||
|
mining operation may easily run one or many storage miners, connected to one or
|
||||||
|
many full node instances.
|
||||||
|
|
||||||
|
## Notable Modules
|
||||||
|
|
||||||
|
### Api
|
||||||
|
The systems api is defined in here. The rpc maps directly to the api defined
|
||||||
|
here using the jsonrpc package in `lib/jsonrpc`.
|
||||||
|
|
||||||
|
### Chain/Types
|
||||||
|
Implementation of data structures used by Filecoin and their serializations.
|
||||||
|
|
||||||
|
### Chain/Store
|
||||||
|
The chainstore manages all local chain state, including block headers,
|
||||||
|
messages, and state.
|
||||||
|
|
||||||
|
### Chain/State
|
||||||
|
A package for dealing with the filecoin state tree. Wraps the
|
||||||
|
[HAMT](https://github.com/ipfs/go-hamt-ipld).
|
||||||
|
|
||||||
|
### Chain/Actors
|
||||||
|
Implementations of the builtin Filecoin network actors.
|
||||||
|
|
||||||
|
### Chain/Vm
|
||||||
|
The filecoin state machine 'vm'. Implemented here are utilities to invoke
|
||||||
|
filecoin actor methods.
|
||||||
|
|
||||||
|
|
||||||
|
### Miner
|
||||||
|
The block producer logic. This package interfaces with the full node through
|
||||||
|
the api, despite currently being implented in the same process (very likely to
|
||||||
|
be extracted as its own separate process in the near future).
|
||||||
|
|
||||||
|
### Storage
|
||||||
|
The storage miner logic. This package also interfaces with the full node
|
||||||
|
through a subset of the api. This code is used to implement the
|
||||||
|
lotus-storage-miner process.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
MIT + Apache
|
MIT + Apache
|
||||||
|
Loading…
Reference in New Issue
Block a user