From 8f180e1f190c3efb6b5453ca0907493f138a8db2 Mon Sep 17 00:00:00 2001 From: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com> Date: Tue, 6 Aug 2024 11:37:14 -0400 Subject: [PATCH] chore: Rename to argument (#278) --- .../workflows/check-downstream-compiles.yml | 8 +- .github/workflows/nightly.yml | 4 +- .github/workflows/rust.yml | 12 +- CHANGELOG.md | 124 +++++++++--------- CODE_OF_CONDUCT.md | 2 +- Cargo.toml | 2 +- README.md | 4 +- deny.toml | 2 +- spec/poseidon_spec.md | 4 +- 9 files changed, 81 insertions(+), 81 deletions(-) diff --git a/.github/workflows/check-downstream-compiles.yml b/.github/workflows/check-downstream-compiles.yml index d67e48f8..514bd0b0 100644 --- a/.github/workflows/check-downstream-compiles.yml +++ b/.github/workflows/check-downstream-compiles.yml @@ -27,7 +27,7 @@ jobs: path: ${{ github.workspace }}/neptune - uses: actions/checkout@v4 with: - repository: lurk-lab/arecibo + repository: argumentcomputer/arecibo path: ${{ github.workspace }}/arecibo ref: "dev" submodules: recursive @@ -36,7 +36,7 @@ jobs: - name: Patch Cargo.toml working-directory: ${{ github.workspace }}/arecibo run: | - echo "[patch.'https://github.com/lurk-lab/neptune']" >> Cargo.toml + echo "[patch.'https://github.com/argumentcomputer/neptune']" >> Cargo.toml echo "neptune = { path='../neptune' }" >> Cargo.toml - name: Check Arecibo types don't break spectacularly working-directory: ${{ github.workspace }}/arecibo @@ -52,7 +52,7 @@ jobs: path: ${{ github.workspace }}/neptune - uses: actions/checkout@v4 with: - repository: lurk-lab/lurk-rs + repository: argumentcomputer/lurk-rs path: ${{ github.workspace }}/lurk submodules: recursive - uses: dtolnay/rust-toolchain@stable @@ -60,7 +60,7 @@ jobs: - name: Patch Cargo.toml working-directory: ${{ github.workspace }}/lurk run: | - echo "[patch.'https://github.com/lurk-lab/neptune']" >> Cargo.toml + echo "[patch.'https://github.com/argumentcomputer/neptune']" >> Cargo.toml echo "neptune = { path='../neptune' }" >> Cargo.toml - name: Check Lurk-rs types don't break spectacularly working-directory: ${{ github.workspace }}/lurk diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index bcfe39b6..73d25d8b 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -12,7 +12,7 @@ env: jobs: unused-dependencies: - uses: lurk-lab/ci-workflows/.github/workflows/unused-deps.yml@main + uses: argumentcomputer/ci-workflows/.github/workflows/unused-deps.yml@main rust-version-check: - uses: lurk-lab/ci-workflows/.github/workflows/rust-version-check.yml@main \ No newline at end of file + uses: argumentcomputer/ci-workflows/.github/workflows/rust-version-check.yml@main \ No newline at end of file diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 97278b57..a5590f0a 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -23,7 +23,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - repository: lurk-lab/ci-workflows + repository: argumentcomputer/ci-workflows - uses: ./.github/actions/ci-env - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable @@ -72,13 +72,13 @@ jobs: # Check documentation links aren't broken link-checker: - uses: lurk-lab/ci-workflows/.github/workflows/links-check.yml@main + uses: argumentcomputer/ci-workflows/.github/workflows/links-check.yml@main with: fail-fast: true - # Lint dependencies for licensing and auditing issues as per https://github.com/lurk-lab/neptune/blob/main/deny.toml + # Lint dependencies for licensing and auditing issues as per https://github.com/argumentcomputer/neptune/blob/main/deny.toml licenses-audits: - uses: lurk-lab/ci-workflows/.github/workflows/licenses-audits.yml@main + uses: argumentcomputer/ci-workflows/.github/workflows/licenses-audits.yml@main # Runs the test suite on a self-hosted GPU machine with CUDA enabled test-cuda: @@ -91,7 +91,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - repository: lurk-lab/ci-workflows + repository: argumentcomputer/ci-workflows - uses: ./.github/actions/ci-env - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable @@ -125,7 +125,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - repository: lurk-lab/ci-workflows + repository: argumentcomputer/ci-workflows - uses: ./.github/actions/ci-env - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f6ea4c3..82239469 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,88 +9,88 @@ and this project adheres to [Semantic Versioning](https://book.async.rs/overview ## 10.0.0 -- fix: PoseidonConstants serde Implementation (https://github.com/lurk-lab/neptune/pull/184) -- chore: make version part of the release commit (https://github.com/lurk-lab/neptune/pull/185) +- fix: PoseidonConstants serde Implementation (https://github.com/argumentcomputer/neptune/pull/184) +- chore: make version part of the release commit (https://github.com/argumentcomputer/neptune/pull/185) ## 9.0.0 -- refactor: Bump ff & group to 0.13, adjust dependent crates (https://github.com/lurk-lab/neptune/pull/179) -- ci: Add licenses audits with 'cargo-deny' (https://github.com/lurk-lab/neptune/pull/181) -- doc: covering PoseidonConstants and Poseidon abstractions with proper docs (https://github.com/lurk-lab/neptune/pull/178) +- refactor: Bump ff & group to 0.13, adjust dependent crates (https://github.com/argumentcomputer/neptune/pull/179) +- ci: Add licenses audits with 'cargo-deny' (https://github.com/argumentcomputer/neptune/pull/181) +- doc: covering PoseidonConstants and Poseidon abstractions with proper docs (https://github.com/argumentcomputer/neptune/pull/178) ## 8.1.1 -- chore: update ec-gpu, update const fns (https://github.com/lurk-lab/neptune/pull/175) -- chore: minor upgrade (https://github.com/lurk-lab/neptune/pull/173) -- fix: simplify the implementation of arity (https://github.com/lurk-lab/neptune/pull/172) -- fix: Ensure preimage buffer is padded with newly variables that are actually constrained to be equal to zero (https://github.com/lurk-lab/neptune/pull/169) +- chore: update ec-gpu, update const fns (https://github.com/argumentcomputer/neptune/pull/175) +- chore: minor upgrade (https://github.com/argumentcomputer/neptune/pull/173) +- fix: simplify the implementation of arity (https://github.com/argumentcomputer/neptune/pull/172) +- fix: Ensure preimage buffer is padded with newly variables that are actually constrained to be equal to zero (https://github.com/argumentcomputer/neptune/pull/169) ## 8.1.0 -- Implement serde for PoseidonConstants (https://github.com/lurk-lab/neptune/pull/165) +- Implement serde for PoseidonConstants (https://github.com/argumentcomputer/neptune/pull/165) ## 8.0.0 -- fix: update to newer ec-gpu version (https://github.com/lurk-lab/neptune/pull/164) -- chore: fix CI MacOS build (https://github.com/lurk-lab/neptune/pull/161) +- fix: update to newer ec-gpu version (https://github.com/argumentcomputer/neptune/pull/164) +- chore: fix CI MacOS build (https://github.com/argumentcomputer/neptune/pull/161) ## 7.2.0 - 2022-8-9 - Change write_rate_element to add_rate_element to agree with spec. ## 7.1.0 - 2022-8-8 -- Add Sponge API to README. (https://github.com/lurk-lab/neptune/pull/158) -- IO pattern (https://github.com/lurk-lab/neptune/pull/157) -- Sponge absorb add (https://github.com/lurk-lab/neptune/pull/156) -- Add sponge circuit synthesis test and remove make_elt method. (https://github.com/lurk-lab/neptune/pull/154) +- Add Sponge API to README. (https://github.com/argumentcomputer/neptune/pull/158) +- IO pattern (https://github.com/argumentcomputer/neptune/pull/157) +- Sponge absorb add (https://github.com/argumentcomputer/neptune/pull/156) +- Add sponge circuit synthesis test and remove make_elt method. (https://github.com/argumentcomputer/neptune/pull/154) ## 7.0.0 - 2022-7-21 -- Implement sponge construction. (https://github.com/lurk-lab/neptune/pull/151) -- feat: support other fields (https://github.com/lurk-lab/neptune/pull/135) -- feat: update dependencies to the latest (https://github.com/lurk-lab/neptune/pull/150) +- Implement sponge construction. (https://github.com/argumentcomputer/neptune/pull/151) +- feat: support other fields (https://github.com/argumentcomputer/neptune/pull/135) +- feat: update dependencies to the latest (https://github.com/argumentcomputer/neptune/pull/150) ## 6.2.0 - 2022-6-10 -- Reduce constraints (https://github.com/lurk-lab/neptune/pull/148) +- Reduce constraints (https://github.com/argumentcomputer/neptune/pull/148) ## 6.1.1 - 2022-5-26 -- Implement Arity for U1 (https://github.com/lurk-lab/neptune/pull/145) +- Implement Arity for U1 (https://github.com/argumentcomputer/neptune/pull/145) ## 6.1.0 - 2022-4-22 -- Wasm support (https://github.com/lurk-lab/neptune/pull/139) +- Wasm support (https://github.com/argumentcomputer/neptune/pull/139) ## 6.0.0 - 2022-3-22 -- Use bellperson v0.19.0. (https://github.com/lurk-lab/neptune/pull/141) -- refactor: use field name as part of the function names (https://github.com/lurk-lab/neptune/pull/136) -- chore: update to Rust 1.56.0 (https://github.com/lurk-lab/neptune/pull/138) -- chore: use Rust 1.51.0 (https://github.com/lurk-lab/neptune/pull/134) -- Remove neptune-triton (Futhark) support. (https://github.com/lurk-lab/neptune/pull/132) -- feat: add vanilla Poseidon benchmarks for Pasta scalar field (https://github.com/lurk-lab/neptune/pull/124) -- Update README. (https://github.com/lurk-lab/neptune/pull/129) -- fix: fix warning when compiling with OpenCL (https://github.com/lurk-lab/neptune/pull/123) -- Fixes gaussian elimination for matrices with 0 entries (https://github.com/lurk-lab/neptune/pull/122) +- Use bellperson v0.19.0. (https://github.com/argumentcomputer/neptune/pull/141) +- refactor: use field name as part of the function names (https://github.com/argumentcomputer/neptune/pull/136) +- chore: update to Rust 1.56.0 (https://github.com/argumentcomputer/neptune/pull/138) +- chore: use Rust 1.51.0 (https://github.com/argumentcomputer/neptune/pull/134) +- Remove neptune-triton (Futhark) support. (https://github.com/argumentcomputer/neptune/pull/132) +- feat: add vanilla Poseidon benchmarks for Pasta scalar field (https://github.com/argumentcomputer/neptune/pull/124) +- Update README. (https://github.com/argumentcomputer/neptune/pull/129) +- fix: fix warning when compiling with OpenCL (https://github.com/argumentcomputer/neptune/pull/123) +- Fixes gaussian elimination for matrices with 0 entries (https://github.com/argumentcomputer/neptune/pull/122) ## 5.1.0 - 2021-10-21 -- Cleanup domain tags (https://github.com/lurk-lab/neptune/pull/121) -- Fix, test, and enable custom domain tags. (https://github.com/lurk-lab/neptune/pull/116) -- Update bellperson to v0.18.0 (https://github.com/lurk-lab/neptune/pull/115) -- Fix spec's sparse factorization w vector (https://github.com/lurk-lab/neptune/pull/114) +- Cleanup domain tags (https://github.com/argumentcomputer/neptune/pull/121) +- Fix, test, and enable custom domain tags. (https://github.com/argumentcomputer/neptune/pull/116) +- Update bellperson to v0.18.0 (https://github.com/argumentcomputer/neptune/pull/115) +- Fix spec's sparse factorization w vector (https://github.com/argumentcomputer/neptune/pull/114) ## 5.0.0 - 2021-9-30 -- Remove pairing requirement for circuits (https://github.com/lurk-lab/neptune/pull/111) -- Add support for CUDA (https://github.com/lurk-lab/neptune/pull/109) -- Use correct global work size (https://github.com/lurk-lab/neptune/pull/108) -- Properly call ec_gpu_gen::common() (https://github.com/lurk-lab/neptune/pull/110) -- Use upstream group, ff and pairing dependencies (https://github.com/lurk-lab/neptune/pull/103) -- Remove unnecessary to_vec (https://github.com/lurk-lab/neptune/pull/107) -- Pass GPU data from a pre-populated vector (https://github.com/lurk-lab/neptune/pull/106) +- Remove pairing requirement for circuits (https://github.com/argumentcomputer/neptune/pull/111) +- Add support for CUDA (https://github.com/argumentcomputer/neptune/pull/109) +- Use correct global work size (https://github.com/argumentcomputer/neptune/pull/108) +- Properly call ec_gpu_gen::common() (https://github.com/argumentcomputer/neptune/pull/110) +- Use upstream group, ff and pairing dependencies (https://github.com/argumentcomputer/neptune/pull/103) +- Remove unnecessary to_vec (https://github.com/argumentcomputer/neptune/pull/107) +- Pass GPU data from a pre-populated vector (https://github.com/argumentcomputer/neptune/pull/106) ## 4.0.0 - 2021-8-2 -- Upgrade to latest rust-gpu-tools (https://github.com/lurk-lab/neptune/pull/91) -- Rename GPU feature to Futhark (https://github.com/lurk-lab/neptune/pull/100) -- Improve Clippy on CI (https://github.com/lurk-lab/neptune/pull/92) -- Fix Clippy warnings (https://github.com/lurk-lab/neptune/pull/98) -- Remove BatcherType (https://github.com/lurk-lab/neptune/pull/97) -- Remove GPUSelector (https://github.com/lurk-lab/neptune/pull/96) +- Upgrade to latest rust-gpu-tools (https://github.com/argumentcomputer/neptune/pull/91) +- Rename GPU feature to Futhark (https://github.com/argumentcomputer/neptune/pull/100) +- Improve Clippy on CI (https://github.com/argumentcomputer/neptune/pull/92) +- Fix Clippy warnings (https://github.com/argumentcomputer/neptune/pull/98) +- Remove BatcherType (https://github.com/argumentcomputer/neptune/pull/97) +- Remove GPUSelector (https://github.com/argumentcomputer/neptune/pull/96) ## 3.0.0 - 2021-6-1 - Breaking update of `bellperson` to `0.14` and associated dependency upgrades. @@ -99,45 +99,45 @@ and this project adheres to [Semantic Versioning](https://book.async.rs/overview - Use bellperson 0.13. ## 2.6 - 2021-1-21 -- Pure OpenCL implementation of batch hashing. (https://github.com/lurk-lab/neptune/pull/78) +- Pure OpenCL implementation of batch hashing. (https://github.com/argumentcomputer/neptune/pull/78) ## 2.5 [release commited but never published to crates.io, due to authentication glitch] ## 2.4.0 - 2020-11-17 -- Customize batch-sizes of gbench through cli args. (https://github.com/lurk-lab/neptune/pull/50) -- Remove [most] macos conditional code. (https://github.com/lurk-lab/neptune/pull/72) -- Refactor, moving device selection to rust-gpu-tools. (https://github.com/lurk-lab/neptune/pull/70) -- Only clear cache when no hashers are active for futhark context. (https://github.com/lurk-lab/neptune/pull/68) +- Customize batch-sizes of gbench through cli args. (https://github.com/argumentcomputer/neptune/pull/50) +- Remove [most] macos conditional code. (https://github.com/argumentcomputer/neptune/pull/72) +- Refactor, moving device selection to rust-gpu-tools. (https://github.com/argumentcomputer/neptune/pull/70) +- Only clear cache when no hashers are active for futhark context. (https://github.com/argumentcomputer/neptune/pull/68) ## 2.2.0 - 2020-11-01 - Update `bellperson` to `0.12.0` - [67](https://github.com/lurk-lab/neptune/pull/67) + [67](https://github.com/argumentcomputer/neptune/pull/67) ## 2.1.1 - 2020-10-30 - Fix `GPUBatchHasher` not clearing GPU caches - [66](https://github.com/lurk-lab/neptune/pull/66) + [66](https://github.com/argumentcomputer/neptune/pull/66) ## 2.1.0 - 2020-10-29 - Enable `blst` backend. - [63](https://github.com/lurk-lab/neptune/pull/63) + [63](https://github.com/argumentcomputer/neptune/pull/63) - Explicitly reuse FutharkContext in related Batchers. - [62](https://github.com/lurk-lab/neptune/pull/62) + [62](https://github.com/argumentcomputer/neptune/pull/62) - Make GPUSelector accessible from gbench. - [59](https://github.com/lurk-lab/neptune/pull/59) + [59](https://github.com/argumentcomputer/neptune/pull/59) - Create SECURITY.MD. - [57](https://github.com/lurk-lab/neptune/pull/57) + [57](https://github.com/argumentcomputer/neptune/pull/57) - Avoid compiling any OpenCL on macos. - [56](https://github.com/lurk-lab/neptune/pull/56) + [56](https://github.com/argumentcomputer/neptune/pull/56) - Use latest neptune-triton. - [55](https://github.com/lurk-lab/neptune/pull/55) + [55](https://github.com/argumentcomputer/neptune/pull/55) ## 2.0.0 - 2020-08-4 - Add support for domain separation tags. In addition to support for new hash functions built on the Poseidon permutation, this introduces a breaking change to the DST used for Strengthened Poseidon. - [43](https://github.com/lurk-lab/neptune/pull/43). + [43](https://github.com/argumentcomputer/neptune/pull/43). diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index b0e902bb..b7dfd258 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,7 @@ representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at community@lurk-lab.com. +reported to the community leaders responsible for enforcement at community@argument.xyz. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the diff --git a/Cargo.toml b/Cargo.toml index 031307bc..78614839 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ version = "13.0.0" authors = ["porcuquine "] edition = "2021" license = "MIT OR Apache-2.0" -repository = "https://github.com/lurk-lab/neptune" +repository = "https://github.com/argumentcomputer/neptune" rust-version = "1.71.0" [dependencies] diff --git a/README.md b/README.md index a7c64b25..48da831e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Neptune ![crates.io](https://img.shields.io/crates/v/neptune.svg) ![neptune](https://github.com/lurk-lab/neptune/actions/workflows/rust.yml/badge.svg)[![dependency status](https://deps.rs/repo/github/lurk-lab/neptune/status.svg)](https://deps.rs/repo/github/lurk-lab/neptune) +# Neptune ![crates.io](https://img.shields.io/crates/v/neptune.svg) ![neptune](https://github.com/argumentcomputer/neptune/actions/workflows/rust.yml/badge.svg)[![dependency status](https://deps.rs/repo/github/argumentcomputer/neptune/status.svg)](https://deps.rs/repo/github/argumentcomputer/neptune) ## About @@ -79,7 +79,7 @@ Benchmark Poseidon over a specific field (`bls`, `pallas`, or `vesta`) and preim ## Sponge API -Neptune implements the [Secure Sponge API for Field Elements](https://hackmd.io/bHgsH6mMStCVibM_wYvb2w) and serves as its reference implementation. The [`SpongeAPI` trait](https://github.com/lurk-lab/neptune/blob/master/src/sponge/api.rs) defines the relevant API methods. See tests in source for simple examples of API usage [with circuits](https://github.com/lurk-lab/neptune/blob/master/src/sponge/circuit.rs) and [without circuits](https://github.com/lurk-lab/neptune/blob/master/src/sponge/vanilla.rs). +Neptune implements the [Secure Sponge API for Field Elements](https://hackmd.io/bHgsH6mMStCVibM_wYvb2w) and serves as its reference implementation. The [`SpongeAPI` trait](https://github.com/argumentcomputer/neptune/blob/master/src/sponge/api.rs) defines the relevant API methods. See tests in source for simple examples of API usage [with circuits](https://github.com/argumentcomputer/neptune/blob/master/src/sponge/circuit.rs) and [without circuits](https://github.com/argumentcomputer/neptune/blob/master/src/sponge/vanilla.rs). ## History diff --git a/deny.toml b/deny.toml index 46774012..22b076c7 100644 --- a/deny.toml +++ b/deny.toml @@ -266,7 +266,7 @@ allow-git = [] [sources.allow-org] # 1 or more github.com organizations to allow git sources for -github = ["lurk-lab"] +github = ["argumentcomputer"] # 1 or more gitlab.com organizations to allow git sources for # gitlab = [""] # 1 or more bitbucket.org organizations to allow git sources for diff --git a/spec/poseidon_spec.md b/spec/poseidon_spec.md index f35b8059..b3e22556 100644 --- a/spec/poseidon_spec.md +++ b/spec/poseidon_spec.md @@ -339,7 +339,7 @@ while providing security against known attacks (statistical, interpolation, and $\constb R_F, R_P = \texttt{calc_round_numbers}(p, M, t, \alpha)$ The number of full and partial rounds, both are positive integers $R_F, R_P \typecolon \mathbb{Z}_{>0}$ and $R_F$ is even. -$R_F$ and $R_P$ are calculated using either the Python script [`calc_round_numbers.py`](https://extgit.iaik.tugraz.at/krypto/hadeshash/-/blob/9d80ec0473ad7cde5a12f3aac46439ad0da68c0a/code/scripts/calc_round_numbers.py) or the [`neptune`](https://github.com/lurk-lab/neptune) Rust library, denoted $\texttt{calc_round_numbers}$. Both methods calculate the round numbers via brute-force; by iterating over all reasonable values for $R_F$ and $R_P$ and choosing the pair that satisfies the security inequalities (provided below) while minimizing the number of S-boxes. +$R_F$ and $R_P$ are calculated using either the Python script [`calc_round_numbers.py`](https://extgit.iaik.tugraz.at/krypto/hadeshash/-/blob/9d80ec0473ad7cde5a12f3aac46439ad0da68c0a/code/scripts/calc_round_numbers.py) or the [`neptune`](https://github.com/argumentcomputer/neptune) Rust library, denoted $\texttt{calc_round_numbers}$. Both methods calculate the round numbers via brute-force; by iterating over all reasonable values for $R_F$ and $R_P$ and choosing the pair that satisfies the security inequalities (provided below) while minimizing the number of S-boxes. ### Security Inequalities @@ -532,7 +532,7 @@ $\overline{\underline{\Function \textsf{poseidon}(\preimage \typecolon \Zp^{[t - ## Optimizations -Filecoin's rust library [`neptune`](https://github.com/lurk-lab/neptune) implements the Poseidon hash function. The library differentiates between unoptimized and optimized Poseidon using the terms *correct* and *static* respectively. +Filecoin's rust library [`neptune`](https://github.com/argumentcomputer/neptune) implements the Poseidon hash function. The library differentiates between unoptimized and optimized Poseidon using the terms *correct* and *static* respectively. The primary differences between the two versions are: * the unoptimized algorithm uses the round constants $\RC$, performs round constant addition before S-boxes, and uses the MDS matrix $\Mds$ for mixing