Add services and project information to project README (#72)
* Add services and project information to project README * Better phrased nomos services
This commit is contained in:
parent
6b45bf408e
commit
1d195959d8
45
README.md
45
README.md
|
@ -1,9 +1,52 @@
|
|||
# nomos-research
|
||||
Nomos blockchain node mvp
|
||||
|
||||
|
||||
## Project structure
|
||||
|
||||
- `nomos-core`: Nomos core is the collection of essential structures for the Nomos mvp and experimental nodes.
|
||||
- `nomos-services`: Nomos services is the collection of components that are used as building blocks of the Nomos node prototype and the experimental nodes.
|
||||
- consensus
|
||||
- log
|
||||
- http
|
||||
- mempool
|
||||
- network
|
||||
- metrics
|
||||
- `nodes`: Nomos nodes is the collection of nodes that are used to run the Nomos mvp and experimental nodes.
|
||||
- `nomos-node`: main implementation of the Nomos mvp node.
|
||||
- `mockpool-node`: node with single mempool service, used to measure transaction dissemination.
|
||||
|
||||
|
||||
## Services
|
||||
|
||||
The Nomos node uses `Overwatch` as its main internal framework. This means that services request communication channels
|
||||
to other services to interchange information through a specified messaging API.
|
||||
|
||||
### Service architecture
|
||||
|
||||
Most of the services are implemented with the same idea behind. There is a front layer responsible for handling the `Overwatch` service
|
||||
and a back layer that implement the actual service logic.
|
||||
|
||||
This allows us to easily replace components as needed in a type level system. In any case, a node can be setup in a declarative way composing the types.
|
||||
For example:
|
||||
|
||||
```rust
|
||||
...
|
||||
#[derive(Services)]
|
||||
struct MockPoolNode {
|
||||
logging: ServiceHandle<Logger>,
|
||||
network: ServiceHandle<NetworkService<Waku>>,
|
||||
mockpool: ServiceHandle<MempoolService<WakuAdapter<Tx>, MockPool<TxId, Tx>>>,
|
||||
http: ServiceHandle<HttpService<AxumBackend>>,
|
||||
bridges: ServiceHandle<HttpBridgeService>,
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Docker
|
||||
|
||||
To build and run a docker container with nomos node run:
|
||||
To build and run a docker container with Nomos node run:
|
||||
|
||||
```bash
|
||||
docker build -t nomos .
|
||||
|
|
Loading…
Reference in New Issue