Commit Graph

73 Commits

Author SHA1 Message Date
Daniel Sanchez Quiros ff7e7e2c6c Update docs 2024-03-05 11:16:34 +01:00
Daniel Sanchez Quiros 3116a9fd3b Move and rename kzg and rs test modules 2024-03-05 10:21:04 +01:00
Daniel Sanchez Quiros 62a3790fcf Remove fft, use evaluations instead 2024-03-05 10:07:25 +01:00
Daniel Sanchez Quiros 4566313bd7 Use lagrange for interpolation 2024-03-04 16:55:07 +01:00
Daniel Sanchez Quiros 9131f4a688 Implement encode/decode+test using fft. Non-working 2024-02-28 14:05:08 +01:00
Daniel Sanchez Quiros 0e620904ee Implement generator polynomial and rs encoding 2024-02-27 19:50:27 +01:00
Daniel Sanchez d15eaa2d98
KZG core functionality (#73)
* Added polynomial class

* Added common types and constants

* Implement commitment and proof generation

* Added basic tests

* Use custom polynomial

* use evaluation form for building polynomial

* Use fast division on polynomials

* Fix poly operations

* Add non working verification

* Make verification work

* Expand verify test

* Cleanup imports

* Update deps

* Update common.py

added verify setup mechanism

* Added trusted setup, updated common to use gp generator and added setup verification test

* Added comments

---------

Co-authored-by: megonen <146561843+megonen@users.noreply.github.com>
2024-02-27 17:49:27 +01:00
Daniel Sanchez 9a54d90d14
Da specs main structure (#70)
* Added da encoder pipeline draft

* Remove unnecessary method

* Added verifier module and blob type

* Fill verifier skeleton

* Add comments on implementation, remove unnecessary intermediary method

* Added dispersal skeleton

* Added test modules for dispersal and verifier

* Added test modules for encoder, implemented basic test

* Added missing test cases

* Added missing calls to encode method

* Use single megabyte test in encoder

* Added basic testcases for dispersal

* Added basic testcases for verifier

* Remove duplicated column proofs from encoding schema

* Remove parameters from test functions in encoder

* Extract common types to common module

* Make test pass

* Remove node id dep from mixnet and fix columns access
2024-02-12 15:35:23 +01:00
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