From ac11b3a6479a6291ab38e659fe119b44d567faeb Mon Sep 17 00:00:00 2001 From: Anish-kumar7641 Date: Wed, 17 Jul 2024 12:36:37 +0000 Subject: [PATCH 1/2] my new nada program --- nillion-python-starter | 1 + .../nada_quickstart_programs/nada-project.toml | 7 +++++++ quickstart/nada_quickstart_programs/src/main.py | 13 +++++++++++++ .../target/main.nada.bin | Bin 0 -> 968 bytes .../target/secret_addition_complete.nada.bin | Bin 975 -> 975 bytes 5 files changed, 21 insertions(+) create mode 160000 nillion-python-starter 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/nillion-python-starter b/nillion-python-starter new file mode 160000 index 00000000..15e9fe0b --- /dev/null +++ b/nillion-python-starter @@ -0,0 +1 @@ +Subproject commit 15e9fe0b43b980670bf1a97f703a8d2f25ca1afc 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..8a16c833 --- /dev/null +++ b/quickstart/nada_quickstart_programs/src/main.py @@ -0,0 +1,13 @@ +from nada_dsl import * + +def nada_main(): + party1 = Party(name="Party1") + party2 = Party(name="Party2") + party3 = Party(name="Party3") + + length = SecretInteger(Input(name="Length", party=party1)) + breadth = SecretInteger(Input(name="Breadth", party=party2)) + + area = length * breadth + + return [Output(area, "rectangle_area", party3)] 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..ac7f2cb955c7e7b17ac88722ce8de6c1ccb270f7 GIT binary patch literal 968 zcmaKqy-ve05XZ|m1o5#jv6xIrRUw*eKoDZ9Kmv&op~^H)sMNTTafVL31aHO*F!C6j z?K?<9z|!Sx=YK!{<6N)j#tP%)lJrqr}_T5qY|+Lu?+_v zz=s_|Cb=;|^X7$j0P2@b7evmnSu)(u)VyGlr+l2g%-FOj=Ss7_=cOWZ+eRORryhe* z+O}f}v;7xHUWmkZz37KOil|Ew)fI7|RWi&?BiuE>tj*Wu@_8*Khv7 z*-D(b(D`_Bjr4Cl{=+690)RDO+6T(fN1q|ly#z;tgUqxS_H CzsG6- 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..6645251fdbf3d3b822f26a56c0de82d3078e358b 100644 GIT binary patch delta 112 zcmX@lex7}U8Y5f6->U8pm6LTCeFXo2SPTq&3=9kcVD@A)CKn}$0tN;apfHTR;W0!h eRM~q*Qz4iTNH>H%xs%a_k#XXAt<6iBv={;R-7NM1 delta 112 zcmX@lex7}U8Y7#)m#<8W43l*jeFSf%0a*+Td_XJ!W=}R_a#4aPU|?VY34;~Gq!}0j fu7NebXEYUpFd@33!kvsRjEob{Yi(Z2q{RpT@evzq From d6d23ee318a698d9b0208e7750b81b07fa343915 Mon Sep 17 00:00:00 2001 From: Anish-kumar7641 Date: Wed, 17 Jul 2024 16:52:22 +0000 Subject: [PATCH 2/2] my new nada program --- nohup.out | 14 +++ .../nada_quickstart_programs/src/main.py | 84 ++++++++++++++++-- .../target/main.nada.bin | Bin 968 -> 968 bytes .../target/secret_addition_complete.nada.bin | Bin 975 -> 975 bytes 4 files changed, 90 insertions(+), 8 deletions(-) create mode 100644 nohup.out diff --git a/nohup.out b/nohup.out new file mode 100644 index 00000000..85af3429 --- /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/.tmp9lvTYz (80.01Gbs available) +🏃 starting nilchain node in: /tmp/.tmp9lvTYz/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/nada_quickstart_programs/src/main.py b/quickstart/nada_quickstart_programs/src/main.py index 8a16c833..f6477c3f 100644 --- a/quickstart/nada_quickstart_programs/src/main.py +++ b/quickstart/nada_quickstart_programs/src/main.py @@ -1,13 +1,81 @@ from nada_dsl import * + +def initialize_participants(nr_participants): + """ + Initialize participants with unique identifiers. + + Parameters: + - nr_participants (int): Number of participants. + + Returns: + - participants (list): List of Party objects representing participants. + """ + participants = [] + for i in range(nr_participants): + participants.append(Party(name="Participant" + str(i))) + return participants + + +def inputs_initialization(nr_participants, participants): + """ + Initialize inputs for each participant's chosen number. + + Parameters: + - nr_participants (int): Number of participants. + + Returns: + - chosen_numbers (list): List representing chosen numbers for each participant. + """ + chosen_numbers = [] + for p in range(nr_participants): + chosen_numbers.append( + SecretUnsignedInteger(Input(name="chosen_number_p" + str(p), party=participants[p])) + ) + return chosen_numbers + + +def determine_winner(nr_participants, chosen_numbers, winning_number, outparty): + """ + Determine the winner based on the closest match to the winning number. + + Parameters: + - nr_participants (int): Number of participants. + - chosen_numbers (list): List representing chosen numbers for each participant. + - winning_number (UnsignedInteger): The predetermined winning number. + + Returns: + - winner_output (Output): Output object representing the winner's identifier. + """ + closest_diff = UnsignedInteger(2**32 - 1) # Initialize with a large number + winner_id = UnsignedInteger(0) + + for p in range(nr_participants): + diff = (chosen_numbers[p] - winning_number).abs() + is_closer = diff < closest_diff + closest_diff = is_closer.if_else(diff, closest_diff) + winner_id = is_closer.if_else(UnsignedInteger(p), winner_id) + + winner_output = Output(winner_id, "winner_id", outparty) + return winner_output + + def nada_main(): - party1 = Party(name="Party1") - party2 = Party(name="Party2") - party3 = Party(name="Party3") - - length = SecretInteger(Input(name="Length", party=party1)) - breadth = SecretInteger(Input(name="Breadth", party=party2)) + # Number of participants + nr_participants = 3 + + # Predetermined winning number + winning_number = UnsignedInteger(50) # You can set this to any number + + # Parties initialization + participants = initialize_participants(nr_participants) + outparty = Party(name="OutParty") + + # Inputs initialization + chosen_numbers = inputs_initialization(nr_participants, participants) - area = length * breadth + # Determine the winner + winner_output = determine_winner(nr_participants, chosen_numbers, winning_number, outparty) - return [Output(area, "rectangle_area", party3)] + # Output the result + return [winner_output] diff --git a/quickstart/nada_quickstart_programs/target/main.nada.bin b/quickstart/nada_quickstart_programs/target/main.nada.bin index ac7f2cb955c7e7b17ac88722ce8de6c1ccb270f7..37a697e9c67c063162068de69a1b93c671590d81 100644 GIT binary patch delta 100 zcmX@Xeu902BO~kI`kGIblie6C1b>5A3=Dh>3=9vz?8*I%hKgW$1_m~ur~#BM@CTw2 Vs_G%5k|0zBq!%K)S%hf|BLFDgDEI&X delta 100 zcmX@Xeu902BO|Nri#-1N$!?4mg4Q4w0|Ore1H%I_dvZUcp(0qGfq@MuY5-*m*g#Z5 VRXt=>5`>C?^g?7ei!g0r1OWeq9i{*P 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 6645251fdbf3d3b822f26a56c0de82d3078e358b..1be6bf0eec508b7fa80f5c3a4688ab0aed7ae79d 100644 GIT binary patch delta 111 zcmX@lex7}UIwNcC90&XA$vTYQLK~7nOa=x%1_lNQd$Jjmi;zGKLKwoH+{x&w2-e5I czyeg90A<4rfU0`WXv)Yq@x0dNrA%6k00q7vE&u=k delta 117 zcmX@lex7}UIwR}fs_qY!lXV!qg#`Y9m<$Yj3=9kq_T>AFuF7Bq3=Awl(F7=a!()g_ kn2yOG7}Y1|G4Tk&BtS+$*poXMT^JcBp4ZyElu3&b0LAew@&Et;