plonky2/evm/Cargo.toml

49 lines
1.0 KiB
TOML
Raw Normal View History

2022-05-04 20:57:07 +02:00
[package]
2022-05-18 10:32:14 -07:00
name = "plonky2_evm"
description = "Implementation of STARKs for the Ethereum Virtual Machine"
2022-05-04 20:57:07 +02:00
version = "0.1.0"
edition = "2021"
[dependencies]
2022-09-07 15:09:56 -07:00
plonky2 = { path = "../plonky2", default-features = false, features = ["rand", "timing"] }
2022-05-04 20:57:07 +02:00
plonky2_util = { path = "../util" }
2022-10-31 15:15:10 -06:00
eth_trie_utils = "0.4.0"
2022-05-04 20:57:07 +02:00
anyhow = "1.0.40"
env_logger = "0.9.0"
ethereum-types = "0.14.0"
hex = { version = "0.4.3", optional = true }
2022-07-20 00:10:52 -07:00
hex-literal = "0.3.4"
2022-06-23 18:33:34 -07:00
itertools = "0.10.3"
keccak-hash = "0.10.0"
2022-05-04 20:57:07 +02:00
log = "0.4.14"
Modular operations for the EVM arithmetic unit (#755) * First draft of 256-bit addition. * Update comment. * cargo fmt * Rename addition evaluation file. * Port ALU logic from SZ. * Give a name to some magic numbers. * `addition.rs` -> `add.rs`; fix carry propagation in add; impl sub. * Clippy. * Combine hi and lo parts of the output. * Implement MUL. * Suppress Clippy's attempt to make my code even harder to read. * Next draft of MUL. * Make all limbs (i.e. input and output) 16-bits. * Tidying. * Use iterators instead of building arrays. * Documentation. * Clippy is wrong; also cargo fmt. * Un-refactor equality checking, since it was wrong for sub. * Daniel comments. * Daniel comments. * Rename folder 'alu' -> 'arithmetic'. * Rename file. * Finish changing name ALU -> Arithmetic Unit. * Finish removing dependency on array_zip feature. * Remove operations that will be handled elsewhere. * Rename var; tidy up. * Clean up columns; mark places where range-checks need to be done. * Import all names in 'columns' to reduce verbiage. * cargo fmt * Fix aux_in calculation in mul. * Remove redundant 'allow's; more precise range-check size. * Document functions. * Document MUL instruction verification technique. * Initial tests for ADD. * Minor test fixes; add test for SUB. * Fix bugs in generate functions. * Fix SUB verification; refactor equality verification. * cargo fmt * Add test for MUL and fix some bugs. * Update doc. * Quiet incorrect clippy error. * Initial implementation of ADDMOD and MOD. * Fixes to addmod. * Update doc. * Do 1000 random tests instead of just 1. * Documentation fix. * Working version of ADDMOD. * Working version of MOD. * Name magic number; do multiple MUL tests. * Add code and test for special case; add some docs. * Fix spelling mistake. * Simplify asserts. * Tidy comment. * Remove unused module. * cargo fmt * Check that output is reduced. * Add conversion of canonical `i64` to a `Field64`. * Handle zero modulus within degree constraint. * cargo fmt * Fix some comments. * Check that the top half of the product is zero! * Start of refactor. * Refactoring. * Remove zero and reduction handling from addmod. * Refactoring; renaming; bug fixes. * Reuse intermediate calculations across all modular operations; don't negate quot poly unnecessarily. * Fix bug where last elt of q*m wasn't checked. * Refactoring. * Move circuit poly functions to utils.rs. * Rename ADDMOD stuff to MODULAR. * Rename module addmod -> modular. * Handle zero modulus. * Verify that output is reduced. * Implement recursive version of modular circuits. * clippy * Tidy up i64 -> Field conversion following Jacqui's comments. * cargo fmt * Improved documentation. * Address Jacqui's comments. * Save some gates by using builder.arithmetic_extension().
2022-10-07 17:15:50 +11:00
num = "0.4.0"
2022-09-19 10:32:52 -07:00
maybe_rayon = { path = "../maybe_rayon" }
once_cell = "1.13.0"
pest = "2.1.3"
pest_derive = "2.1.0"
2022-05-12 20:38:11 +02:00
rand = "0.8.5"
2022-05-26 08:22:23 -07:00
rand_chacha = "0.3.1"
2022-10-03 15:30:17 -07:00
ripemd = "0.1.3"
rlp = "0.5.1"
2022-10-04 15:12:44 -07:00
rlp-derive = "0.1.0"
serde = { version = "1.0.144", features = ["derive"] }
2022-09-19 10:32:52 -07:00
sha2 = "0.10.2"
2022-08-24 16:06:50 -07:00
tiny-keccak = "2.0.2"
[dev-dependencies]
criterion = "0.3.5"
2022-07-14 14:26:01 +02:00
hex = "0.4.3"
[features]
2022-07-24 17:47:14 -04:00
default = ["parallel"]
asmtools = ["hex"]
2022-09-07 15:09:56 -07:00
parallel = ["plonky2/parallel", "maybe_rayon/parallel"]
[[bin]]
name = "assemble"
required-features = ["asmtools"]
[[bench]]
name = "stack_manipulation"
harness = false