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

chore: Rename to argument #1261

Merged
merged 5 commits into from
Sep 25, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# Global Owners: @porcuquine, @huitseeker
* @lurk-lab/lurk-noncircuit
* @argumentcomputer/lurk-noncircuit

# CI maintenance
/.circleci/** @lurk-lab/lurk-ci
/.config/** @lurk-lab/lurk-ci
/.github/** @lurk-lab/lurk-ci
/.circleci/** @argumentcomputer/lurk-ci
/.config/** @argumentcomputer/lurk-ci
/.github/** @argumentcomputer/lurk-ci

# Benchmarks
/benches/** @lurk-lab/lurk-benches
/benches/** @argumentcomputer/lurk-benches

# CLI tools
/src/cli/** @lurk-lab/lurk-cli-tools
/src/cli/** @argumentcomputer/lurk-cli-tools

# Circuit
/src/circuit/** @lurk-lab/lurk-circuit
/src/lem/circuit.rs @lurk-lab/lurk-circuit
/src/coprocessor/** @lurk-lab/lurk-circuit
/src/coroutine/** @lurk-lab/lurk-circuit
/src/circuit/** @argumentcomputer/lurk-circuit
/src/lem/circuit.rs @argumentcomputer/lurk-circuit
/src/coprocessor/** @argumentcomputer/lurk-circuit
/src/coroutine/** @argumentcomputer/lurk-circuit

# Evaluation model
/src/lem/eval.rs @lurk-lab/lurk-lem
/src/lem/eval.rs @argumentcomputer/lurk-lem
2 changes: 1 addition & 1 deletion .github/workflows/bench-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
# Install deps
- uses: actions/checkout@v4
with:
repository: lurk-lab/ci-workflows
repository: argumentcomputer/ci-workflows
- uses: ./.github/actions/gpu-setup
with:
gpu-framework: 'cuda'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/bench-pr-comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
&& github.event.issue.state == 'open'
&& (contains(github.event.comment.body, '!benchmark') || contains(github.event.comment.body, '!gpu-benchmark'))
&& (github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER')
uses: lurk-lab/ci-workflows/.github/workflows/bench-pr-comment.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/bench-pr-comment.yml@main
with:
default-runner: "self-hosted,gpu-bench"
default-benches: "fibonacci"
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
repository: lurk-lab/ci-workflows
repository: argumentcomputer/ci-workflows
- uses: ./.github/actions/ci-env
- uses: ./.github/actions/install-deps
with:
Expand All @@ -37,26 +37,26 @@ jobs:

# Rustfmt, clippy, doctests
code-quality:
uses: lurk-lab/ci-workflows/.github/workflows/lints.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/lints.yml@main
with:
packages: 'protobuf-compiler libprotobuf-dev'

# Checks `cargo build --target wasm32-unknown-unknown`
wasm:
uses: lurk-lab/ci-workflows/.github/workflows/wasm.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/wasm.yml@main

# Checks MSRV specified by `rust-version` in `Cargo.toml`
msrv:
uses: lurk-lab/ci-workflows/.github/workflows/msrv.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/msrv.yml@main
with:
packages: 'protobuf-compiler libprotobuf-dev'

# 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/lurk-rs/blob/main/deny.toml
# Lint dependencies for licensing and auditing issues as per https://github.com/argumentcomputer/lurk-rs/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
2 changes: 1 addition & 1 deletion .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ on:

jobs:
codecov-grcov:
uses: lurk-lab/ci-workflows/.github/workflows/codecov.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/codecov.yml@main
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ on:

jobs:
docs:
uses: lurk-lab/ci-workflows/.github/workflows/docs.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/docs.yml@main
2 changes: 1 addition & 1 deletion .github/workflows/gpu-bench-manual-comparative.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
repository: lurk-lab/ci-workflows
repository: argumentcomputer/ci-workflows
- uses: ./.github/actions/gpu-setup
with:
gpu-framework: 'cuda'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gpu-bench-merge-regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
repository: lurk-lab/ci-workflows
repository: argumentcomputer/ci-workflows
- uses: ./.github/actions/gpu-setup
with:
gpu-framework: 'cuda'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gpu-bench-workflow-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
repository: lurk-lab/ci-workflows
repository: argumentcomputer/ci-workflows
- uses: ./.github/actions/gpu-setup
with:
gpu-framework: 'cuda'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gpu-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ concurrency:
jobs:
gpu-ci:
name: Rust GPU tests
uses: lurk-lab/ci-workflows/.github/workflows/gpu-ci-cuda.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/gpu-ci-cuda.yml@main
6 changes: 3 additions & 3 deletions .github/workflows/merge-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
repository: lurk-lab/ci-workflows
repository: argumentcomputer/ci-workflows
- uses: ./.github/actions/install-deps
with:
packages: 'pkg-config libssl-dev protobuf-compiler libprotobuf-dev'
Expand All @@ -42,7 +42,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
repository: lurk-lab/ci-workflows
repository: argumentcomputer/ci-workflows
- uses: ./.github/actions/install-deps
with:
packages: 'pkg-config libssl-dev protobuf-compiler libprotobuf-dev'
Expand All @@ -65,7 +65,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
repository: lurk-lab/ci-workflows
repository: argumentcomputer/ci-workflows
- name: Install dependencies
run: |
brew install protobuf
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,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
with:
Expand Down Expand Up @@ -52,15 +52,15 @@ jobs:

- name: Amend MESSAGE for tests
if: steps.tests.outcome != 'success'
run: echo "MESSAGE=${{ env.MESSAGE }} Exhaustive test run failed in https://github.com/lurk-lab/lurk-rs/actions/runs/${{ github.run_id }}" >> $GITHUB_ENV
run: echo "MESSAGE=${{ env.MESSAGE }} Exhaustive test run failed in https://github.com/argumentcomputer/lurk-rs/actions/runs/${{ github.run_id }}" >> $GITHUB_ENV

- name: Amend MESSAGE for benches
if: steps.benches.outcome != 'success'
run: echo "MESSAGE=${{ env.MESSAGE }} Bench compilation failed in https://github.com/lurk-lab/lurk-rs/actions/runs/${{ github.run_id }}" >> $GITHUB_ENV
run: echo "MESSAGE=${{ env.MESSAGE }} Bench compilation failed in https://github.com/argumentcomputer/lurk-rs/actions/runs/${{ github.run_id }}" >> $GITHUB_ENV

- name: Amend MESSAGE for doctests
if: steps.doctests.outcome != 'success'
run: echo "MESSAGE=${{ env.MESSAGE }} Doc test run failed in https://github.com/lurk-lab/lurk-rs/actions/runs/${{ github.run_id }}" >> $GITHUB_ENV
run: echo "MESSAGE=${{ env.MESSAGE }} Doc test run failed in https://github.com/argumentcomputer/lurk-rs/actions/runs/${{ github.run_id }}" >> $GITHUB_ENV

- name: Find the last report issue open
id: last_issue
Expand Down Expand Up @@ -103,12 +103,12 @@ jobs:
automated issue

unused-dependencies:
uses: lurk-lab/ci-workflows/.github/workflows/unused-deps.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/unused-deps.yml@main
with:
packages: 'protobuf-compiler libprotobuf-dev'

rust-version-check:
uses: lurk-lab/ci-workflows/.github/workflows/rust-version-check.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/rust-version-check.yml@main

typos:
uses: lurk-lab/ci-workflows/.github/workflows/typos.yml@main
uses: argumentcomputer/ci-workflows/.github/workflows/typos.yml@main
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "lurk-lib"]
path = lurk-lib
url = https://github.com/lurk-lab/lurk-lib.git
url = https://github.com/argumentcomputer/lurk-lib.git
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 8 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,19 +68,19 @@ Welcome to the Lurk-rs project! Here's an introduction to the branch organizatio

### Major Dependencies

The main repo is [lurk-rs](https://github.com/lurk-lab/lurk-rs) with major dependencies:
The main repo is [lurk-rs](https://github.com/argumentcomputer/lurk-rs) with major dependencies:

- [bellpepper](https://github.com/lurk-lab/bellpepper)
- [neptune](https://github.com/lurk-lab/neptune)
- [arecibo](https://github.com/lurk-lab/arecibo) - a fork of the upstream repo [nova](https://github.com/microsoft/Nova)
- [bellpepper](https://github.com/argumentcomputer/bellpepper)
- [neptune](https://github.com/argumentcomputer/neptune)
- [arecibo](https://github.com/argumentcomputer/arecibo) - a fork of the upstream repo [nova](https://github.com/microsoft/Nova)

### Forked Dependencies

Additionally, Lurk-rs depends on the following forked repositories:

- [pasta_curves](https://github.com/lurk-lab/pasta_curves) (forked from [zcash/pasta_curves](https://github.com/zcash/pasta_curves))
- [pasta-msm](https://github.com/lurk-lab/pasta-msm) (forked from [supranational/pasta-msm](https://github.com/supranational/pasta-msm))
- [ec-gpu](https://github.com/lurk-lab/ec-gpu) (forked from [filecoin-project/ec-gpu](https://github.com/filecoin-project/ec-gpu))
- [pasta_curves](https://github.com/argumentcomputer/pasta_curves) (forked from [zcash/pasta_curves](https://github.com/zcash/pasta_curves))
- [pasta-msm](https://github.com/argumentcomputer/pasta-msm) (forked from [supranational/pasta-msm](https://github.com/supranational/pasta-msm))
- [ec-gpu](https://github.com/argumentcomputer/ec-gpu) (forked from [filecoin-project/ec-gpu](https://github.com/filecoin-project/ec-gpu))

For rapid iterations and to address issues in these dependencies, Lurk's **main** branch directly depends on the **dev** branch of its dependencies (transitively).

Expand Down Expand Up @@ -129,7 +129,7 @@ To trigger a benchmark:

Then, check the following link for the benchmark reports:

https://lurk-lab.github.io/lurk-rs/benchmarks/criterion/reports/
https://argumentcomputer.github.io/lurk-rs/benchmarks/criterion/reports/

Ask a maintainer for a benchmark report if you can't find a recent one.

Expand Down
14 changes: 7 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@ thiserror = { workspace = true }
abomonation = { workspace = true }
abomonation_derive = { version = "0.1.0", package = "abomonation_derive_ng" }
byteorder = "1.4.3"
circom-scotia = { git = "https://github.com/lurk-lab/circom-scotia", branch = "main" }
circom-scotia = { git = "https://github.com/argumentcomputer/circom-scotia", branch = "main" }
sha2 = { version = "0.10.2" }
reqwest = { version = "0.12.2", features = ["stream", "blocking"] }
ansi_term = "0.12.1"
tracing = { workspace = true }
tracing-texray = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
elsa = { version = "1.9.0", git = "https://github.com/lurk-lab/elsa", branch = "sync_frozen", features = ["indexmap"] }
elsa = { version = "1.9.0", git = "https://github.com/argumentcomputer/elsa", branch = "sync_frozen", features = ["indexmap"] }
arc-swap = "1.6.0"
halo2curves = { version = "0.6.0", features = ["bits", "derive_serde"] }

Expand Down Expand Up @@ -117,15 +117,15 @@ members = ["foil", "lurk-macros", "lurk-metrics", "chain-server"]
[workspace.dependencies]
abomonation = "0.7.3"
anyhow = "1.0.72"
bellpepper = { git = "https://github.com/lurk-lab/bellpepper", branch = "dev" }
bellpepper = { git = "https://github.com/argumentcomputer/bellpepper", branch = "dev" }
bellpepper-core = { version = "0.4.0" }
bincode = "1.3.3"
camino = "1.1.6"
clap = "4.3.17"
ff = "0.13"
metrics = "0.23.0"
neptune = { git = "https://github.com/lurk-lab/neptune", branch = "dev", default-features = false, features = ["abomonation"] }
nova = { git = "https://github.com/lurk-lab/arecibo", branch = "dev", package = "arecibo", features = ["abomonate"]}
neptune = { git = "https://github.com/argumentcomputer/neptune", branch = "dev", default-features = false, features = ["abomonation"] }
nova = { git = "https://github.com/argumentcomputer/arecibo", branch = "dev", package = "arecibo", features = ["abomonate"]}
once_cell = "1.18.0"
pairing = { version = "0.23" }
pasta_curves = { version = "0.5.0" }
Expand All @@ -143,11 +143,11 @@ tracing-subscriber = "0.3.17"
# All workspace members should inherit these keys
# for package declarations.
[workspace.package]
authors = ["Lurk Lab Engineering <engineering@lurk-lab.com>"]
authors = ["Argument Engineering <engineering@argument.xyz>"]
edition = "2021"
homepage = "https://lurk-lang.org/"
license = "MIT OR Apache-2.0"
repository = "https://github.com/lurk-lab/lurk-rs"
repository = "https://github.com/argumentcomputer/lurk-rs"
rust-version = "1.74.1"

[[bin]]
Expand Down
2 changes: 1 addition & 1 deletion LICENSE-MIT
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023 Lurk Lab
Copyright (c) 2023 Argument Computer Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Lurk

![lurk-rs](https://github.com/lurk-lab/lurk-rs/actions/workflows/ci.yml/badge.svg)
![lurk-rs](https://github.com/argumentcomputer/lurk-rs/actions/workflows/ci.yml/badge.svg)
![minimum rustc 1.70][msrv-image]
[![dependency status](https://deps.rs/repo/github/lurk-lab/lurk-rs/status.svg)](https://deps.rs/repo/github/lurk-lab/lurk-rs)
[![dependency status](https://deps.rs/repo/github/argumentcomputer/lurk-rs/status.svg)](https://deps.rs/repo/github/argumentcomputer/lurk-rs)
![crates.io][crates-image]

[msrv-image]: https://img.shields.io/badge/rustc-1.70+-blue.svg
Expand All @@ -12,25 +12,25 @@

Lurk is currently in [Beta](https://blog.lurk-lang.org/posts/lurk-beta/), which is backwards compatible with code that ran in Lurk Alpha and is expected to be compatible with Lurk 1.0. However, some low-level data representations are anticipated to change, and we will be refactoring the evaluation model (and consequently its circuit) for efficiency purposes. Also note that since Lurk inherits some security properties from the underlying proving system, those who would rely on Lurk should investigate the security and status of Nova/SuperNova itself. We encourage early adopters to begin writing real applications taking advantage of Lurk so you can begin to familiarize yourself with the programming model. Likewise, we welcome your feedback -- which will help ensure ongoing development meets user need.

For support and discussions, please visit our [Zulip forum](https://zulip.lurk-lab.com/).
For support and discussions, please visit our [Zulip forum](https://zulip.argument.xyz/).

# Overview

Lurk is a statically scoped dialect of Lisp, influenced by Scheme and Common Lisp. A reference implementation focused on describing and developing the core language can be found in the [`lurk`](https://github.com/lurk-lab/lurk-lisp) repo.
Lurk is a statically scoped dialect of Lisp, influenced by Scheme and Common Lisp. A reference implementation focused on describing and developing the core language can be found in the [`lurk`](https://github.com/argumentcomputer/lurk-lisp) repo.

Lurk's distinguishing feature relative to most programming languages is that correct execution of Lurk programs can be directly proved using zk-SNARKs. The resulting proofs are succinct: they are relatively small, can be verified quickly, and they reveal only the information explicitly contained in the statement to be proved.

For more detailed information, refer to the paper: [https://eprint.iacr.org/2023/369](https://eprint.iacr.org/2023/369)

Lurk's distinguishing feature relative to most zk-SNARK authoring languages is that Lurk is Turing complete, so arbitrary computational claims can be made and proved (subject to resource limitations, obviously). Because Lurk is a Lisp, its code is simply Lurk data, and any Lurk data can be directly evaluated as a Lurk program. Lurk constructs compound data using SNARK-friendly Poseidon hashes (provided by [Neptune](https://github.com/lurk-lab/neptune)), so its data is naturally content-addressable.
Lurk's distinguishing feature relative to most zk-SNARK authoring languages is that Lurk is Turing complete, so arbitrary computational claims can be made and proved (subject to resource limitations, obviously). Because Lurk is a Lisp, its code is simply Lurk data, and any Lurk data can be directly evaluated as a Lurk program. Lurk constructs compound data using SNARK-friendly Poseidon hashes (provided by [Neptune](https://github.com/argumentcomputer/neptune)), so its data is naturally content-addressable.

# Proofs

Integration with backend proving systems and tooling for proof generation are both still very early. Performance and user experience still have room for significant optimization and improvement, but simple examples can be found in the [demo example directory](demo/).

# Backends
- Nova is Lurk's officially-supported IVC backend. It uses Lurk Lab's Arecibo fork of the [Nova proving system](https://github.com/lurk-lab/arecibo) and the Pasta Curves.
- SuperNova is Lurk's in-development NIVC backend. It uses Arecibo's [SuperNova extension to the Nova proving system](https://github.com/lurk-lab/arecibo/tree/dev/src/supernova) and the Pasta Curves.
- Nova is Lurk's officially-supported IVC backend. It uses Argument Computer Corporation's Arecibo fork of the [Nova proving system](https://github.com/argumentcomputer/arecibo) and the Pasta Curves.
- SuperNova is Lurk's in-development NIVC backend. It uses Arecibo's [SuperNova extension to the Nova proving system](https://github.com/argumentcomputer/arecibo/tree/dev/src/supernova) and the Pasta Curves.
- Future work may target Halo2 or other proving systems.

It is an explicit design goal that statements about the evaluation of Lurk programs have identical semantic meaning across backends, with the qualification that Lurk language instances are themselves parameterized on scalar field and hash function. When backends use the same scalar field and hash function, they can be used to generate equivalent proofs. This is because the concrete representation of content-addressed data is fixed.
Expand All @@ -57,7 +57,7 @@ Please note that the Lurk language and spec will be versioned independently from

## Submodules

Lurk source files used in tests are in the [lurk-lib](https://github.com/lurk-lab/lurk-lib) submodule. You must
Lurk source files used in tests are in the [lurk-lib](https://github.com/argumentcomputer/lurk-lib) submodule. You must
initialize and update submodules before test will pass:

```ignore
Expand Down
Loading
Loading