From 02fbb81d293c24cae0755274a6fbb52456b8ba28 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Fri, 7 Mar 2025 11:31:34 -0700 Subject: [PATCH 1/9] chore: renames --- Cargo.lock | 144 +++++++++++++++---------------- frontend/Cargo.toml | 6 +- frontend/src/error.rs | 12 +-- frontend/src/lib.rs | 16 ++-- frontend/src/noir.rs | 4 +- frontend/src/program.rs | 2 +- frontend/src/setup.rs | 2 +- frontend/tests/end_to_end/mod.rs | 2 +- frontend/tests/ivc/mod.rs | 4 +- frontend/tests/lib.rs | 2 +- prover/Cargo.toml | 4 +- 11 files changed, 99 insertions(+), 99 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3a0e56e..35eddd7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -545,78 +545,6 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" -[[package]] -name = "client-side-prover" -version = "0.1.0" -dependencies = [ - "anyhow", - "bellpepper", - "bellpepper-core", - "bincode", - "bitvec", - "byteorder", - "cfg-if", - "criterion", - "digest", - "expect-test", - "ff 0.13.0", - "flate2", - "generic-array 1.1.0", - "getrandom 0.2.15", - "group 0.13.0", - "grumpkin-msm", - "halo2curves", - "handlebars", - "hex", - "itertools 0.13.0", - "neptune", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "once_cell", - "pairing", - "proptest", - "rand 0.8.5", - "rand_chacha", - "rand_core 0.6.4", - "rayon", - "rayon-scan", - "ref-cast", - "serde", - "serde_json", - "sha2", - "sha3", - "static_assertions", - "subtle", - "tap", - "thiserror", - "tracing", - "tracing-subscriber", - "tracing-test", - "tracing-texray", -] - -[[package]] -name = "client-side-prover-frontend" -version = "0.1.0" -dependencies = [ - "acvm", - "ark-bn254", - "bellpepper-core", - "bincode", - "client-side-prover", - "client-side-prover-frontend", - "halo2curves", - "noirc_abi", - "serde", - "serde_json", - "tempdir", - "tempfile", - "thiserror", - "tracing", - "tracing-test", -] - [[package]] name = "const-oid" version = "0.9.6" @@ -775,6 +703,78 @@ dependencies = [ "signature", ] +[[package]] +name = "edge-frontend" +version = "0.1.0" +dependencies = [ + "acvm", + "ark-bn254", + "bellpepper-core", + "bincode", + "edge-frontend", + "edge-prover", + "halo2curves", + "noirc_abi", + "serde", + "serde_json", + "tempdir", + "tempfile", + "thiserror", + "tracing", + "tracing-test", +] + +[[package]] +name = "edge-prover" +version = "0.1.0" +dependencies = [ + "anyhow", + "bellpepper", + "bellpepper-core", + "bincode", + "bitvec", + "byteorder", + "cfg-if", + "criterion", + "digest", + "expect-test", + "ff 0.13.0", + "flate2", + "generic-array 1.1.0", + "getrandom 0.2.15", + "group 0.13.0", + "grumpkin-msm", + "halo2curves", + "handlebars", + "hex", + "itertools 0.13.0", + "neptune", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "once_cell", + "pairing", + "proptest", + "rand 0.8.5", + "rand_chacha", + "rand_core 0.6.4", + "rayon", + "rayon-scan", + "ref-cast", + "serde", + "serde_json", + "sha2", + "sha3", + "static_assertions", + "subtle", + "tap", + "thiserror", + "tracing", + "tracing-subscriber", + "tracing-test", + "tracing-texray", +] + [[package]] name = "educe" version = "0.6.0" diff --git a/frontend/Cargo.toml b/frontend/Cargo.toml index 3db7bfb..225f418 100644 --- a/frontend/Cargo.toml +++ b/frontend/Cargo.toml @@ -1,10 +1,10 @@ [package] -name ="client-side-prover-frontend" +name ="edge-frontend" version="0.1.0" edition="2021" [dependencies] -client-side-prover={ path="../prover" } +edge-prover={ path="../prover" } serde ={ workspace=true } serde_json ={ workspace=true } thiserror ={ workspace=true } @@ -20,7 +20,7 @@ ark-bn254="0.5" [dev-dependencies] tracing-test ={ workspace=true } tempdir ="0.3.7" -client-side-prover-frontend={ path=".", features=["demo"] } +edge-frontend={ path=".", features=["demo"] } tempfile ="3.17" bincode ={ workspace=true } diff --git a/frontend/src/error.rs b/frontend/src/error.rs index 6520aec..9ace070 100644 --- a/frontend/src/error.rs +++ b/frontend/src/error.rs @@ -21,15 +21,15 @@ pub enum FrontendError { #[error(transparent)] Io(#[from] std::io::Error), - /// The error is a `client_side_prover::errors::NovaError` + /// The error is a `edge_prover::errors::NovaError` #[error(transparent)] - Nova(#[from] client_side_prover::errors::NovaError), + Nova(#[from] edge_prover::errors::NovaError), - /// The error is a `client_side_prover::supernova::error::SuperNovaError` + /// The error is a `edge_prover::supernova::error::SuperNovaError` #[error(transparent)] - SuperNova(#[from] client_side_prover::supernova::error::SuperNovaError), + SuperNova(#[from] edge_prover::supernova::error::SuperNovaError), - /// The error is a [`client_side_prover::fast_serde::SerdeByteError`] + /// The error is a [`edge_prover::fast_serde::SerdeByteError`] #[error(transparent)] - FastSerde(#[from] client_side_prover::fast_serde::SerdeByteError), + FastSerde(#[from] edge_prover::fast_serde::SerdeByteError), } diff --git a/frontend/src/lib.rs b/frontend/src/lib.rs index 9db7b17..d20808d 100644 --- a/frontend/src/lib.rs +++ b/frontend/src/lib.rs @@ -32,7 +32,7 @@ //! The crate provides demo implementations accessible via the `demo` module when //! built with the `demo` feature. -use client_side_prover::{ +use edge_prover::{ provider::GrumpkinEngine, spartan::batched::BatchedRelaxedR1CSSNARK, supernova::TrivialCircuit, @@ -60,23 +60,23 @@ pub type Scalar = ::Scalar; /// /// These auxiliary parameters contain the cryptographic context needed for /// setting up the proof system. -pub type AuxParams = client_side_prover::supernova::AuxParams; +pub type AuxParams = edge_prover::supernova::AuxParams; /// The `ProverKey` needed to create a `CompressedSNARK`. /// /// This key is used by the prover to generate cryptographic proofs. -pub type ProverKey = client_side_prover::supernova::snark::ProverKey; +pub type ProverKey = edge_prover::supernova::snark::ProverKey; /// The `VerifierKey` needed to create a `CompressedSNARK`. /// /// This key is used by the verifier to validate cryptographic proofs. -pub type VerifierKey = client_side_prover::supernova::snark::VerifierKey; +pub type VerifierKey = edge_prover::supernova::snark::VerifierKey; /// Represents the `CompressedSNARK` which is a succinct proof of a `RecursiveSNARK`. -pub type CompressedSNARK = client_side_prover::supernova::snark::CompressedSNARK; +pub type CompressedSNARK = edge_prover::supernova::snark::CompressedSNARK; /// Represents the first elliptic curve engine used in the proof system. /// /// The primary engine uses BN256 with KZG polynomial commitments. -type E1 = client_side_prover::provider::Bn256EngineKZG; +type E1 = edge_prover::provider::Bn256EngineKZG; /// Represents the second elliptic curve engine used in the proof system. /// /// The secondary engine uses the Grumpkin curve, which is cycle-friendly with BN256. @@ -88,11 +88,11 @@ type G1 = ::GE; /// Represents the evaluation engine for the first elliptic curve. /// /// This evaluation engine handles polynomial evaluations for the primary curve. -type EE1 = client_side_prover::provider::hyperkzg::EvaluationEngine; +type EE1 = edge_prover::provider::hyperkzg::EvaluationEngine; /// Represents the evaluation engine for the second elliptic curve. /// /// This evaluation engine handles polynomial evaluations for the secondary curve. -type EE2 = client_side_prover::provider::ipa_pc::EvaluationEngine; +type EE2 = edge_prover::provider::ipa_pc::EvaluationEngine; /// Represents the SNARK for the first elliptic curve. /// /// This SNARK implementation is used for generating proofs on the primary curve. diff --git a/frontend/src/noir.rs b/frontend/src/noir.rs index 78a31c2..af31db2 100644 --- a/frontend/src/noir.rs +++ b/frontend/src/noir.rs @@ -25,7 +25,7 @@ use acvm::{ }; use ark_bn254::Fr; use bellpepper_core::{num::AllocatedNum, ConstraintSystem, LinearCombination, SynthesisError}; -use client_side_prover::supernova::StepCircuit; +use edge_prover::supernova::StepCircuit; use halo2curves::ff::PrimeField; use noirc_abi::{input_parser::InputValue, Abi, AbiType, InputMap}; use tracing::{error, trace}; @@ -409,7 +409,7 @@ fn convert_to_acir_field(f: Scalar) -> GenericFieldElement { #[cfg(test)] mod tests { - use client_side_prover::bellpepper::shape_cs::ShapeCS; + use edge_prover::bellpepper::shape_cs::ShapeCS; use super::*; use crate::demo::{basic, poseidon, square_zeroth}; diff --git a/frontend/src/program.rs b/frontend/src/program.rs index 8e13171..a15d893 100644 --- a/frontend/src/program.rs +++ b/frontend/src/program.rs @@ -23,7 +23,7 @@ //! - [`run`]: Executes a program with the appropriate memory model //! - [`compress`]: Compresses a recursive SNARK into a more compact form for verification -use client_side_prover::supernova::{NonUniformCircuit, RecursiveSNARK}; +use edge_prover::supernova::{NonUniformCircuit, RecursiveSNARK}; use halo2curves::{ff::PrimeField, grumpkin}; use noirc_abi::InputMap; use tracing::trace; diff --git a/frontend/src/setup.rs b/frontend/src/setup.rs index 0ff752d..3a720a5 100644 --- a/frontend/src/setup.rs +++ b/frontend/src/setup.rs @@ -21,7 +21,7 @@ use std::io::Cursor; -use client_side_prover::{ +use edge_prover::{ fast_serde::{self, FastSerde, SerdeByteError, SerdeByteTypes}, supernova::{get_circuit_shapes, snark::CompressedSNARK, PublicParams}, traits::{snark::default_ck_hint, Dual, Engine}, diff --git a/frontend/tests/end_to_end/mod.rs b/frontend/tests/end_to_end/mod.rs index 553bb28..6c8d4be 100644 --- a/frontend/tests/end_to_end/mod.rs +++ b/frontend/tests/end_to_end/mod.rs @@ -1,7 +1,7 @@ use std::fs; use acvm::acir::acir_field::GenericFieldElement; -use client_side_prover_frontend::{ +use edge_frontend::{ demo, program::{self, Configuration, Switchboard}, setup::Setup, diff --git a/frontend/tests/ivc/mod.rs b/frontend/tests/ivc/mod.rs index ce828a3..6ac0ea7 100644 --- a/frontend/tests/ivc/mod.rs +++ b/frontend/tests/ivc/mod.rs @@ -1,10 +1,10 @@ use acvm::acir::acir_field::GenericFieldElement; -use client_side_prover::supernova::snark::CompressedSNARK; -use client_side_prover_frontend::{ +use edge_frontend::{ program::{compress, run, Switchboard, RAM, ROM}, setup::Setup, Scalar, }; +use edge_prover::supernova::snark::CompressedSNARK; use halo2curves::{ff::Field, grumpkin}; use noirc_abi::{input_parser::InputValue, InputMap}; diff --git a/frontend/tests/lib.rs b/frontend/tests/lib.rs index e15f91a..76537c0 100644 --- a/frontend/tests/lib.rs +++ b/frontend/tests/lib.rs @@ -1,4 +1,4 @@ -use client_side_prover_frontend::demo::*; +use edge_frontend::demo::*; use tracing_test::traced_test; mod end_to_end; diff --git a/prover/Cargo.toml b/prover/Cargo.toml index 3fc21c7..626663e 100644 --- a/prover/Cargo.toml +++ b/prover/Cargo.toml @@ -1,11 +1,11 @@ [package] -name ="client-side-prover" +name ="edge-prover" version ="0.1.0" authors =["Pluto Engineering"] edition ="2021" description ="Client side proving" readme ="README.md" -repository ="https://github.com/pluto/client-side-prover" +repository ="https://github.com/pluto/edge" license-file="LICENSE" keywords =["zkSNARKs", "cryptography", "proofs"] From 80a118c96b7780844152d0c31b01ae38c5d97267 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Fri, 7 Mar 2025 11:36:24 -0700 Subject: [PATCH 2/9] change 1 --- frontend/src/lib.rs | 1 - frontend/src/program.rs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/frontend/src/lib.rs b/frontend/src/lib.rs index d20808d..f3e130a 100644 --- a/frontend/src/lib.rs +++ b/frontend/src/lib.rs @@ -35,7 +35,6 @@ use edge_prover::{ provider::GrumpkinEngine, spartan::batched::BatchedRelaxedR1CSSNARK, - supernova::TrivialCircuit, traits::{Engine, Group}, }; use halo2curves::ff::Field; diff --git a/frontend/src/program.rs b/frontend/src/program.rs index a15d893..f30b9dc 100644 --- a/frontend/src/program.rs +++ b/frontend/src/program.rs @@ -23,7 +23,7 @@ //! - [`run`]: Executes a program with the appropriate memory model //! - [`compress`]: Compresses a recursive SNARK into a more compact form for verification -use edge_prover::supernova::{NonUniformCircuit, RecursiveSNARK}; +use edge_prover::supernova::{NonUniformCircuit, RecursiveSNARK, TrivialCircuit}; use halo2curves::{ff::PrimeField, grumpkin}; use noirc_abi::InputMap; use tracing::trace; From 4f42725f5c0201d3d63905ae64e074bbd43f150b Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Fri, 7 Mar 2025 11:36:58 -0700 Subject: [PATCH 3/9] change 2 --- frontend/src/lib.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/frontend/src/lib.rs b/frontend/src/lib.rs index f3e130a..09f118f 100644 --- a/frontend/src/lib.rs +++ b/frontend/src/lib.rs @@ -34,7 +34,6 @@ use edge_prover::{ provider::GrumpkinEngine, - spartan::batched::BatchedRelaxedR1CSSNARK, traits::{Engine, Group}, }; use halo2curves::ff::Field; @@ -95,11 +94,11 @@ type EE2 = edge_prover::provider::ipa_pc::EvaluationEngine; /// Represents the SNARK for the first elliptic curve. /// /// This SNARK implementation is used for generating proofs on the primary curve. -type S1 = BatchedRelaxedR1CSSNARK; +type S1 = edge_prover::spartan::batched::BatchedRelaxedR1CSSNARK; /// Represents the SNARK for the second elliptic curve. /// /// This SNARK implementation is used for generating proofs on the secondary curve. -type S2 = BatchedRelaxedR1CSSNARK; +type S2 = edge_prover::spartan::batched::BatchedRelaxedR1CSSNARK; #[cfg(any(test, feature = "demo"))] /// Demo module providing example Noir programs for testing and demonstration From cf51aa677a87784edf65a91e5ce09353343ec736 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Fri, 7 Mar 2025 11:39:32 -0700 Subject: [PATCH 4/9] change 3 --- frontend/src/lib.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/frontend/src/lib.rs b/frontend/src/lib.rs index 09f118f..be8ab38 100644 --- a/frontend/src/lib.rs +++ b/frontend/src/lib.rs @@ -32,10 +32,7 @@ //! The crate provides demo implementations accessible via the `demo` module when //! built with the `demo` feature. -use edge_prover::{ - provider::GrumpkinEngine, - traits::{Engine, Group}, -}; +use edge_prover::traits::{Engine, Group}; use halo2curves::ff::Field; use serde::{Deserialize, Serialize}; use tracing::{debug, info}; @@ -78,7 +75,7 @@ type E1 = edge_prover::provider::Bn256EngineKZG; /// Represents the second elliptic curve engine used in the proof system. /// /// The secondary engine uses the Grumpkin curve, which is cycle-friendly with BN256. -type E2 = GrumpkinEngine; +type E2 = edge_prover::provider::GrumpkinEngine; /// Represents the group associated with the first elliptic curve engine. /// /// This group is used for cryptographic operations in the primary curve. From a76afa2962eeb79037254928fa0fb4b89b3912ac Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Fri, 7 Mar 2025 11:44:44 -0700 Subject: [PATCH 5/9] change 4 --- frontend/src/lib.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/frontend/src/lib.rs b/frontend/src/lib.rs index be8ab38..0d44a6d 100644 --- a/frontend/src/lib.rs +++ b/frontend/src/lib.rs @@ -32,7 +32,7 @@ //! The crate provides demo implementations accessible via the `demo` module when //! built with the `demo` feature. -use edge_prover::traits::{Engine, Group}; +use edge_prover::traits::Engine; use halo2curves::ff::Field; use serde::{Deserialize, Serialize}; use tracing::{debug, info}; @@ -48,7 +48,7 @@ pub mod setup; /// /// This type is used for representing field elements in the scalar field /// of the primary elliptic curve used in the proof system. -pub type Scalar = ::Scalar; +pub type Scalar = ::Scalar; /// Represents the params needed to create `PublicParams` alongside the /// circuits' R1CSs. @@ -76,10 +76,6 @@ type E1 = edge_prover::provider::Bn256EngineKZG; /// /// The secondary engine uses the Grumpkin curve, which is cycle-friendly with BN256. type E2 = edge_prover::provider::GrumpkinEngine; -/// Represents the group associated with the first elliptic curve engine. -/// -/// This group is used for cryptographic operations in the primary curve. -type G1 = ::GE; /// Represents the evaluation engine for the first elliptic curve. /// /// This evaluation engine handles polynomial evaluations for the primary curve. From 740a31266dde94d785785aded8df4d2e243f933c Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Fri, 7 Mar 2025 11:49:23 -0700 Subject: [PATCH 6/9] docs --- frontend/src/program.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/frontend/src/program.rs b/frontend/src/program.rs index f30b9dc..50bfb6c 100644 --- a/frontend/src/program.rs +++ b/frontend/src/program.rs @@ -120,6 +120,17 @@ impl Switchboard { Self { circuits, public_input: vec![], initial_circuit_index: 0, switchboard_inputs: () } } + /// Converts a Configuration switchboard into a ROM-mode switchboard + /// + /// # Arguments + /// + /// * `initial_circuit_index` - The starting circuit index + /// * `switchboard_inputs` - Sequence of inputs for each execution step + /// * `public_input` - Initial register values + /// + /// # Returns + /// + /// A new [`Switchboard`] instance configured for ROM execution pub fn into_rom( self, initial_circuit_index: usize, @@ -129,6 +140,16 @@ impl Switchboard { Switchboard { circuits: self.circuits, public_input, initial_circuit_index, switchboard_inputs } } + /// Converts a Configuration switchboard into a RAM-mode switchboard + /// + /// # Arguments + /// + /// * `initial_circuit_index` - The starting circuit index + /// * `public_input` - Initial register values + /// + /// # Returns + /// + /// A new [`Switchboard`] instance configured for RAM execution pub fn into_ram( self, initial_circuit_index: usize, From 1530ad0272c99789e589bc62da2c612595d828e6 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Fri, 7 Mar 2025 11:51:07 -0700 Subject: [PATCH 7/9] fmt --- frontend/Cargo.toml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/frontend/Cargo.toml b/frontend/Cargo.toml index 225f418..2088bbc 100644 --- a/frontend/Cargo.toml +++ b/frontend/Cargo.toml @@ -4,13 +4,13 @@ version="0.1.0" edition="2021" [dependencies] -edge-prover={ path="../prover" } -serde ={ workspace=true } -serde_json ={ workspace=true } -thiserror ={ workspace=true } -tracing ={ workspace=true } -bellpepper-core ={ workspace=true } -halo2curves ={ workspace=true } +edge-prover ={ path="../prover" } +serde ={ workspace=true } +serde_json ={ workspace=true } +thiserror ={ workspace=true } +tracing ={ workspace=true } +bellpepper-core={ workspace=true } +halo2curves ={ workspace=true } # noir acvm ={ git="https://github.com/noir-lang/noir", rev="v1.0.0-beta.2" } @@ -18,11 +18,11 @@ noirc_abi={ git="https://github.com/noir-lang/noir", rev="v1.0.0-beta.2" } ark-bn254="0.5" [dev-dependencies] -tracing-test ={ workspace=true } -tempdir ="0.3.7" +tracing-test ={ workspace=true } +tempdir ="0.3.7" edge-frontend={ path=".", features=["demo"] } -tempfile ="3.17" -bincode ={ workspace=true } +tempfile ="3.17" +bincode ={ workspace=true } [features] demo=[] From f3918d72b40828823f58f378a05fe1915e39af02 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Fri, 7 Mar 2025 13:08:00 -0700 Subject: [PATCH 8/9] Update README.md --- README.md | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index fbfbe92..51918d6 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,5 @@ -# Client Side Prover - -> [!NOTE] -> This repository is a fork of the original hosted at [https://github.com/microsoft/nova](https://github.com/microsoft/nova) and also forked from [https://github.com/argumentcomputer/arecibo](https://github.com/argumentcomputer/arecibo). - -## Project Structure -The repository contains several key components: -- `client-side-prover-frontend`: Frontend adapters for both Noir and Circom -- `client-side-prover`: Backend implementation of the client side prover +# Edge +> Enabling private computation on the edge. ## Features - Supernova NIVC folding scheme implementation @@ -14,7 +7,28 @@ The repository contains several key components: - Client-side proving capabilities through WebAssembly - Recursive proof generation and verification +## Project Structure +The repository contains several key components: +- `edge-frontend`: Frontend adapters for both Noir and Circom +- `edge-prover`: Backend implementation of the client side prover + ## Usage This repository and its crates are **not** production ready. Do not use them in production. No audits have been done and none are planned. -With that said, work has been done to make the implementation here work with an offline setup phase. Therefore, this can be used run proofs on an edge device which can later be verified by a remote server. \ No newline at end of file +With that said, work has been done to make the implementation here work with an offline setup phase. Therefore, this can be used run proofs on an edge device which can later be verified by a remote server. + +## Contributing + +We welcome contributions to our open-source projects. If you want to contribute or follow along with contributor discussions, join our main [Telegram channel](https://t.me/pluto_xyz/1) to chat about Pluto's development. + +Our contributor guidelines can be found in our [CONTRIBUTING.md](https://github.com/pluto/.github/blob/main/profile/CONTRIBUTING.md). + +Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions. + +## License + +This project is licensed under the Apache V2 License - see the [LICENSE](LICENSE) file for details. + +## Acknowledgements +> [!NOTE] +> This repository is a fork of the original hosted at [https://github.com/microsoft/nova](https://github.com/microsoft/nova) and also forked from [https://github.com/argumentcomputer/arecibo](https://github.com/argumentcomputer/arecibo). \ No newline at end of file From db25bc285f98d851ce8c1dd72132caaf3bf39e80 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Fri, 7 Mar 2025 13:13:45 -0700 Subject: [PATCH 9/9] chore: repo stuff --- .github/labels.yaml | 67 ++++++++++++++++++++++++++++++ .github/workflows/sync_labels.yaml | 26 ++++++++++++ README.md | 13 ++++++ 3 files changed, 106 insertions(+) create mode 100644 .github/labels.yaml create mode 100644 .github/workflows/sync_labels.yaml diff --git a/.github/labels.yaml b/.github/labels.yaml new file mode 100644 index 0000000..d4b2f08 --- /dev/null +++ b/.github/labels.yaml @@ -0,0 +1,67 @@ +- name: "bug 🐛" + color: "d73a4a" + description: "Something isn't working" + +- name: "documentation 📜" + color: "0075ca" + description: "Improvements or additions to documentation" + +- name: "feature ✨" + color: "a2eeef" + description: "New feature or request" + +- name: "performance ⚡" + color: "fbca04" + description: "Benchmarks or performance improvements" + +- name: "question ❓" + color: "5319e7" + description: "Further information is requested" + +- name: "structure 🧱" + color: "0052cc" + description: "Structure refactors or changes" + +- name: "test ✏️" + color: "0e8a16" + description: "Testing improvements" + +- name: "priority-high 🔥" + color: "b60205" + description: "High priority tasks" + +- name: "priority-medium 🚧" + color: "fbca04" + description: "Medium priority tasks" + +- name: "priority-low 🌱" + color: "0e8a16" + description: "Low priority tasks" + +- name: "good first issue 👋" + color: "7057ff" + description: "Good for newcomers" + +- name: "help wanted 🆘" + color: "008672" + description: "Extra attention is needed" + +- name: "tech debt 🏗️" + color: "ff7619" + description: "Technical debt and cleanup tasks" + +- name: "ci/cd 🔄" + color: "44cc11" + description: "Changes to CI/CD pipeline" + +- name: "dependencies 📦" + color: "cb7eed" + description: "Dependency updates and maintenance" + +- name: "discussion 💭" + color: "5319e7" + description: "Needs discussion or decisions" + +- name: "security 🔒" + color: "d93f0b" + description: "Security-related changes or fixes" \ No newline at end of file diff --git a/.github/workflows/sync_labels.yaml b/.github/workflows/sync_labels.yaml new file mode 100644 index 0000000..99c9651 --- /dev/null +++ b/.github/workflows/sync_labels.yaml @@ -0,0 +1,26 @@ +name: Sync Labels + +on: + push: + branches: + - main + paths: + - '.github/labels.yaml' + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: micnncim/action-label-syncer@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + manifest: .github/labels.yaml + prune: false \ No newline at end of file diff --git a/README.md b/README.md index 51918d6..33db3b2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ +

+ Pluto Logo +
+ Pluto +

+

+ Telegram + Docs + License +

+ +--- + # Edge > Enabling private computation on the edge.