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
@@ -18,6 +16,8 @@ including:
18
16
19
17
- [ Requirements] ( #requirements )
20
18
- [ Design Goals] ( #design-goals )
19
+ - [ Service Architecture] ( #service-architecture )
20
+ - [ Static Dispatching] ( #static-dispatching )
21
21
- [ Project Structure] ( #project-structure )
22
22
- [ Development Workflow] ( #development-workflow )
23
23
- [ Docker] ( #docker )
@@ -29,25 +29,24 @@ including:
29
29
30
30
## Requirements
31
31
32
- ** Rust**
33
-
34
- - We aim to maintain compatibility with the latest stable version of Rust.
35
- - [ 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 )
36
35
37
- ** Risc0**
38
-
39
- - Required for zero-knowledge proof functionality.
40
- - [ 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 )
41
39
42
40
## Design Goals
43
41
44
42
### Service Architecture
45
43
46
- Most of Nomos' services are implemented with the same idea behind:
47
- There is a front layer responsible for handling the ` Overwatch ` service and a back layer that implements
48
- 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.
49
48
50
- This enables us to easily replace services' components in a declarative manner. For example:
49
+ For example:
51
50
52
51
``` rust ignore
53
52
#[derive(Services )]
@@ -62,7 +61,7 @@ struct MockPoolNode {
62
61
63
62
### Static Dispatching
64
63
65
- Nomos leans toward static dispatching over dynamic, partly influenced by ` Overwatch ` .
64
+ Nomos favours static dispatching over dynamic, influenced by Overwatch.
66
65
This means you'll encounter Generics sprinkled throughout the codebase.
67
66
While it might occasionally feel a bit over the top, it brings some solid advantages, such as:
68
67
0 commit comments