From f62f555870222dd7c3c4b5e7571d9bdcef2a5bc9 Mon Sep 17 00:00:00 2001 From: mayankmokhere Date: Sun, 14 Jul 2024 16:26:37 +0000 Subject: [PATCH] my new nada program --- nohup.out | 14 +++++ .../client_code/run_my_first_program.py | 59 ++++++++++++++++++ .../nada-project.toml | 7 +++ .../nada_quickstart_programs/src/main.py | 12 ++++ .../target/main.nada.bin | Bin 0 -> 901 bytes .../target/secret_addition_complete.nada.bin | Bin 975 -> 975 bytes 6 files changed, 92 insertions(+) create mode 100644 nohup.out create mode 100644 quickstart/nada_quickstart_programs/nada-project.toml create mode 100644 quickstart/nada_quickstart_programs/src/main.py create mode 100644 quickstart/nada_quickstart_programs/target/main.nada.bin diff --git a/nohup.out b/nohup.out new file mode 100644 index 00000000..000ff471 --- /dev/null +++ b/nohup.out @@ -0,0 +1,14 @@ +ℹ️ cluster id is 9e68173f-9c23-4acc-ba81-4f079b639964 +ℹ️ using 256 bit prime +ℹ️ storing state in /tmp/.tmpt8vf3N (80.04Gbs available) +🏃 starting nilchain node in: /tmp/.tmpt8vf3N/nillion-chain +⛓ nilchain JSON RPC available at http://127.0.0.1:48102 +⛓ nilchain REST API available at http://localhost:26650 +⛓ nilchain gRPC available at localhost:26649 +🏃 starting node 12D3KooWMvw1hEqm7EWSDEyqTb6pNetUVkepahKY6hixuAuMZfJS +⏳ waiting until bootnode is up... +🏃 starting node 12D3KooWAiwGZUwSUaT2bYVxGS8jmfMrfsanZYkHwH3uL7WJPsFq +🏃 starting node 12D3KooWM3hsAswc7ZT6VpwQ1TCZU4GCYY55nLhcsxCcfjuixW57 +👛 funding nilchain keys +📝 nillion CLI configuration written to /root/.config/nillion/nillion-cli.yaml +🌄 environment file written to /root/.config/nillion/nillion-devnet.env diff --git a/quickstart/client_code/run_my_first_program.py b/quickstart/client_code/run_my_first_program.py index e69de29b..d5eafc6d 100644 --- a/quickstart/client_code/run_my_first_program.py +++ b/quickstart/client_code/run_my_first_program.py @@ -0,0 +1,59 @@ +from nada_dsl import * + +def create_parties(num_managers): + parties = [] + for i in range(num_managers): + parties.append(Party(name="Manager" + str(i))) + return parties + +def initialize_inputs(num_managers, num_employees, parties): + employee_scores = [] + for e in range(num_employees): + employee_scores.append([]) + for m in range(num_managers): + employee_scores[e].append( + SecretUnsignedInteger( + Input(name="m" + str(m) + "_e" + str(e), party=parties[m]) + ) + ) + return employee_scores + +def calculate_average_scores(num_managers, num_employees, employee_scores, output_party): + avg_scores = [] + for e in range(num_employees): + total_score = employee_scores[e][0] + for m in range(1, num_managers): + total_score += employee_scores[e][m] + average_score = total_score / UnsignedInteger(num_managers) + avg_scores.append(Output(average_score, "avg_score_e" + str(e), output_party)) + return avg_scores + +def validate_scores(num_managers, num_employees, employee_scores, max_score, output_party): + score_validations = [] + reveal_cheating = [] + for e in range(num_employees): + for m in range(num_managers): + score = employee_scores[e][m] + is_valid = score <= UnsignedInteger(max_score) + score_validations.append(Output(is_valid, "check_score_m" + str(m) + "_e" + str(e), output_party)) + reveal_cheat = is_valid.if_else(UnsignedInteger(0), score) + reveal_cheating.append(Output(reveal_cheat, "if_cheat_open_m" + str(m) + "_e" + str(e), output_party)) + return score_validations, reveal_cheating + +def nada_main(): + num_managers = 3 + num_employees = 2 + max_allowed_score = 10 + + parties = create_parties(num_managers) + output_party = Party(name="OutputParty") + + employee_scores = initialize_inputs(num_managers, num_employees, parties) + + avg_scores = calculate_average_scores(num_managers, num_employees, employee_scores, output_party) + score_validations, reveal_cheating = validate_scores(num_managers, num_employees, employee_scores, max_allowed_score, output_party) + + results = avg_scores + score_validations + reveal_cheating + return results + +nada_main() diff --git a/quickstart/nada_quickstart_programs/nada-project.toml b/quickstart/nada_quickstart_programs/nada-project.toml new file mode 100644 index 00000000..da166dde --- /dev/null +++ b/quickstart/nada_quickstart_programs/nada-project.toml @@ -0,0 +1,7 @@ +name = "nada_quickstart_programs" +version = "0.1.0" +authors = [""] + +[[programs]] +path = "src/main.py" +prime_size = 128 diff --git a/quickstart/nada_quickstart_programs/src/main.py b/quickstart/nada_quickstart_programs/src/main.py new file mode 100644 index 00000000..49e9e7e6 --- /dev/null +++ b/quickstart/nada_quickstart_programs/src/main.py @@ -0,0 +1,12 @@ +from nada_dsl import * + +def nada_main(): + party1 = Party(name="Party1") + party2 = Party(name="Party2") + party3 = Party(name="Party3") + a = SecretInteger(Input(name="A", party=party1)) + b = SecretInteger(Input(name="B", party=party2)) + + result = a + b + + return [Output(result, "my_output", party3)] \ No newline at end of file diff --git a/quickstart/nada_quickstart_programs/target/main.nada.bin b/quickstart/nada_quickstart_programs/target/main.nada.bin new file mode 100644 index 0000000000000000000000000000000000000000..b9ef41e05ffeb15ab8796a2f133230463338ca8b GIT binary patch literal 901 zcmaKq%}T^D5XbAc77^Jeh&{Es2-|uRDzvx7gMvqqCAC>y*rp|$9_mZ@QohrQcyQ8W zw5`#=Fv;}ypP8iNIC^avzia$06|$M^nNvX*{Jd(m;TV9Ofc3y|0PX;AZ3CkLsIn9W z+yt+dYNeNbveCvJCo$d`WKqXgunVwX>JZiGAL@OGzZo?ms5vl!qM4PotZI4uIeN}s z1`S54=%A-VOa&ev7scuwaqp~kLh`P?C6x>K2iOPd^ zhX`#%*d-zx5gCHQ$2;~Yn4EISo|y2b9DblFmw02{N36REbm8n@QQ8-UAZptcY*jBM dNGUlZ8OCHSIJv)R$Hv#ln0Vilgt?;N;R^$Ct&0Ev literal 0 HcmV?d00001 diff --git a/quickstart_complete/nada_quickstart_programs/target/secret_addition_complete.nada.bin b/quickstart_complete/nada_quickstart_programs/target/secret_addition_complete.nada.bin index 4351b211b5ee0e0c053040d7af6f7bfb2346d48a..2ba1491d378599379106327b3cbe0ba09a1e51a3 100644 GIT binary patch delta 104 zcmX@lex7}U8Y5eRtw*R!&14-$Z=ns!ASMF?9|Hpeggv>F(M1WOf`NerC=6r6lnU5@ Ub-!mc6@oA!x*_b%W=t~~0hcuz5&!@I delta 104 zcmX@lex7}U8Y7#)m#<8W43l*jy@dpBr2&}?417QgVNdR4bWwt+U|?VY34>L`q!}0j Wu7P#GXEYUpFd@1j?9FCOGZ_ISQW)R>