56 Commits

Author SHA1 Message Date
David Rusu
3f681fc51f update block id spec; typo 2024-02-06 20:19:30 +04:00
David Rusu
5c3de9ab84 implement support for leader-proofs generated from evolved coins 2024-02-06 20:07:26 +04:00
David Rusu
eebf439a30 feat(leader_coin): add nonce and coin.evolve() api 2024-02-06 19:31:34 +04:00
Giacomo Pasini
c1e12d6ce8
Add epoch transition to spec (#63)
* Add epoch transition to spec

* add tests

* Add block to fork after validation

* Add configs for steps inside an epoch

* rename get_last_valid_state to state_at_slot_beginning
2024-02-06 14:38:20 +01:00
Youngjoon Lee
fe7d47caee
Mixnet: integrate all the pieces together (#57) 2024-02-05 09:04:02 +01:00
Youngjoon Lee
b1ffb4d62d
Mixnet: topology update (#56) 2024-02-05 07:47:36 +01:00
davidrusu
d7b5e0b529
Merge pull request #62 from logos-co/epoch-state-spec
Follower maintains ledger state as it follows the blockchain
2024-02-02 13:29:41 +04:00
David Rusu
9f6b9eb242 Specify mock-leader-proof in message spec 2024-02-02 01:16:14 +04:00
David Rusu
9345af0614 test ledger state is properly updated on re-org 2024-02-01 21:33:37 +04:00
David Rusu
62ea40ba5e address CR 2024-02-01 20:25:49 +04:00
David Rusu
45bddc0e21 Follower maintains ledger state as it follows the chain 2024-02-01 15:08:50 +04:00
David Rusu
7d8e4d72d9 setup for ledger state update 2024-02-01 15:08:50 +04:00
David Rusu
66239b3913 checkpoint work on ledger-state 2024-02-01 15:08:50 +04:00
Giacomo Pasini
734b038c50
Add header id and message format specification (#52)
* Create messages.abnf

* add missing block rule

* Add content id to header message

* add header id definition + implementation in python

* address review comments
2024-01-31 23:09:03 +01:00
Daniel Sanchez
0f6bcf11b1
Add eth-specs submodule (#60)
* Added eth specs submodule

* Rename to eth-specs instead

* Added install script for ethspecs module

* Use python and pip instead of 3

* Load eth-specs in ci

* Add checkout submodules to ci

* Make install script executable

* Added missing install command in script

* Added missing submodule

* Move to eth-specs for building
2024-01-31 09:53:04 +01:00
Daniel Sanchez
7df4f9556f
Specify shuffling algorithm (#37) 2024-01-31 09:33:44 +01:00
Daniel Sanchez
ff09cf8bb8
Sort committees before hashing (#36) 2024-01-31 09:33:13 +01:00
Youngjoon Lee
1d3bf3c6d8
Clarify Cryptarchia slot calcuation (#59) 2024-01-30 11:57:54 +01:00
Giacomo Pasini
45c303ef14
Add fork choice rule (#58)
* add fork choice rule

* add comments explaining k and s

* add tests

* fix test import
2024-01-29 14:29:56 +01:00
davidrusu
a587e3a164
Merge pull request #54 from logos-co/cryptarchia
Cryptarchia specs
2024-01-26 16:31:25 +04:00
davidrusu
0c4bfa4d03
Merge branch 'master' into cryptarchia 2024-01-26 00:14:22 +04:00
davidrusu
8c43b68c35
Merge pull request #55 from logos-co/cryptarchia-leader-lottery
feat(lottery): spec out basic leader slot check
2024-01-25 16:30:14 +04:00
David Rusu
94f97caab0 rename EpochState.stake_distribution() to EpochState.total_stake() 2024-01-25 15:26:54 +04:00
David Rusu
1420117e9a rename LedgerState.head to LedgerState.block 2024-01-25 14:25:37 +04:00
Youngjoon Lee
ebc069b112
Mixnet: Refactor with asyncio (#53) 2024-01-25 18:04:55 +09:00
David Rusu
b8966762e0 feat(lottery): spec out basic leader slot check 2024-01-25 02:04:35 +04:00
Giacomo Pasini
c4c52fbff4
TMP 2024-01-24 12:52:30 +01:00
Youngjoon Lee
30d52791c3
Mixnet: mix client emission (#50) 2024-01-23 10:46:00 +09:00
Youngjoon Lee
d963d6cb51
Mixnet: Packet delay in mix node (#49) 2024-01-23 10:29:14 +09:00
Youngjoon Lee
1fc319de9e
Mixnet: Sphinx packet builder for mix clients (#47) 2024-01-15 15:17:35 +09:00
Youngjoon Lee
2263327320
Use Python 3.12 and install setuptools (#48) 2024-01-12 19:27:09 +09:00
Youngjoon Lee
55f4702e0b
Run CI even on master (#45) 2024-01-11 18:22:19 +09:00
Youngjoon Lee
ef65355bf7
Mixnet: Add basic structure and topology construction (#44) 2024-01-10 20:47:13 +09:00
Youngjoon Lee
879e023790
Upgrade actions/setup-python to v5 (#42) 2024-01-10 10:23:14 +09:00
Youngjoon Lee
8be2750c75
Use package prefix to run unittests at the root dir (#41) 2024-01-10 10:23:03 +09:00
Giacomo Pasini
6f0e8a95c0
Add clarifying comment to forward_vote (#38) 2023-11-02 10:40:30 +01:00
Daniel Sanchez
f635996d10
Tree overlay (#34)
* Start implementing TreeOverlay

* Implement tree overlay

* Add basic tests

* Fixes

* Fill leaves with extra nodes one by one

* Handle missing optional value

* Parenting fixes

* Parenting tests

* Remove unnecesary number of committes

* Fill from root committee

* Adapt tests to root filling

* Root parent is None

* Typo: committee_idx

* Fix leader supermajority threshold

* Fix type signature on building committee data

* Use plain carnot tree for carnot tree tests

* Add tree implementation explanation

* Fmt

* Use blake2b

* Fix idx signature on membership committees

* Check on committee child existence
2023-07-04 12:10:48 +02:00
Alexander Mozeika
4320e3aaa3
Merge pull request #35 from logos-co/committee-sizes-AM
Added description  and reviewed  comm. sizes  algorithm
2023-06-27 18:29:22 +01:00
Alexander Mozeika
380af083ea
Merge branch 'master' into committee-sizes-AM 2023-06-27 18:28:29 +01:00
Daniel Sanchez
9b87f8e733
Committee sizes computation (#33)
* Added optimal number of committees and sizes function

* Remove main

* Extract common scope code snippet

* Fmt
2023-06-27 17:39:31 +02:00
Alexander Mozeika
90ab66a4dc
Added algorithm description 2023-06-27 15:14:15 +01:00
Alexander Mozeika
8e05937715
Edited comments 2023-06-27 14:10:35 +01:00
danielsanchezq
143c009e8e Fmt 2023-06-27 14:10:39 +02:00
danielsanchezq
18c8407edb Extract common scope code snippet 2023-06-27 13:12:06 +02:00
danielsanchezq
7528506b21 Remove main 2023-06-23 11:05:15 +02:00
danielsanchezq
3d0aa49b9e Added optimal number of committees and sizes function 2023-06-23 10:36:33 +02:00
Youngjoon Lee
a4d07256d6
test: make the committed_blocks test more strict (#31) 2023-06-07 17:04:30 +09:00
Daniel Sanchez
630dd3ac5c
EntropyOverlay refactor (#30)
* Refactor FlatOverlay

* Refactor EntropyOverlay and usages
2023-05-30 21:15:56 +02:00
Giacomo Pasini
34617dc911
Random Beacon revision (#29)
* Random Beacon revision

This is a proposed revision of the random beacon specification.
First of all it fixes a few little mistakes in the signing
process:
* Use BasicSchemeMPL instead of PoPSchemeMPL since we don't use
  Proof of Possession.
* Hashing the values prior to the call to BasicSchemeMPL.sing()
  is not necessary. This step has been removed.

In addition, all data inside the random beacon state that
anyone willing to verify must know anyway has been removed.
In the current version this includes the 'context' and the public
key of the signer. The verifier has to independently check that
those values have been correctly obtained anyway, so there's no
need to include them in the state that is passed around.

Lastly, the beacon context view has been changed from using a
string encoding to a little endian variable-length encoding and
is now tied to qc.view instead of current_view of the processing
node.

* actually use the version const
2023-05-25 10:26:35 +02:00
Daniel Sanchez
b0edea6a98
Tiny fixes (#28) 2023-05-24 13:44:23 +02:00