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:
Daniel Sanchez 2023-02-10 17:07:04 +01:00 committed by GitHub
parent 6b45bf408e
commit 1d195959d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 44 additions and 1 deletions

View File

@ -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 .