|
3 | 3 | BTFE is a BFT consensus engine. A permissioned p2p blockchain to |
4 | 4 | drive BFT applications in federated setup, including financial (Bitcoin) domains. |
5 | 5 |
|
6 | | -### BFTE vs Fedimint |
| 6 | +## Introduction |
7 | 7 |
|
8 | 8 | It's fair to say BFTE in its current form is a research on alternative |
9 | 9 | implementation of a Fedimint-like system, and this project aims at the very similar *very-long* |
@@ -42,43 +42,13 @@ compatibility etc. |
42 | 42 | By ignoring all these ambitions, BFTE can focus first on honing the primary |
43 | 43 | goal: becoming good general purpose modular consensus engine. |
44 | 44 |
|
45 | | -### Design (Ideas): |
| 45 | +## Links |
46 | 46 |
|
47 | | -*Some of these might make more sense if you already understand Fedimint*. |
| 47 | +* [BFTE Radicle site](https://app.radicle.xyz/nodes/radicle.dpc.pw/rad:zii8qFzZhN3vigh8BuxGCuEEp6z4) - BFTE uses [Radicle][radicle] as primary distributed code collaboration platform. |
| 48 | +* [BFTE design document](./README.design.md) |
48 | 49 |
|
49 | | -In BFTE consensus is a central primitive, and near *everything* is part of the consensus history. |
| 50 | +[radicle]: https://radicle.xyz |
50 | 51 |
|
51 | | -Adding and removing peers, changes to configuration like adding new modules |
52 | | -(applications), software upgrades, etc. are all implemented by consensus items agreed on |
53 | | -and published on a shared ledger. |
54 | | - |
55 | | -Replicating, but not participating nodes are a first class primitive. |
56 | | -Anyone can run an additional consensus history replicating node, without necessarily participating |
57 | | -in consensus building. |
58 | | - |
59 | | -A simple consensus algorithm (Simplex) is used to perfectly match |
60 | | -the needs of BFTE. |
61 | | - |
62 | | -Simplicity is achieved through interactions between few well |
63 | | -thought general purpose pritmivites. |
64 | | - |
65 | | -Trying to avoid non-consensus APIs and state. |
66 | | - |
67 | | -Maintaining additional APIs, and client side state machines is just duplicating effort. |
68 | | -The mutable part of the consensus state is typically small anyway and |
69 | | -"clients" might maybe throw away the bulk data that they don't need anyway, |
70 | | -as they not validate the consensus. |
71 | | - |
72 | | -Things like DKGs can just happen as a part of consensus. Mint module should support |
73 | | -multiple keysets, and generating new ones on demand. |
74 | | - |
75 | | -Consensus items should be just module specific inputs/outputs, signed by the |
76 | | -node itself. This allows things like conditional consensus items. |
77 | | - |
78 | | -Effect system as the only means of inter-module interactions. Modules processing consensus |
79 | | -items can produce typed and serialized "effects", which other modules that happen to understand |
80 | | -can act on. |
81 | | - |
82 | | -### License |
| 52 | +## License |
83 | 53 |
|
84 | 54 | MPLE is licensed under MIT. |
0 commit comments