Commit Graph

65 Commits

Author SHA1 Message Date
Daniel Sanchez bcde60a97f
Arkworks dependency utility script (#71)
* Added install script for building in arm64 in osx arkworks bls dep

* Added install script for building in arm64 in osx arkworks bls dep
2024-02-11 23:15:15 +01:00
Giacomo Pasini 495e0c119a
Add orphan proofs validation (#69)
* Add orphan proofs validation

* Update cryptarchia/cryptarchia.py

Co-authored-by: davidrusu <davidrusu.me@gmail.com>

---------

Co-authored-by: davidrusu <davidrusu.me@gmail.com>
2024-02-09 15:12:12 +01:00
Youngjoon Lee 5dd7b2730a
Embed Robustness into `mixnet.py` (#61) 2024-02-08 15:39:50 +09:00
davidrusu cde1e92c9e
Leader VRF uses coin nonce as well as sk (#68)
* standardize endianness to "big"

* slot.encode()

* include coin nonce in leader election VRF

---------

Co-authored-by: David Rusu <davidrusu@Davids-MacBook-Pro.local>
2024-02-07 18:28:36 +04:00
Giacomo Pasini 6f05392693
Add slot contribution to nonce (#67) 2024-02-07 12:31:31 +01:00
davidrusu 0c447881ca
Merge pull request #65 from logos-co/evolve-leader-coin
Spec. Leader Coin Evolution
2024-02-07 01:53:26 +04:00
David Rusu 2a9ec4bc86 distinguish thew two commitments in the leader prf abnf 2024-02-06 22:21:16 +04:00
David Rusu bddaa40d63 test coin minting and stake stabilizing 2024-02-06 22:19:08 +04:00
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
Giacomo Pasini 8a82517fdd
Add nonce specification (#64)
* Add nonce specification

* tweak nonce definition
2024-02-06 16:37:49 +01: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