Skip to content

Commit

Permalink
Deploy preview for PR 1066 🛫
Browse files Browse the repository at this point in the history
  • Loading branch information
TinaKT committed Oct 15, 2024
1 parent 29d7409 commit 4e2f0a4
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 5 deletions.
Binary file modified pr-preview-academy/pr-1066/.doctrees/environment.pickle
Binary file not shown.
4 changes: 2 additions & 2 deletions pr-preview-academy/pr-1066/setup-env.html
Original file line number Diff line number Diff line change
Expand Up @@ -721,7 +721,7 @@
</div>
<section id="download-and-run-concordium-client">
<span id="interact-with-your-contract"></span><h2>Download and run Concordium Client<a class="headerlink" href="#download-and-run-concordium-client" title="Link to this heading">#</a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">concordium-client</span></code> tool allows you to interact with a Concordium node. The tutorials use <code class="docutils literal notranslate"><span class="pre">concordium-client</span></code> as a command line tool to deploy, mint, and transfer. The tools is available for Windows, Mac, and Linux. <a class="reference external" href="https://developer.concordium.software/en/mainnet/net/installation/downloads.html#concordium-node-and-client-download-testnet" title="(in Concordium)"><span class="xref std std-ref">Download it for your operating system here</span></a>. You find documentation of important commands that the <code class="docutils literal notranslate"><span class="pre">concordium-client</span></code> tool provides <a class="reference external" href="https://developer.concordium.software/en/mainnet/net/references/concordium-client.html#concordium-client" title="(in Concordium)"><span class="xref std std-ref">here</span></a>.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">concordium-client</span></code> tool allows you to interact with a Concordium node. The tutorials use <code class="docutils literal notranslate"><span class="pre">concordium-client</span></code> as a command line tool to deploy, mint, and transfer. The tools is available for Windows, Mac, and Linux. <a class="reference external" href="https://developer.concordium.software/en/mainnet/net/installation/downloads.html#concordium-node-and-client-download-testnet" title="(in Concordium)"><span class="xref std std-ref">Download it for your operating system here</span></a>. You find documentation of important commands that the <code class="docutils literal notranslate"><span class="pre">concordium-client</span></code> tool provides <a class="reference external" href="https://developer.concordium.software/en/mainnet/docs/network/concordium-client.html#concordium-client" title="(in Concordium)"><span class="xref std std-ref">here</span></a>.</p>
<p>Rename the package to <code class="docutils literal notranslate"><span class="pre">concordium-client</span></code> in case it has some version annotation. Go to the folder where you downloaded the <code class="docutils literal notranslate"><span class="pre">concordium-client</span></code>. You can check if you are in the correct folder when you see the output <code class="docutils literal notranslate"><span class="pre">concordium-client</span></code> from the command:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span>ls<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span><span class="s1">&#39;concordium-client&#39;</span>
</pre></div>
Expand Down Expand Up @@ -812,7 +812,7 @@
<section id="concordium-node-on-testnet">
<h2>Concordium node on Testnet<a class="headerlink" href="#concordium-node-on-testnet" title="Link to this heading">#</a></h2>
<p>For the purposes of these tutorials and for testing, a node is available on testnet to use when testing smart contracts and dApps so you do not need to run your own node. You can use this node for API calls of chain methods only with gRPC v2 and gRPC web. The address is <code class="docutils literal notranslate"><span class="pre">grpc.testnet.concordium.com</span></code> on port 20000 (gRPCv2 and gRPC-web). You can use this node for API calls of <em>chain methods only</em>. This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the <a class="reference external" href="https://status.testnet.concordium.software">Testnet status page</a>.</p>
<p>If you wish to run your own node, see <a class="reference external" href="https://developer.concordium.software/en/mainnet/net/nodes/node-requirements.html#node-requirements" title="(in Concordium)"><span class="xref std std-ref">Run a node on Concordium</span></a>.</p>
<p>If you wish to run your own node, see <a class="reference external" href="https://developer.concordium.software/en/mainnet/docs/network/nodes/node-requirements.html#node-requirements" title="(in Concordium)"><span class="xref std std-ref">Run a node on Concordium</span></a>.</p>
</section>
<section id="setup-a-wallet">
<span id="setup-wallet"></span><h2>Setup a wallet<a class="headerlink" href="#setup-a-wallet" title="Link to this heading">#</a></h2>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -696,7 +696,7 @@ <h1>How it works<a class="headerlink" href="#how-it-works" title="Link to this h
<p>In this last section, you will learn how to run the dApp to mint an NFT.</p>
<section id="verifier-backend">
<h2>Verifier backend<a class="headerlink" href="#verifier-backend" title="Link to this heading">#</a></h2>
<p>First you need to run the verifier backend. Your dApp will be communicating with it to get the statement, challenge and post the proof and get the signature back. It expects parameters from the terminal but you are free to use all of them from a JSON file. We will use a mixture by giving the keys (verify and sign) as a parameter from the terminal and the statement from a JSON. In order to create a custom statement, you can check read about <a class="reference external" href="https://developer.concordium.software/en/mainnet/net/guides/create-proofs.html#create-proofs" title="(in Concordium)"><span class="xref std std-ref">how to create proofs</span></a>. For this tutorial scenario, you will use age proofs to be able to verify if a person is older than 18 or not, but you can also check if the person is from a certain country or not.</p>
<p>First you need to run the verifier backend. Your dApp will be communicating with it to get the statement, challenge and post the proof and get the signature back. It expects parameters from the terminal but you are free to use all of them from a JSON file. We will use a mixture by giving the keys (verify and sign) as a parameter from the terminal and the statement from a JSON. In order to create a custom statement, you can check read about <a class="reference external" href="https://developer.concordium.software/en/mainnet/docs/network/guides/create-proofs.html#create-proofs" title="(in Concordium)"><span class="xref std std-ref">how to create proofs</span></a>. For this tutorial scenario, you will use age proofs to be able to verify if a person is older than 18 or not, but you can also check if the person is from a certain country or not.</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">[</span>
<span class="go"> {</span>
<span class="go"> &quot;type&quot;: &quot;AttributeInRange&quot;,</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -696,9 +696,9 @@ <h1>The verifier backend<a class="headerlink" href="#the-verifier-backend" title
<p>In this first part, you will implement a verifier backend server that signs a claim if it is verified.</p>
<section id="zero-knowledge-proofs-zkp-and-id-proofs">
<h2>Zero-knowledge proofs (ZKP) and ID proofs<a class="headerlink" href="#zero-knowledge-proofs-zkp-and-id-proofs" title="Link to this heading">#</a></h2>
<p>The Concordium Wallet for Web allows dApps or services to request proof that the user meets some requirement, such as proof the user is over a certain age or resides in a specific set of countries or areas. For more information about such proofs, see <a class="reference external" href="https://developer.concordium.software/en/mainnet/net/guides/create-proofs.html#create-proofs" title="(in Concordium)"><span class="xref std std-ref">Create proofs</span></a>. But basically, when you have a Concordium account you have an ID object and the identity credential in your wallet. On-chain (in your account) there is a (list of) commitment(s) to your attributes. No one can know who you are other than being able to see your public address. But with zero-knowledge proof (ZK proof) technology (proving a claim without revealing any information but the claim itself), any dApp that wants to make sure that its users meet some criteria can create a query which uses a ZK proof to show correctness. Here these criteria are called <strong>statements</strong>. These statements can be located in the dApp itself or stored in the verifier which is a backend HTTP server. For this particular tutorial’s scenario, the dApp statement is whether the user is older than 18.</p>
<p>The Concordium Wallet for Web allows dApps or services to request proof that the user meets some requirement, such as proof the user is over a certain age or resides in a specific set of countries or areas. For more information about such proofs, see <a class="reference external" href="https://developer.concordium.software/en/mainnet/docs/network/guides/create-proofs.html#create-proofs" title="(in Concordium)"><span class="xref std std-ref">Create proofs</span></a>. But basically, when you have a Concordium account you have an ID object and the identity credential in your wallet. On-chain (in your account) there is a (list of) commitment(s) to your attributes. No one can know who you are other than being able to see your public address. But with zero-knowledge proof (ZK proof) technology (proving a claim without revealing any information but the claim itself), any dApp that wants to make sure that its users meet some criteria can create a query which uses a ZK proof to show correctness. Here these criteria are called <strong>statements</strong>. These statements can be located in the dApp itself or stored in the verifier which is a backend HTTP server. For this particular tutorial’s scenario, the dApp statement is whether the user is older than 18.</p>
<p>When the dApp wants to prove someone meets the criteria, it first communicates with the verifier. The verifier is one of the key elements of this architecture. The dApp uses the verifier to verify the claims but it has a key function above all else. The verifier makes sure that a ZK proof query can’t be reused by someone else, for example, if it’s stolen somehow. When the dApp communicates with the verifier, it asks for a <strong>challenge</strong>, a one-time or time-bound random string, that will be used while creating the proofs. The verifier, when doing verification checks whether the proof is created with the particular challenge issued for the query. If the proof is not created with the particular challenge, it will not be verified.</p>
<p>When you have your Concordium account, meaning your ID object is created, there is a set of <strong>attributes</strong> that is inside of your encrypted data structure. A full list of the attributes can be <a class="reference external" href="https://developer.concordium.software/en/mainnet/net/guides/create-proofs.html#create-proofs" title="(in Concordium)"><span class="xref std std-ref">found here</span></a>, but some of them are listed below.</p>
<p>When you have your Concordium account, meaning your ID object is created, there is a set of <strong>attributes</strong> that is inside of your encrypted data structure. A full list of the attributes can be <a class="reference external" href="https://developer.concordium.software/en/mainnet/docs/network/guides/create-proofs.html#create-proofs" title="(in Concordium)"><span class="xref std std-ref">found here</span></a>, but some of them are listed below.</p>
<ul class="simple">
<li><p>First name, Last name</p></li>
<li><p>Sex</p></li>
Expand Down

0 comments on commit 4e2f0a4

Please sign in to comment.