1
1
# Nomos
2
2
3
- Nomos is the blockchain layer of the Logos technology stack.
4
-
5
- This monorepo is a unified codebase for the Nomos ecosystem, providing a privacy-preserving and censorship-resistant
3
+ Nomos is the blockchain layer of the Logos technology stack, providing a privacy-preserving and censorship-resistant
6
4
framework for decentralized network states.
7
5
8
- It houses all core components, services, and tools necessary for running and interacting with the Nomos blockchain,
9
- including :
6
+ This monorepo serves as a unified codebase for the Nomos ecosystem, housing all core components, services, and tools
7
+ necessary for running and interacting with the Nomos blockchain. Key features include :
10
8
11
9
- Consensus mechanisms for secure and scalable network agreement
12
10
- Ledger management for state persistence and validation
@@ -17,8 +15,9 @@ including:
17
15
## Table of Contents
18
16
19
17
- [ Requirements] ( #requirements )
20
- - [ Features] ( #features )
21
18
- [ Design Goals] ( #design-goals )
19
+ - [ Service Architecture] ( #service-architecture )
20
+ - [ Static Dispatching] ( #static-dispatching )
22
21
- [ Project Structure] ( #project-structure )
23
22
- [ Development Workflow] ( #development-workflow )
24
23
- [ Docker] ( #docker )
@@ -30,25 +29,24 @@ including:
30
29
31
30
## Requirements
32
31
33
- ** Rust**
34
-
35
- - We aim to maintain compatibility with the latest stable version of Rust.
36
- - [ Installation Guide] ( https://www.rust-lang.org/tools/install )
32
+ - ** Rust**
33
+ - We aim to maintain compatibility with the latest stable version of Rust.
34
+ - [ Installation Guide] ( https://www.rust-lang.org/tools/install )
37
35
38
- ** Risc0**
39
-
40
- - Required for zero-knowledge proof functionality.
41
- - [ Installation Guide] ( https://dev.risczero.com/api/zkvm/install )
36
+ - ** Risc0**
37
+ - Required for zero-knowledge proof functionality.
38
+ - [ Installation Guide] ( https://dev.risczero.com/api/zkvm/install )
42
39
43
40
## Design Goals
44
41
45
42
### Service Architecture
46
43
47
- Most of Nomos' services are implemented with the same idea behind:
48
- There is a front layer responsible for handling the ` Overwatch ` service and a back layer that implements
49
- the actual service logic.
44
+ Nomos services follow a consistent design pattern: a front layer handles the ` Overwatch ` service, while a back layer
45
+ implements the actual service logic.
46
+
47
+ This modular approach allows for easy replacement of components in a declarative manner.
50
48
51
- This enables us to easily replace services' components in a declarative manner. For example:
49
+ For example:
52
50
53
51
``` rust ignore
54
52
#[derive(Services )]
@@ -63,7 +61,7 @@ struct MockPoolNode {
63
61
64
62
### Static Dispatching
65
63
66
- Nomos leans toward static dispatching over dynamic, partly influenced by ` Overwatch ` .
64
+ Nomos favours static dispatching over dynamic, influenced by Overwatch.
67
65
This means you'll encounter Generics sprinkled throughout the codebase.
68
66
While it might occasionally feel a bit over the top, it brings some solid advantages, such as:
69
67
0 commit comments