Skip to content

Commit 70d0eb3

Browse files
authored
Merge pull request #27 from kunta-labs/development
Dev update
2 parents ec080b3 + 9502af7 commit 70d0eb3

File tree

83 files changed

+2549
-192
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+2549
-192
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ core/src/target/
1010
core/src/target/*
1111
/core/src/target/*
1212
**/*.rs.bk
13+
/**/target

README.md

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Africa Operating System (AfricaOS)
2-
A simple, customizable, proposal-based, replicated state machine (RSM), inspired by pBFT (Practical Byzantine Fault Tolerance) written in pure Rust
2+
A simple, customizable, proposal-based, replicated state machine (RSM), inspired by pBFT (Practical Byzantine Fault Tolerance) written in pure Rust. We show how to setup an N-node network, of which accepts transactions. The transactions can execute arbitrary logic.
33

44
| Status Type | Status |
55
| --- | --- |
@@ -66,12 +66,29 @@ To create/submit a new transaction every m seconds
6666
make stress # from inside ./core/
6767
```
6868

69+
This will create one output tx
70+
```
71+
make stress_output # from inside ./core/
72+
```
73+
74+
This will create an input tx for that output
75+
```
76+
tx_hash=< OUTPUT-TX-HASH > make stress_input
77+
```
78+
79+
Viewing state from your container
80+
```
81+
docker cp 8dcbe580eb6f:storage/states.db ./states.db ; cat ./states.db ; rm ./states.db
82+
```
83+
6984
# Docker
7085
To build the core docker container, run (from inside ./)
7186
```
7287
make dbm # stands for "docker build main"
7388
```
7489

90+
this will build the container from source
91+
7592
### Pulling AOS core container
7693
to pull a minimal docker image of AfricaOS, run
7794
```
@@ -81,9 +98,41 @@ docker pull kuntalabs/africaos:latest
8198
### Running 3-node network
8299
to run the 3 containers, and set up the 3-node network, run (from inside ./core/)
83100
```
84-
make rac # stands for "run all containers"
101+
make rac # or make dbm, stands for "run all containers"
102+
```
103+
104+
# Transactions
105+
Combined txs will have the following default values (this is to be customized for your use case):
106+
```
107+
<partner_sender> <partner_tx_hash> <sig> <pk> <pkhash> <amount>
108+
```
109+
110+
## Output
111+
```
112+
<pkhash> <amount>
113+
```
114+
115+
Senders submit the hash of the receivers public key to the blockchain, and the amount to send to the receiver
116+
117+
## Input
118+
```
119+
<partner_sender> <partner_tx_hash> <sig> <pk>
120+
```
121+
Receivers submit the sender of the amount, the hash of the output transaction, their signature of an arbitrary string (default: "TEST"), and finally the receiver's public key
122+
123+
## Generating new keys
124+
```
125+
make new_keys
85126
```
86127

128+
# Customization
129+
We expose common customization points
130+
- Block Validation
131+
- Proposal Validation
132+
- Proposal Creator Election
133+
- Transaction Output Logic
134+
- Transaction Input Logic
135+
87136
## To Contribute
88137
TODO:
89138
- Submit Issue using template

0 commit comments

Comments
 (0)