Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tracking] Upgrade structs, remove duplication, refactor codebase, improve ergonomics #185

Merged
merged 69 commits into from
May 31, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
78dde2b
Implement AllocBytesGadget for marlin proof gadget
raychu86 May 27, 2021
0c2ba6c
Fix import structure
raychu86 May 27, 2021
5f4ed50
Implement AllocBytesGadget for marlin prepared circuit verifier gadget
raychu86 May 27, 2021
7645869
Implement converstion from prepared vk to original vk
raychu86 May 27, 2021
5135efe
Implement ToBytesGadget for prepared circuit verifying key gadget
raychu86 May 27, 2021
339e82f
Implement direct alloc from unprepared verifying key
raychu86 May 27, 2021
74e4a83
clean up syntax
raychu86 May 27, 2021
75b193a
Add explicit input type declaration for snark verifier
raychu86 May 28, 2021
197ed44
Explicitly declare input types for snark verifier
raychu86 May 28, 2021
14d0033
Implement snark verifier gadget for marlin
raychu86 May 28, 2021
33acd37
Rename base_dpc to testnet1
May 29, 2021
84687bc
Rename base_dpc to testnet1
May 29, 2021
afd729e
Merge branch 'master' of https://github.com/AleoHQ/snarkVM into feat/…
May 29, 2021
5acdd3f
Merge duplicate Assignment structs and fix usage
May 29, 2021
975eda9
Removes use testnet1 so it much be explicitly used in imports
May 29, 2021
93f33ce
Fix authors link in README
May 29, 2021
3ff07f6
Rename ProgramScheme and RecordScheme
May 29, 2021
1635664
Rename to TransactionScheme
May 29, 2021
4334b72
Rename DPCTransaction to Transaction
May 29, 2021
4885979
Fmt
May 29, 2021
1a5a201
refactors
May 29, 2021
77b4ad8
Update record serializer to record encoding
May 29, 2021
17486bb
Update comments
May 29, 2021
8465fc3
Update SNARK trait internal parameter names
May 29, 2021
9296bda
Merge branch 'feat/ergonomics' of https://github.com/AleoHQ/snarkVM i…
May 29, 2021
a51afed
Fix
May 29, 2021
21f2347
Merge pull request #180 from AleoHQ/feat/marlin-snark-standard
howardwu May 29, 2021
274e20d
Update README
May 29, 2021
2afffa3
Update marlin to match new convention
May 29, 2021
4600a4a
Rename RecordPayload to Payload
May 29, 2021
a3d9213
Isolate integer and utility gadgets out of the traits::utilities module
May 29, 2021
4de13b4
Resolve gadget imports in nonnative
May 30, 2021
a10b0cb
Fix dpc gadgets imports
May 30, 2021
48f45b5
Fix nonnative test imports
May 30, 2021
d57399d
Resolve polycommit imports for gadgets
May 30, 2021
866662f
Resolve marlin and polycommit imports
May 30, 2021
a45c6b6
Fix posw circuit imports
May 30, 2021
7e0bc50
Simplify boolean gadget imports
May 30, 2021
dff819e
Rename gadgets::utilities to gadgets::bits
May 30, 2021
96be542
Remove utilities module from traits, simplify layout
May 30, 2021
fe4510e
Clean up
May 30, 2021
cdcb68e
Fix benchmarks
May 30, 2021
b9ce04b
Add basic prelude for gadgets
May 30, 2021
b38927f
Fix prelude and use in bench example
May 30, 2021
e001c6c
Use prelude on marlin bench
May 30, 2021
7e67c10
Migrates to
May 30, 2021
631809c
Refactor nonnative integration tests
May 30, 2021
187b98e
Add feature guards in gadgets
May 30, 2021
aa02774
Merge pull request #186 from AleoHQ/refactor/gadgets
howardwu May 30, 2021
4502040
Add prelude for snarkvm-algorithms
May 31, 2021
22b2633
Merge pull request #188 from AleoHQ/refactor/nonnative
howardwu May 31, 2021
e235426
Resolve merge conflicts
May 31, 2021
15f2a68
Add prelude for dpc
May 31, 2021
26b3e4b
Move Amount to snarkvm-dpc, remove unused AmountError
May 31, 2021
0b29b70
Migrate snarkvm-objects to snarkvm-dpc::block
May 31, 2021
13eb78e
Update README
May 31, 2021
c3682bb
Merge pull request #189 from AleoHQ/refactor/blocks
howardwu May 31, 2021
3a8c2e0
Rename to .snarkos-integration and include in workspace for testing
May 31, 2021
57e6898
Update CI
May 31, 2021
24816cf
Update parameters module
May 31, 2021
8b1506a
Refactor parameters into a global directory for global parameters
May 31, 2021
c5b15b4
Create testnet1 parameters folder
May 31, 2021
3add83a
Remove pub use from testnet1 parameters
May 31, 2021
7835ea9
Rename to inner circuit ID CRH
May 31, 2021
6914d3b
Update final directory for parameter scripts
May 31, 2021
441151b
Add CI for each crate in the workspace
May 31, 2021
6047bb0
Fix snarkvm-curves dep issue
May 31, 2021
f4606ea
Refresh integration test with local ledger impl
May 31, 2021
c884868
Rename to .integration
May 31, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
220 changes: 210 additions & 10 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,8 @@ jobs:
cache_key: snarkvm-stable-cache
- run:
name: Build and run tests
no_output_timeout: 30m
no_output_timeout: 60m
command: RUST_MIN_STACK=8388608 cargo test --all
- run:
name: Build and run snarkOS integration tests
no_output_timeout: 30m
command: cd snarkos-integration && RUST_MIN_STACK=8388608 cargo test
- persist_to_workspace:
root: ~/
paths: project/
Expand Down Expand Up @@ -90,15 +86,206 @@ jobs:
cache_key: snarkvm-nightly-cache
- run:
name: Build and test
no_output_timeout: 30m
no_output_timeout: 60m
command: RUST_MIN_STACK=8388608 cargo test --all
- run:
name: Build and run snarkOS integration tests
no_output_timeout: 30m
command: cd snarkos-integration && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-nightly-cache

snarkvm-algorithms:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-algorithms-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd algorithms && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-algorithms-cache

snarkvm-curves:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-curves-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd curves && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-curves-cache

snarkvm-derives:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-derives-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd derives && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-derives-cache

snarkvm-dpc:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-dpc-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd dpc && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-dpc-cache

snarkvm-fields:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-fields-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd fields && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-fields-cache

snarkvm-gadgets:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-gadgets-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd gadgets && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-gadgets-cache

snarkvm-marlin:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-marlin-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd marlin && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-marlin-cache

snarkvm-parameters:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-parameters-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd parameters && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-parameters-cache

snarkvm-polycommit:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-polycommit-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd polycommit && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-polycommit-cache

snarkvm-posw:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-posw-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd posw && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-posw-cache

snarkvm-profiler:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-profiler-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd profiler && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-profiler-cache

snarkvm-r1cs:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-r1cs-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd r1cs && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-r1cs-cache

snarkvm-utilities:
docker:
- image: cimg/rust:1.51.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: snarkvm-utilities-cache
- run:
name: Build and run tests
no_output_timeout: 35m
command: cd utilities && RUST_MIN_STACK=8388608 cargo test
- clear_environment:
cache_key: snarkvm-utilities-cache

workflows:
version: 2
main-workflow:
Expand All @@ -108,3 +295,16 @@ workflows:
- codecov:
requires:
- rust-stable
- snarkvm-algorithms
- snarkvm-curves
- snarkvm-derives
- snarkvm-dpc
- snarkvm-fields
- snarkvm-gadgets
- snarkvm-marlin
- snarkvm-parameters
- snarkvm-polycommit
- snarkvm-posw
- snarkvm-profiler
- snarkvm-r1cs
- snarkvm-utilities
File renamed without changes.
71 changes: 37 additions & 34 deletions objects/Cargo.toml → .integration/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[package]
name = "snarkvm-objects"
name = "snarkvm-integration"
version = "0.4.0"
authors = [ "The Aleo Team <hello@aleo.org>" ]
description = "Objects for a decentralized virtual machine"
description = "Integration testing for DPC"
homepage = "https://aleo.org"
repository = "https://github.com/AleoHQ/snarkVM"
keywords = [
Expand All @@ -19,62 +19,65 @@ edition = "2018"

[dependencies.snarkvm-algorithms]
path = "../algorithms"
version = "0.4.0"
default-features = false

[dependencies.snarkvm-curves]
path = "../curves"
version = "0.4.0"
default-features = false

[dependencies.snarkvm-dpc]
path = "../dpc"

[dependencies.snarkvm-fields]
path = "../fields"

[dependencies.snarkvm-gadgets]
path = "../gadgets"

[dependencies.snarkvm-parameters]
path = "../parameters"
version = "0.4.0"

[dependencies.snarkvm-profiler]
path = "../profiler"
default-features = false

[dependencies.snarkvm-r1cs]
path = "../r1cs"

[dependencies.snarkvm-utilities]
path = "../utilities"
version = "0.4.0"
default-features = false

[dependencies.anyhow]
version = "1.0"
version = "1.0.38"

[dependencies.base58]
version = "0.1"

[dependencies.bech32]
version = "0.8"

[dependencies.bincode]
version = "1.3"
version = "1.3.1"

[dependencies.blake2]
version = "0.9"

[dependencies.chrono]
version = "0.4"
features = [ "serde" ]
[dependencies.derivative]
version = "2"

[dependencies.hex]
version = "0.4.3"

[dependencies.once_cell]
version = "1.7.2"
[dependencies.itertools]
version = "0.10.0"

[dependencies.parking_lot]
version = "0.11.1"

[dependencies.rand]
version = "0.8"

[dependencies.serde]
version = "1.0"
features = [ "derive" ]

[dependencies.sha2]
version = "0.9"

[dependencies.thiserror]
version = "1.0"

[dev-dependencies.snarkvm-dpc]
path = "../dpc"

[dev-dependencies.bincode]
version = "1.3.2"

[features]
default = [
"snarkvm-algorithms/default",
"snarkvm-curves/default",
"snarkvm-utilities/default"
]
[dependencies.rand_xorshift]
version = "0.3"
File renamed without changes.