From aecfbb34b2060db890550add091611d125db4827 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:53:23 +0000 Subject: [PATCH] deploy: 9897cb138b22887891eea3d5f9d04f7fe9a223e6 --- 404.html | 4 ++-- about/index.html | 4 ++-- actions/index.html | 4 ++-- assets/js/{354cfeef.797c221b.js => 354cfeef.84ba97b4.js} | 2 +- assets/js/{49ac7784.a165cb01.js => 49ac7784.81708874.js} | 2 +- assets/js/{5a0482dd.68e2db62.js => 5a0482dd.6e71fd4b.js} | 2 +- .../{runtime~main.9d5e8448.js => runtime~main.b1cdf1ef.js} | 2 +- disclaimer/index.html | 4 ++-- drep-pioneer-program/drep-pp/lesson-plan/index.html | 4 ++-- drep-pioneer-program/drep-pp/lp-wrapup.mdx/index.html | 4 ++-- drep-pioneer-program/drep-pp/module-1/index.html | 4 ++-- drep-pioneer-program/drep-pp/module-2/index.html | 4 ++-- drep-pioneer-program/drep-pp/module-3/index.html | 4 ++-- drep-pioneer-program/drep-pp/module-4/index.html | 4 ++-- drep-pioneer-program/drep-pp/overview/index.html | 4 ++-- drep-pioneer-program/drep-pp/prelude-and-intro/index.html | 4 ++-- drep-pioneer-program/drep-pp/requirements/index.html | 4 ++-- faucet/index.html | 4 ++-- get-started/discord/index.html | 4 ++-- get-started/govtool/index.html | 4 ++-- get-started/index.html | 4 ++-- index.html | 4 ++-- meetups/index.html | 4 ++-- roles/cc/index.html | 4 ++-- roles/dev/index.html | 6 +++--- roles/drep/index.html | 6 +++--- roles/spo/index.html | 4 ++-- tools-resources/faq/index.html | 4 ++-- tools-resources/resources/index.html | 4 ++-- tutorials/actions/index.html | 4 ++-- tutorials/address/index.html | 4 ++-- tutorials/cli queries/index.html | 4 ++-- tutorials/committee/index.html | 4 ++-- tutorials/delegate-to-drep/index.html | 4 ++-- tutorials/drep-registration/index.html | 4 ++-- tutorials/file-naming-convention/index.html | 4 ++-- tutorials/jq-filters/index.html | 4 ++-- tutorials/multisig-drep-registration/index.html | 4 ++-- tutorials/register-stake-address/index.html | 4 ++-- tutorials/stake-pool-registration/index.html | 4 ++-- tutorials/start-node/index.html | 6 +++--- tutorials/vote-action/index.html | 4 ++-- tutorials/vote-multisig-drep/index.html | 4 ++-- why-sanchonet/barataria/index.html | 4 ++-- why-sanchonet/don-quixote/index.html | 4 ++-- why-sanchonet/index.html | 4 ++-- why-sanchonet/sancho-panza/index.html | 4 ++-- 47 files changed, 93 insertions(+), 93 deletions(-) rename assets/js/{354cfeef.797c221b.js => 354cfeef.84ba97b4.js} (64%) rename assets/js/{49ac7784.a165cb01.js => 49ac7784.81708874.js} (77%) rename assets/js/{5a0482dd.68e2db62.js => 5a0482dd.6e71fd4b.js} (72%) rename assets/js/{runtime~main.9d5e8448.js => runtime~main.b1cdf1ef.js} (67%) diff --git a/404.html b/404.html index d4193818..10069d0f 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | SanchoNet - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/about/index.html b/about/index.html index 4d8094ff..2adb8e10 100644 --- a/about/index.html +++ b/about/index.html @@ -4,13 +4,13 @@ About | SanchoNet - +
Skip to main content

About

SanchoNet is about introducing the Cardano community to governance features from CIP-1694 in a controlled testnet environment.

Contributing

Want to make this site better? Submit a pull request!

  1. Clone this repository
  2. Run nix develop to enter a shell with all the necessary tools
  3. Edit one of the files in the docs/* folder
  4. Run just run in the Nix shell to run the website locally
  5. Once you are done with your changes, commit them to the repository!
- + \ No newline at end of file diff --git a/actions/index.html b/actions/index.html index b101be61..0734b928 100644 --- a/actions/index.html +++ b/actions/index.html @@ -4,7 +4,7 @@ SanchoNet governance actions | SanchoNet - + @@ -22,7 +22,7 @@ expires if it does not receive enough votes during its governance action lifetime.

Ratified governance actions are automatically enacted at the epoch boundary following their ratification.

The only exception is when a "Motion of No Confidence" is enacted prior to the enactment of other actions. In that case, the ratified but not yet enacted actions are not enacted. Instead, these actions are put back for voting for the remainder of their lifetime. If a new committee is elected before these actions expire, they can still be ratified, but the new committee must approve them.

Governance action lifecycle

Check out the Tutorials and Voting on governance actions to learn how to create and vote on governance actions.

- + \ No newline at end of file diff --git a/assets/js/354cfeef.797c221b.js b/assets/js/354cfeef.84ba97b4.js similarity index 64% rename from assets/js/354cfeef.797c221b.js rename to assets/js/354cfeef.84ba97b4.js index c56af4ff..83a5de39 100644 --- a/assets/js/354cfeef.797c221b.js +++ b/assets/js/354cfeef.84ba97b4.js @@ -1 +1 @@ -"use strict";(self.webpackChunksanchonet=self.webpackChunksanchonet||[]).push([[8512],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>b});var o=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=o.createContext({}),d=function(e){var n=o.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=d(e.components);return o.createElement(s.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},h=o.forwardRef((function(e,n){var t=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=d(t),h=r,b=u["".concat(s,".").concat(h)]||u[h]||p[h]||a;return t?o.createElement(b,i(i({ref:n},c),{},{components:t})):o.createElement(b,i({ref:n},c))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var a=t.length,i=new Array(a);i[0]=h;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var o=t(7462),r=(t(7294),t(3905));const a={sidebar_label:"Start a SanchoNet node",title:"Start a SanchoNet node",sidebar_position:1,slug:"/tutorials/start-node"},i=void 0,l={unversionedId:"tutorials/start-a-node",id:"tutorials/start-a-node",title:"Start a SanchoNet node",description:"Download or build cardano-node and cardano-cli binaries:",source:"@site/docs/tutorials/start-a-node.mdx",sourceDirName:"tutorials",slug:"/tutorials/start-node",permalink:"/tutorials/start-node",draft:!1,editUrl:"https://github.com/input-output-hk/sanchonet/tree/master/docs/tutorials/start-a-node.mdx",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_label:"Start a SanchoNet node",title:"Start a SanchoNet node",sidebar_position:1,slug:"/tutorials/start-node"},sidebar:"docsSidebar",previous:{title:"Faucet",permalink:"/faucet"},next:{title:"File naming convention",permalink:"/tutorials/file-naming-convention"}},s={},d=[{value:"Download or build cardano-node and cardano-cli binaries:",id:"download-or-build-cardano-node-and-cardano-cli-binaries",level:3},{value:"Get configuration files",id:"get-configuration-files",level:3},{value:"Run the node",id:"run-the-node",level:3},{value:"Need help?",id:"need-help",level:3}],c={toc:d},u="wrapper";function p(e){let{components:n,...t}=e;return(0,r.kt)(u,(0,o.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"download-or-build-cardano-node-and-cardano-cli-binaries"},"Download or build cardano-node and cardano-cli binaries:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The latest version for SanchoNet is ",(0,r.kt)("strong",{parentName:"li"},"8.11.0-sancho"),". ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/releases"},"See releases"),".")),(0,r.kt)("h3",{id:"get-configuration-files"},"Get configuration files"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"wget https://book.world.dev.cardano.org/environments/sanchonet/config.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/topology.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/byron-genesis.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/shelley-genesis.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/alonzo-genesis.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/conway-genesis.json\n")),(0,r.kt)("h3",{id:"run-the-node"},"Run the node"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"cardano-node run --topology topology.json \\\n--database-path db \\\n--socket-path node.socket \\\n--port 3001 \\\n--config config.json\n")),(0,r.kt)("h3",{id:"need-help"},"Need help?"),(0,r.kt)("p",null,"For a step-by-step tutorial on how to build and run a node please visit ",(0,r.kt)("a",{parentName:"p",href:"https://cardano-course.gitbook.io/cardano-course/handbook/module-1-build-and-run-the-node/building-the-node"},"Cardano node course | Building and running the node"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunksanchonet=self.webpackChunksanchonet||[]).push([[8512],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var o=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=o.createContext({}),d=function(e){var n=o.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=d(e.components);return o.createElement(s.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},b=o.forwardRef((function(e,n){var t=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=d(t),b=r,f=u["".concat(s,".").concat(b)]||u[b]||p[b]||a;return t?o.createElement(f,i(i({ref:n},c),{},{components:t})):o.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var a=t.length,i=new Array(a);i[0]=b;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var o=t(7462),r=(t(7294),t(3905));const a={sidebar_label:"Start a SanchoNet node",title:"Start a SanchoNet node",sidebar_position:1,slug:"/tutorials/start-node"},i=void 0,l={unversionedId:"tutorials/start-a-node",id:"tutorials/start-a-node",title:"Start a SanchoNet node",description:"Download or build cardano-node and cardano-cli binaries:",source:"@site/docs/tutorials/start-a-node.mdx",sourceDirName:"tutorials",slug:"/tutorials/start-node",permalink:"/tutorials/start-node",draft:!1,editUrl:"https://github.com/input-output-hk/sanchonet/tree/master/docs/tutorials/start-a-node.mdx",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_label:"Start a SanchoNet node",title:"Start a SanchoNet node",sidebar_position:1,slug:"/tutorials/start-node"},sidebar:"docsSidebar",previous:{title:"Faucet",permalink:"/faucet"},next:{title:"File naming convention",permalink:"/tutorials/file-naming-convention"}},s={},d=[{value:"Download or build cardano-node and cardano-cli binaries:",id:"download-or-build-cardano-node-and-cardano-cli-binaries",level:3},{value:"Get configuration files",id:"get-configuration-files",level:3},{value:"Run the node",id:"run-the-node",level:3},{value:"Need help?",id:"need-help",level:3}],c={toc:d},u="wrapper";function p(e){let{components:n,...t}=e;return(0,r.kt)(u,(0,o.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"download-or-build-cardano-node-and-cardano-cli-binaries"},"Download or build cardano-node and cardano-cli binaries:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The latest version for SanchoNet is ",(0,r.kt)("strong",{parentName:"li"},"9.1.0"),". ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/releases"},"See releases"),".")),(0,r.kt)("h3",{id:"get-configuration-files"},"Get configuration files"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"wget https://book.world.dev.cardano.org/environments/sanchonet/config.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/topology.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/byron-genesis.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/shelley-genesis.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/alonzo-genesis.json\nwget https://book.world.dev.cardano.org/environments/sanchonet/conway-genesis.json\n")),(0,r.kt)("h3",{id:"run-the-node"},"Run the node"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"cardano-node run --topology topology.json \\\n--database-path db \\\n--socket-path node.socket \\\n--port 3001 \\\n--config config.json\n")),(0,r.kt)("h3",{id:"need-help"},"Need help?"),(0,r.kt)("p",null,"For a step-by-step tutorial on how to build and run a node please visit ",(0,r.kt)("a",{parentName:"p",href:"https://cardano-course.gitbook.io/cardano-course/handbook/module-1-build-and-run-the-node/building-the-node"},"Cardano node course | Building and running the node"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/49ac7784.a165cb01.js b/assets/js/49ac7784.81708874.js similarity index 77% rename from assets/js/49ac7784.a165cb01.js rename to assets/js/49ac7784.81708874.js index ed005ad4..ae30a9f8 100644 --- a/assets/js/49ac7784.a165cb01.js +++ b/assets/js/49ac7784.81708874.js @@ -1 +1 @@ -"use strict";(self.webpackChunksanchonet=self.webpackChunksanchonet||[]).push([[86],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(n),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={description:"Become a SanchoNet DRep",title:"DRep",sidebar_position:3},i="Delegate representatives (DReps)",s={unversionedId:"roles/drep",id:"roles/drep",title:"DRep",description:"Become a SanchoNet DRep",source:"@site/docs/roles/drep.mdx",sourceDirName:"roles",slug:"/roles/drep",permalink:"/roles/drep",draft:!1,editUrl:"https://github.com/input-output-hk/sanchonet/tree/master/docs/roles/drep.mdx",tags:[],version:"current",sidebarPosition:3,frontMatter:{description:"Become a SanchoNet DRep",title:"DRep",sidebar_position:3},sidebar:"docsSidebar",previous:{title:"SPO",permalink:"/roles/spo"},next:{title:"Developers",permalink:"/roles/dev"}},c={},l=[{value:"Becoming a DRep",id:"becoming-a-drep",level:2}],p={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"delegate-representatives-dreps"},"Delegate representatives (DReps)"),(0,o.kt)("p",null,"A DRep serves as the community's spokesperson, actively participating in voting on governance actions and advocating for the community's collective interests."),(0,o.kt)("h2",{id:"becoming-a-drep"},"Becoming a DRep"),(0,o.kt)("p",null,"As Cardano prepares for the Conway era, community participation becomes vital for its success. A meaningful way to contribute is by becoming a DRep and playing a key role in shaping Cardano's future."),(0,o.kt)("p",null,"DReps hold significant responsibilities in the governance process, voting on important system updates. Approval depends on the governance action type and requires a majority vote from the corresponding governance bodies (SPOs, the constitutional committee, and DReps)."),(0,o.kt)("p",null,"As a DRep, you'll have the power to vote 'yes,' 'no,' or 'abstain' on governance actions proposing changes to protocol parameters. Your vote represents the ada holders' collective voice, making your role crucial in Cardano's decentralized decision-making."),(0,o.kt)("p",null,"To become a DRep, follow these steps:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Download the node ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.11.0-sancho"},"v8.11.0-sancho")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("a",{parentName:"li",href:"/tutorials/start-node"},"Run the node")),(0,o.kt)("li",{parentName:"ol"},"Request funds from the ",(0,o.kt)("a",{parentName:"li",href:"/faucet"},"faucet")),(0,o.kt)("li",{parentName:"ol"},"Register as a DRep with an on-chain registration certificate"),(0,o.kt)("li",{parentName:"ol"},"Initially, on SanchoNet, use tools like Discord to identify governance actions requiring your attention and vote"),(0,o.kt)("li",{parentName:"ol"},"Engage in discussions with other DReps to assess the merits of active governance actions"),(0,o.kt)("li",{parentName:"ol"},"Cast your votes using Cardano CLI or other voting tools as they become available in the community"),(0,o.kt)("li",{parentName:"ol"},"When submitting your votes, include reasoning for your vote and an anchor (URL and hash).")),(0,o.kt)("p",null,"Stay tuned for comprehensive tutorials that will be provided upon the release of new features. You might be also asked to conduct specific tests from participants on SanchoNet, highlighting the importance of your active involvement."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunksanchonet=self.webpackChunksanchonet||[]).push([[86],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(n),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={description:"Become a SanchoNet DRep",title:"DRep",sidebar_position:3},i="Delegate representatives (DReps)",s={unversionedId:"roles/drep",id:"roles/drep",title:"DRep",description:"Become a SanchoNet DRep",source:"@site/docs/roles/drep.mdx",sourceDirName:"roles",slug:"/roles/drep",permalink:"/roles/drep",draft:!1,editUrl:"https://github.com/input-output-hk/sanchonet/tree/master/docs/roles/drep.mdx",tags:[],version:"current",sidebarPosition:3,frontMatter:{description:"Become a SanchoNet DRep",title:"DRep",sidebar_position:3},sidebar:"docsSidebar",previous:{title:"SPO",permalink:"/roles/spo"},next:{title:"Developers",permalink:"/roles/dev"}},c={},l=[{value:"Becoming a DRep",id:"becoming-a-drep",level:2}],p={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"delegate-representatives-dreps"},"Delegate representatives (DReps)"),(0,o.kt)("p",null,"A DRep serves as the community's spokesperson, actively participating in voting on governance actions and advocating for the community's collective interests."),(0,o.kt)("h2",{id:"becoming-a-drep"},"Becoming a DRep"),(0,o.kt)("p",null,"As Cardano prepares for the Conway era, community participation becomes vital for its success. A meaningful way to contribute is by becoming a DRep and playing a key role in shaping Cardano's future."),(0,o.kt)("p",null,"DReps hold significant responsibilities in the governance process, voting on important system updates. Approval depends on the governance action type and requires a majority vote from the corresponding governance bodies (SPOs, the constitutional committee, and DReps)."),(0,o.kt)("p",null,"As a DRep, you'll have the power to vote 'yes,' 'no,' or 'abstain' on governance actions proposing changes to protocol parameters. Your vote represents the ada holders' collective voice, making your role crucial in Cardano's decentralized decision-making."),(0,o.kt)("p",null,"To become a DRep, follow these steps:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Download the latest version of ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/releases"},"cardano-node")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("a",{parentName:"li",href:"/tutorials/start-node"},"Run the node")),(0,o.kt)("li",{parentName:"ol"},"Request funds from the ",(0,o.kt)("a",{parentName:"li",href:"/faucet"},"faucet")),(0,o.kt)("li",{parentName:"ol"},"Register as a DRep with an on-chain registration certificate"),(0,o.kt)("li",{parentName:"ol"},"Initially, on SanchoNet, use tools like Discord to identify governance actions requiring your attention and vote"),(0,o.kt)("li",{parentName:"ol"},"Engage in discussions with other DReps to assess the merits of active governance actions"),(0,o.kt)("li",{parentName:"ol"},"Cast your votes using Cardano CLI or other voting tools as they become available in the community"),(0,o.kt)("li",{parentName:"ol"},"When submitting your votes, include reasoning for your vote and an anchor (URL and hash).")),(0,o.kt)("p",null,"Stay tuned for comprehensive tutorials that will be provided upon the release of new features. You might be also asked to conduct specific tests from participants on SanchoNet, highlighting the importance of your active involvement."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a0482dd.68e2db62.js b/assets/js/5a0482dd.6e71fd4b.js similarity index 72% rename from assets/js/5a0482dd.68e2db62.js rename to assets/js/5a0482dd.6e71fd4b.js index 46290d3f..181eb4d4 100644 --- a/assets/js/5a0482dd.68e2db62.js +++ b/assets/js/5a0482dd.6e71fd4b.js @@ -1 +1 @@ -"use strict";(self.webpackChunksanchonet=self.webpackChunksanchonet||[]).push([[1818],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),c=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},v=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),v=r,f=u["".concat(s,".").concat(v)]||u[v]||d[v]||a;return n?o.createElement(f,l(l({ref:t},p),{},{components:n})):o.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,l=new Array(a);l[0]=v;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var o=n(7462),r=(n(7294),n(3905));const a={description:"Develop on SanchoNet",title:"Developers",sidebar_position:4},l="Developers",i={unversionedId:"roles/dev",id:"roles/dev",title:"Developers",description:"Develop on SanchoNet",source:"@site/docs/roles/dev.mdx",sourceDirName:"roles",slug:"/roles/dev",permalink:"/roles/dev",draft:!1,editUrl:"https://github.com/input-output-hk/sanchonet/tree/master/docs/roles/dev.mdx",tags:[],version:"current",sidebarPosition:4,frontMatter:{description:"Develop on SanchoNet",title:"Developers",sidebar_position:4},sidebar:"docsSidebar",previous:{title:"DRep",permalink:"/roles/drep"},next:{title:"Overview",permalink:"/actions"}},s={},c=[{value:"Develop on SanchoNet",id:"develop-on-sanchonet",level:2},{value:"Community tooling",id:"community-tooling",level:2},{value:"Wallets",id:"wallets",level:3},{value:"Explorers",id:"explorers",level:3},{value:"Voting centers",id:"voting-centers",level:3}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"developers"},"Developers"),(0,r.kt)("p",null,"A SanchoNet developer is an individual skilled in blockchain technology and programming, with a passion for contributing to the evolution of Cardano's governance future."),(0,r.kt)("h2",{id:"develop-on-sanchonet"},"Develop on SanchoNet"),(0,r.kt)("p",null,"To interact with SanchoNet as a developer, you will need to:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Download the node ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/releases/tag/8.11.0-sancho"},"v8.11.0-sancho")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("a",{parentName:"li",href:"/tutorials/start-node"},"Run the node")),(0,r.kt)("li",{parentName:"ol"},"Request funds from the ",(0,r.kt)("a",{parentName:"li",href:"/faucet"},"faucet")),(0,r.kt)("li",{parentName:"ol"},"Build a cool tool to integrate with SanchoNet"),(0,r.kt)("li",{parentName:"ol"},"Publish it to the community.")),(0,r.kt)("h2",{id:"community-tooling"},"Community tooling"),(0,r.kt)("h3",{id:"wallets"},"Wallets"),(0,r.kt)("p",null,"Wallets are websites or applications that convert a mnemonic into a user-friendly interface for sending and receiving ada. Below is a list of all the wallets currently available on SanchoNet:"),(0,r.kt)("h3",{id:"explorers"},"Explorers"),(0,r.kt)("p",null,"Explorers allow you to visualize blockchain data. Some are web-based, while others are generic APIs. Below is a list of the current explorers available on SanchoNet:"),(0,r.kt)("h3",{id:"voting-centers"},"Voting centers"),(0,r.kt)("p",null,"Voting centers enable interaction with the chain for viewing and voting on specific proposals. They can also integrate with wallets to facilitate delegation to DReps and submission of transactions to wallets."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunksanchonet=self.webpackChunksanchonet||[]).push([[1818],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),c=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},v=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),v=r,f=u["".concat(s,".").concat(v)]||u[v]||d[v]||a;return n?o.createElement(f,l(l({ref:t},p),{},{components:n})):o.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,l=new Array(a);l[0]=v;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var o=n(7462),r=(n(7294),n(3905));const a={description:"Develop on SanchoNet",title:"Developers",sidebar_position:4},l="Developers",i={unversionedId:"roles/dev",id:"roles/dev",title:"Developers",description:"Develop on SanchoNet",source:"@site/docs/roles/dev.mdx",sourceDirName:"roles",slug:"/roles/dev",permalink:"/roles/dev",draft:!1,editUrl:"https://github.com/input-output-hk/sanchonet/tree/master/docs/roles/dev.mdx",tags:[],version:"current",sidebarPosition:4,frontMatter:{description:"Develop on SanchoNet",title:"Developers",sidebar_position:4},sidebar:"docsSidebar",previous:{title:"DRep",permalink:"/roles/drep"},next:{title:"Overview",permalink:"/actions"}},s={},c=[{value:"Develop on SanchoNet",id:"develop-on-sanchonet",level:2},{value:"Community tooling",id:"community-tooling",level:2},{value:"Wallets",id:"wallets",level:3},{value:"Explorers",id:"explorers",level:3},{value:"Voting centers",id:"voting-centers",level:3}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"developers"},"Developers"),(0,r.kt)("p",null,"A SanchoNet developer is an individual skilled in blockchain technology and programming, with a passion for contributing to the evolution of Cardano's governance future."),(0,r.kt)("h2",{id:"develop-on-sanchonet"},"Develop on SanchoNet"),(0,r.kt)("p",null,"To interact with SanchoNet as a developer, you will need to:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Download the latest version of ","[cardano-node]"," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/IntersectMBO/cardano-node/releases"},"https://github.com/IntersectMBO/cardano-node/releases"),")"),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("a",{parentName:"li",href:"/tutorials/start-node"},"Run the node")),(0,r.kt)("li",{parentName:"ol"},"Request funds from the ",(0,r.kt)("a",{parentName:"li",href:"/faucet"},"faucet")),(0,r.kt)("li",{parentName:"ol"},"Build a cool tool to integrate with SanchoNet"),(0,r.kt)("li",{parentName:"ol"},"Publish it to the community.")),(0,r.kt)("h2",{id:"community-tooling"},"Community tooling"),(0,r.kt)("h3",{id:"wallets"},"Wallets"),(0,r.kt)("p",null,"Wallets are websites or applications that convert a mnemonic into a user-friendly interface for sending and receiving ada. Below is a list of all the wallets currently available on SanchoNet:"),(0,r.kt)("h3",{id:"explorers"},"Explorers"),(0,r.kt)("p",null,"Explorers allow you to visualize blockchain data. Some are web-based, while others are generic APIs. Below is a list of the current explorers available on SanchoNet:"),(0,r.kt)("h3",{id:"voting-centers"},"Voting centers"),(0,r.kt)("p",null,"Voting centers enable interaction with the chain for viewing and voting on specific proposals. They can also integrate with wallets to facilitate delegation to DReps and submission of transactions to wallets."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.9d5e8448.js b/assets/js/runtime~main.b1cdf1ef.js similarity index 67% rename from assets/js/runtime~main.9d5e8448.js rename to assets/js/runtime~main.b1cdf1ef.js index 8851ef70..24a60dd4 100644 --- a/assets/js/runtime~main.9d5e8448.js +++ b/assets/js/runtime~main.b1cdf1ef.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,t,f,r,d={},c={};function b(e){var a=c[e];if(void 0!==a)return a.exports;var t=c[e]={exports:{}};return d[e].call(t.exports,t,t.exports,b),t.exports}b.m=d,e=[],b.O=(a,t,f,r)=>{if(!t){var d=1/0;for(i=0;i=r)&&Object.keys(b.O).every((e=>b.O[e](t[o])))?t.splice(o--,1):(c=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[t,f,r]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var r=Object.create(null);b.r(r);var d={};a=a||[null,t({}),t([]),t(t)];for(var c=2&f&&e;"object"==typeof c&&!~a.indexOf(c);c=t(c))Object.getOwnPropertyNames(c).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,b.d(r,d),r},b.d=(e,a)=>{for(var t in a)b.o(a,t)&&!b.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce(((a,t)=>(b.f[t](e,a),a)),[])),b.u=e=>"assets/js/"+({53:"935f2afb",86:"49ac7784",787:"eeefc164",1002:"5449755a",1032:"5886ee98",1263:"08d3f7f3",1416:"bbada698",1447:"d0d6894e",1665:"7b180da0",1818:"5a0482dd",2398:"86c5ba96",3085:"1f391b9e",3152:"abd7a278",3237:"1df93b7f",3255:"1521a28c",3462:"b0064c08",3513:"43b2bb3c",3584:"11bb5b53",3705:"038ebd0e",3900:"d27e288b",3945:"368b6ce8",5281:"2db78e6c",5548:"09b98730",5552:"aaae1da2",6169:"6c8bebe0",6589:"6fddf1e9",7133:"d2fa3de5",7161:"98e22efe",7173:"3838c1a1",7356:"27cf304e",7661:"069f00c3",7750:"bbe4f477",7918:"17896441",8113:"98762162",8260:"4c4f17cf",8464:"a18a7492",8512:"354cfeef",8584:"cb4ed82a",8595:"36246993",8780:"6d06420b",8913:"59f459cf",8958:"1fdfc5da",9242:"04a456b0",9411:"846aba67",9514:"1be78505",9702:"ce2e39ce",9722:"0852ae7f",9895:"c9f32de9"}[e]||e)+"."+{53:"cf533f98",86:"a165cb01",787:"a3383c2d",814:"d565f12f",1002:"0cff125d",1032:"9285bfeb",1263:"cca63212",1416:"7879c6a7",1447:"5c7b4c9f",1665:"4f28c8cb",1818:"68e2db62",2398:"4dbf49ef",3085:"4d8b27b7",3152:"05ecb479",3237:"17b3f3ed",3255:"176f5e66",3462:"602632d2",3473:"8e63b3c2",3513:"4a221b56",3584:"76eee070",3705:"b0d4b2bd",3900:"8e0fbc63",3945:"763a6ebb",3987:"613c2d28",4044:"d0540945",4972:"89c2297b",5281:"a05f81b6",5548:"17ea181e",5552:"d995a92a",6169:"43a6ee8c",6589:"fdef056a",7133:"956b771f",7161:"85042b63",7173:"99f1919b",7356:"c2a37a72",7661:"f8c8a83a",7750:"4c4cdf35",7918:"e2e4dd0a",8113:"b1ee709e",8260:"3d9303ef",8464:"443548ef",8512:"797c221b",8584:"5885c64c",8595:"908aa892",8780:"66fc6e2f",8913:"beb44d9f",8958:"524ba92c",9242:"07e4fa74",9411:"c6a1af20",9514:"53ec33ec",9702:"9a42bb6e",9722:"44f85b94",9895:"9b9ecb4c"}[e]+".js",b.miniCssF=e=>{},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},r="sanchonet:",b.l=(e,a,t,d)=>{if(f[e])f[e].push(a);else{var c,o;if(void 0!==t)for(var n=document.getElementsByTagName("script"),i=0;i{c.onerror=c.onload=null,clearTimeout(s);var r=f[e];if(delete f[e],c.parentNode&&c.parentNode.removeChild(c),r&&r.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),o&&document.head.appendChild(c)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/",b.gca=function(e){return e={17896441:"7918",36246993:"8595",98762162:"8113","935f2afb":"53","49ac7784":"86",eeefc164:"787","5449755a":"1002","5886ee98":"1032","08d3f7f3":"1263",bbada698:"1416",d0d6894e:"1447","7b180da0":"1665","5a0482dd":"1818","86c5ba96":"2398","1f391b9e":"3085",abd7a278:"3152","1df93b7f":"3237","1521a28c":"3255",b0064c08:"3462","43b2bb3c":"3513","11bb5b53":"3584","038ebd0e":"3705",d27e288b:"3900","368b6ce8":"3945","2db78e6c":"5281","09b98730":"5548",aaae1da2:"5552","6c8bebe0":"6169","6fddf1e9":"6589",d2fa3de5:"7133","98e22efe":"7161","3838c1a1":"7173","27cf304e":"7356","069f00c3":"7661",bbe4f477:"7750","4c4f17cf":"8260",a18a7492:"8464","354cfeef":"8512",cb4ed82a:"8584","6d06420b":"8780","59f459cf":"8913","1fdfc5da":"8958","04a456b0":"9242","846aba67":"9411","1be78505":"9514",ce2e39ce:"9702","0852ae7f":"9722",c9f32de9:"9895"}[e]||e,b.p+b.u(e)},(()=>{var e={1303:0,532:0};b.f.j=(a,t)=>{var f=b.o(e,a)?e[a]:void 0;if(0!==f)if(f)t.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var r=new Promise(((t,r)=>f=e[a]=[t,r]));t.push(f[2]=r);var d=b.p+b.u(a),c=new Error;b.l(d,(t=>{if(b.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var r=t&&("load"===t.type?"missing":t.type),d=t&&t.target&&t.target.src;c.message="Loading chunk "+a+" failed.\n("+r+": "+d+")",c.name="ChunkLoadError",c.type=r,c.request=d,f[1](c)}}),"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,t)=>{var f,r,d=t[0],c=t[1],o=t[2],n=0;if(d.some((a=>0!==e[a]))){for(f in c)b.o(c,f)&&(b.m[f]=c[f]);if(o)var i=o(b)}for(a&&a(t);n{"use strict";var e,a,t,f,r,c={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={exports:{}};return c[e].call(t.exports,t,t.exports,b),t.exports}b.m=c,e=[],b.O=(a,t,f,r)=>{if(!t){var c=1/0;for(i=0;i=r)&&Object.keys(b.O).every((e=>b.O[e](t[o])))?t.splice(o--,1):(d=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[t,f,r]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var r=Object.create(null);b.r(r);var c={};a=a||[null,t({}),t([]),t(t)];for(var d=2&f&&e;"object"==typeof d&&!~a.indexOf(d);d=t(d))Object.getOwnPropertyNames(d).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,b.d(r,c),r},b.d=(e,a)=>{for(var t in a)b.o(a,t)&&!b.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce(((a,t)=>(b.f[t](e,a),a)),[])),b.u=e=>"assets/js/"+({53:"935f2afb",86:"49ac7784",787:"eeefc164",1002:"5449755a",1032:"5886ee98",1263:"08d3f7f3",1416:"bbada698",1447:"d0d6894e",1665:"7b180da0",1818:"5a0482dd",2398:"86c5ba96",3085:"1f391b9e",3152:"abd7a278",3237:"1df93b7f",3255:"1521a28c",3462:"b0064c08",3513:"43b2bb3c",3584:"11bb5b53",3705:"038ebd0e",3900:"d27e288b",3945:"368b6ce8",5281:"2db78e6c",5548:"09b98730",5552:"aaae1da2",6169:"6c8bebe0",6589:"6fddf1e9",7133:"d2fa3de5",7161:"98e22efe",7173:"3838c1a1",7356:"27cf304e",7661:"069f00c3",7750:"bbe4f477",7918:"17896441",8113:"98762162",8260:"4c4f17cf",8464:"a18a7492",8512:"354cfeef",8584:"cb4ed82a",8595:"36246993",8780:"6d06420b",8913:"59f459cf",8958:"1fdfc5da",9242:"04a456b0",9411:"846aba67",9514:"1be78505",9702:"ce2e39ce",9722:"0852ae7f",9895:"c9f32de9"}[e]||e)+"."+{53:"cf533f98",86:"81708874",787:"a3383c2d",814:"d565f12f",1002:"0cff125d",1032:"9285bfeb",1263:"cca63212",1416:"7879c6a7",1447:"5c7b4c9f",1665:"4f28c8cb",1818:"6e71fd4b",2398:"4dbf49ef",3085:"4d8b27b7",3152:"05ecb479",3237:"17b3f3ed",3255:"176f5e66",3462:"602632d2",3473:"8e63b3c2",3513:"4a221b56",3584:"76eee070",3705:"b0d4b2bd",3900:"8e0fbc63",3945:"763a6ebb",3987:"613c2d28",4044:"d0540945",4972:"89c2297b",5281:"a05f81b6",5548:"17ea181e",5552:"d995a92a",6169:"43a6ee8c",6589:"fdef056a",7133:"956b771f",7161:"85042b63",7173:"99f1919b",7356:"c2a37a72",7661:"f8c8a83a",7750:"4c4cdf35",7918:"e2e4dd0a",8113:"b1ee709e",8260:"3d9303ef",8464:"443548ef",8512:"84ba97b4",8584:"5885c64c",8595:"908aa892",8780:"66fc6e2f",8913:"beb44d9f",8958:"524ba92c",9242:"07e4fa74",9411:"c6a1af20",9514:"53ec33ec",9702:"9a42bb6e",9722:"44f85b94",9895:"9b9ecb4c"}[e]+".js",b.miniCssF=e=>{},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},r="sanchonet:",b.l=(e,a,t,c)=>{if(f[e])f[e].push(a);else{var d,o;if(void 0!==t)for(var n=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(s);var r=f[e];if(delete f[e],d.parentNode&&d.parentNode.removeChild(d),r&&r.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=l.bind(null,d.onerror),d.onload=l.bind(null,d.onload),o&&document.head.appendChild(d)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/",b.gca=function(e){return e={17896441:"7918",36246993:"8595",98762162:"8113","935f2afb":"53","49ac7784":"86",eeefc164:"787","5449755a":"1002","5886ee98":"1032","08d3f7f3":"1263",bbada698:"1416",d0d6894e:"1447","7b180da0":"1665","5a0482dd":"1818","86c5ba96":"2398","1f391b9e":"3085",abd7a278:"3152","1df93b7f":"3237","1521a28c":"3255",b0064c08:"3462","43b2bb3c":"3513","11bb5b53":"3584","038ebd0e":"3705",d27e288b:"3900","368b6ce8":"3945","2db78e6c":"5281","09b98730":"5548",aaae1da2:"5552","6c8bebe0":"6169","6fddf1e9":"6589",d2fa3de5:"7133","98e22efe":"7161","3838c1a1":"7173","27cf304e":"7356","069f00c3":"7661",bbe4f477:"7750","4c4f17cf":"8260",a18a7492:"8464","354cfeef":"8512",cb4ed82a:"8584","6d06420b":"8780","59f459cf":"8913","1fdfc5da":"8958","04a456b0":"9242","846aba67":"9411","1be78505":"9514",ce2e39ce:"9702","0852ae7f":"9722",c9f32de9:"9895"}[e]||e,b.p+b.u(e)},(()=>{var e={1303:0,532:0};b.f.j=(a,t)=>{var f=b.o(e,a)?e[a]:void 0;if(0!==f)if(f)t.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var r=new Promise(((t,r)=>f=e[a]=[t,r]));t.push(f[2]=r);var c=b.p+b.u(a),d=new Error;b.l(c,(t=>{if(b.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+a+" failed.\n("+r+": "+c+")",d.name="ChunkLoadError",d.type=r,d.request=c,f[1](d)}}),"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,t)=>{var f,r,c=t[0],d=t[1],o=t[2],n=0;if(c.some((a=>0!==e[a]))){for(f in d)b.o(d,f)&&(b.m[f]=d[f]);if(o)var i=o(b)}for(a&&a(t);n Disclaimer | SanchoNet - + @@ -20,7 +20,7 @@ You are responsible for compliance with U.S. and local country export/import laws and regulations.

The software may not be exported/reexported, either directly or indirectly, to any destination subject to U.S. embargoes or trade sanctions unless formally authorized by the U.S. Government. The embargoed destinations are subject to change and the scope of what is included in the embargo is specific to each embargoed country. For the most current information on U.S. embargoed and sanctioned countries, see the Treasury Department regulations.

- + \ No newline at end of file diff --git a/drep-pioneer-program/drep-pp/lesson-plan/index.html b/drep-pioneer-program/drep-pp/lesson-plan/index.html index 5faf0f93..ff32c325 100644 --- a/drep-pioneer-program/drep-pp/lesson-plan/index.html +++ b/drep-pioneer-program/drep-pp/lesson-plan/index.html @@ -4,13 +4,13 @@ DRep Pioneer Program Lesson Plan | SanchoNet - +

DRep Pioneer Program Lesson Plan

Proposed Schedule

This lesson contains 12 activities covering all the DRep program content. In addition to these activities, instructors should consider breaks throughout the day according to the local culture and manners, such as lunchtime and refreshments that can be offered in the training session.

The following table shows a proposed schedule for a typical training session, with lunchtime around 1:00 p.m. Feel free to adapt the schedule and activity timing accordingly to your audience and local culture.

Lesson Plan Activities

- + \ No newline at end of file diff --git a/drep-pioneer-program/drep-pp/lp-wrapup.mdx/index.html b/drep-pioneer-program/drep-pp/lp-wrapup.mdx/index.html index 99854204..5ab6e290 100644 --- a/drep-pioneer-program/drep-pp/lp-wrapup.mdx/index.html +++ b/drep-pioneer-program/drep-pp/lp-wrapup.mdx/index.html @@ -4,13 +4,13 @@ DRep Pioneer Program Lesson Plan | SanchoNet - +

DRep Pioneer Program Lesson Plan

Closing Activity and Wrap Up

Activity 12: Conclusions and Further Steps (20 min)

This final activity aims to allow participants to reflect on their learning and consolidate key takeaways from the training day.

You can follow the next steps to conduct a final wrap-up activity:

  1. Recap the main topics covered throughout the training day, highlighting key concepts and insights related to Cardano Governance design, Governance Roles, and the process of becoming a DRep.
  2. Divide participants into small groups, ensuring a mix of individuals with varying familiarity with the subject matter.
  3. Distribute sticky notes and markers to each group. Use breakout rooms and a shared board with notes like Miro, Ideaflip, or Mural in an online training session.
  4. Prompt participants to reflect individually on the following questions:
    • What was the most valuable insight or concept you learned today?
    • How do you plan to apply this knowledge in your role as a DRep or within your organization?
    • Is there any aspect of the training you would like to explore or have additional questions about?
  5. Encourage participants to write their responses on sticky notes (or a shared board in online sessions), capturing each response on a separate note.
  6. Once participants have had time to reflect individually, reconvene as a whole group.
  7. Invite each group to share their reflections by sticking their notes on the whiteboard or flipchart under the corresponding question.
  8. Facilitate a discussion around the shared reflections, allowing participants to elaborate on their responses and engage in dialogue with one another.
  9. Summarize the main themes and insights from the discussion, highlighting any common challenges, opportunities, or areas of interest.

Close the session by expressing appreciation for participants' active participation and contributions throughout the training day. Reinforce the importance of ongoing learning and collaboration in the context of Cardano Governance.

- + \ No newline at end of file diff --git a/drep-pioneer-program/drep-pp/module-1/index.html b/drep-pioneer-program/drep-pp/module-1/index.html index 1ca2191d..d5e4aa05 100644 --- a/drep-pioneer-program/drep-pp/module-1/index.html +++ b/drep-pioneer-program/drep-pp/module-1/index.html @@ -4,13 +4,13 @@ DRep Pioneer Program Lesson Plan | SanchoNet - +

DRep Pioneer Program Lesson Plan

Module 1: Cardano’s Governance and Roles

Activity 4: Cardano’s On-Chain Governance Design (40 min)

In this activity, participants will learn about the on-chain governance design, focusing on how the governance system is described on CIP-1694.

Open the training slides, navigate to the Module 1 section, and highlight the following talking points:

  • During Module 1, you will understand the key aspects of Cardano's on-chain governance design.
  • You will gain deep insight into the expectations and responsibilities of the DRep role and understand the relevance of delegation.

Continue to the “Cardano’s On-Chain Governance Design” section and explain the three pillars of Cardano's governance in the age of Voltaire:

  1. Institutions
  2. Constitutional representation
  3. Democratic consent

At this point, highlight the importance of reading CIP-1694 to understand better the proposed governance system for Cardano, which will allow on-chain decision-making.

Continue with the lesson and introduce the five governance roles:

  1. Delegate Representative (DRep)
  2. Stake Pool Operator (SPO)
  3. Constitutional Committee (CC)
  4. Delegating ada Holders
  5. Non-Delegating ada Holders

Understanding these roles may be challenging. A suggested approach to allowing participants a more profound understanding is to use the “students-produced question” approach. Asking questions is challenging, and participants can do deep thinking and learning by developing questions (Franke et al., 2009). Instead of asking participants questions about the roles to check if they understand them, encourage them to read the definitions and formulate their own questions about each role. This practice engages participants' working and long-term memory (Arnold, 1984).

After presenting the governance roles, briefly describe the processes attained to each role. Point out that the support tools for each role will be explained later.

Finally, explain the overall governance action enactment process. Recall that CIP-1694 describes seven types of governance actions that can be proposed by ada holders and voted by the governance roles with voting rights (DRep, SPO, and CC member).

As a proposed engagement strategy, you can create groups representing each role with voting rights and simulate voting under different scenarios using flashcards or sticky notes to record votes.

Ensure there are no pending questions before moving on to the next activity.

Activity 5: The DRep Role (20 min)

In this activity, participants will review the definition of the DRep role. Jump to “The DRep Role” section in the training slides and discuss the responsibilities and expectations of a DRep. Point out the importance of a DRep as the collective voice of the ada holders that a DRep represents.

To better understand the DRep role, facilitate a discussion between the participants by asking the following questions:

  1. How would you describe the DRep to a newcomer to Cardano?
  2. What are the main challenges a DRep can face?
  3. As a DRep, how would you deal with a conflict of interest when voting on a governance action?

There are no right or wrong answers to these questions; they are intended to foster collaboration between participants. Feel free to add or modify questions at your discretion.

Ensure there are no pending questions before moving on to the next activity.

Activity 6: Understanding Delegation (20 min)

In this activity, participants will learn about the importance of delegation and how it works. Move into the “Understanding Delegation” section on the training slides and start by fostering a critical thinking dialogue between the participants using The Socratic Method.

This method involves a shared dialogue between teacher and students in a classroom setup. The teacher leads by posing thought-provoking questions. Students actively engage by asking questions of their own. The discussion goes back and forth.

You can start the discussion by posing questions, such as:

  • What do you understand as “delegation” in Cardano’s ecosystem context?
  • Are you familiar with delegation outside of Cardano’s ecosystem?

There are no right or wrong answers. The idea is to check participants' pulse around the meaning of delegation to set a baseline before explaining why delegation is important in the context of Cardano’s Governance.

Explain why delegation is necessary and how it is used in several liquid democracy applications.

Next, under the context of delegating voting rights to DReps, check participants' pulse on the following questions:

  • Why not direct voting instead of delegation?
  • Does delegation help?

Figure out scenarios that can illustrate the rationing proposed in the slides.

When the discussion ends, ensure there are no pending questions before moving on to the next activity.

- + \ No newline at end of file diff --git a/drep-pioneer-program/drep-pp/module-2/index.html b/drep-pioneer-program/drep-pp/module-2/index.html index 72377878..a7f78f6f 100644 --- a/drep-pioneer-program/drep-pp/module-2/index.html +++ b/drep-pioneer-program/drep-pp/module-2/index.html @@ -4,13 +4,13 @@ DRep Pioneer Program Lesson Plan | SanchoNet - +

DRep Pioneer Program Lesson Plan

Module 2: DRep Code of Conduct

Activity 7: Navigating the Code of Conduct (60 min)

This activity focuses on understanding the DRep’s code of conduct to understand the ethical principles and behavioral expectations outlined in the Code of Conduct for DReps, focusing on guarding against malicious behavior.

For this activity, explain to participants that they will work in groups to analyze and discuss the code of conduct.

Divide participants into small groups of 3-5 members each and provide participants access to the DRep Code of Conduct. In an online session, you can create groups using breakout rooms in Google Meet or Zoom. Also, if you are conducting an in-person session, you can provide paper copies of this document.

Before having the groups discuss the code of conduct, explain the following instructions:

  1. Explain the objective of the activity: to analyze the Code of Conduct and identify fundamental ethical principles and behavioral expectations that guard against malicious behavior from DReps.
  2. Allocate 15 minutes for each group to read the Code of Conduct and discuss its contents. Encourage participants to highlight any sections that they find particularly relevant to prevent malicious behavior.
  3. After the reading period, provide each group with flipchart paper and markers. You can use a shared online document, such as Google Docs, for online sessions.
  4. Instruct groups to visually represent the fundamental ethical principles and behavioral expectations identified in the Code of Conduct. They can use diagrams, charts, or illustrations to depict these concepts.
  5. Encourage groups to discuss and debate their interpretations of the Code of Conduct, considering different perspectives and potential scenarios where ethical principles may be tested.
  6. Allocate 20 minutes for groups to work on their visual representations.
  7. After the allotted time, ask each group to present their visual representation to the rest of the class. Allow time for questions and discussion following each presentation.
  8. Facilitate a whole-group discussion on the insights gained from the activity. Prompt participants to reflect on the importance of ethical behavior in preventing malicious actions by DReps and how the Code of Conduct serves as a guide for upholding these standards.
  9. Conclude the activity by emphasizing the role of DReps in promoting a culture of integrity and accountability.

Thank participants for their engagement and participation in the activity. Before proceeding to the next activity, ensure there are no pending questions.

- + \ No newline at end of file diff --git a/drep-pioneer-program/drep-pp/module-3/index.html b/drep-pioneer-program/drep-pp/module-3/index.html index 085e6532..8a004958 100644 --- a/drep-pioneer-program/drep-pp/module-3/index.html +++ b/drep-pioneer-program/drep-pp/module-3/index.html @@ -4,13 +4,13 @@ DRep Pioneer Program Lesson Plan | SanchoNet - +

DRep Pioneer Program Lesson Plan

Module 3: Reward Schemes for DReps

Activity 8: Reflecting on DReps Compensation (40 min)

This activity focuses on discussing with participants if DReps should be compensated for their collaboration. Compensation for DReps is still an ongoing debate, so having insights from participants will enrich the rationale behind compensation.

Start by presenting the proposed reward schemes to the participants using the training slides that outline the different reward structures, incentives, and criteria for DReps. Ensure that the presentation is clear, concise, and easy to understand.

Divide participants into small groups, ideally consisting of diverse perspectives and backgrounds. Each group should be allowed to discuss the proposed reward schemes amongst themselves. Encourage participants to consider each scheme's potential benefits and drawbacks and any concerns or questions they may have. You can slot 10 to 15 minutes for this discussion.

After the group discussions, reconvene as a whole group for a structured feedback session. Each group can designate a spokesperson to summarize their discussion and present feedback on the proposed reward schemes. Facilitate a discussion where participants can share their insights, ask questions, and provide constructive feedback.

Document the participants' feedback during the session and ensure that it is compiled and shared with relevant stakeholders for consideration. Consider organizing follow-up sessions or opportunities for further discussion to address any outstanding questions or concerns raised by participants.

Thank participants for their engagement and participation in the activity. Before proceeding to the next activity, ensure there are no pending questions.

Activity 9: DRep Reward Schemes (40 min)

This activity focuses on explaining three variants of reward schemes. Similar to the previous activity, present the three variations of reward schemes and divide participants into small discussion groups. You can slot 20 minutes for discussion.

Following the group discussions, gather the entire group for a structured feedback session. Each group should nominate a spokesperson to recap their conversation and offer feedback on the proposed variants for reward schemes. Encourage an open discussion where participants exchange insights, pose inquiries, and provide constructive input.

Record the feedback provided by participants during the session, ensuring it is consolidated and distributed to pertinent stakeholders for review.

Congratulate participants for their active engagement in the activity. Ensure all questions have been addressed comprehensively before transitioning to the next segment.

- + \ No newline at end of file diff --git a/drep-pioneer-program/drep-pp/module-4/index.html b/drep-pioneer-program/drep-pp/module-4/index.html index 95c51b5a..1770cf21 100644 --- a/drep-pioneer-program/drep-pp/module-4/index.html +++ b/drep-pioneer-program/drep-pp/module-4/index.html @@ -4,13 +4,13 @@ DRep Pioneer Program Lesson Plan | SanchoNet - +

DRep Pioneer Program Lesson Plan

Module 4: Joining the DReps Ecosystem

Activity 10: How to Become a DRep (60 min)

This is a hands-on activity in which participants will learn how to become a DRep through a demonstration.

As an instructor, you will lead participants using the GovTool to follow the required steps to join as a DRep.

The GovTool is currently being updated, so stay tuned for updates on this activity to learn more about conducting the demonstration.

Activity 11: Engaging with the Community as a DRep (15 min)

Communication is crucial to becoming an impactful DRep, so in this activity, participants will learn the available communication channels and tools that DReps can use to engage with the Cardano Community.

In this section, showcase the current channels and tools available:

  • GovTool
  • DRep Campaign Platform
  • Cardano Forum
  • Social Media

Ensure participants understand how to use these resources before continuing to the next activity.

- + \ No newline at end of file diff --git a/drep-pioneer-program/drep-pp/overview/index.html b/drep-pioneer-program/drep-pp/overview/index.html index 8d9982f3..de443e91 100644 --- a/drep-pioneer-program/drep-pp/overview/index.html +++ b/drep-pioneer-program/drep-pp/overview/index.html @@ -4,7 +4,7 @@ DRep Pioneer Program | SanchoNet - + @@ -14,7 +14,7 @@ participate in the new governance role - DRep.

A major goal of this initiative is to develop a continuous learning program that will support the first cohort of DReps’ to be able to effectively perform their role in Cardano’s proposed governance design.

A further goal of the program is to create materials that can be used ‘standalone’ independent from the training courses, so that a potential DRep can train themselves on what is required in an intuitive and clear way.

- + \ No newline at end of file diff --git a/drep-pioneer-program/drep-pp/prelude-and-intro/index.html b/drep-pioneer-program/drep-pp/prelude-and-intro/index.html index be987df6..87dac056 100644 --- a/drep-pioneer-program/drep-pp/prelude-and-intro/index.html +++ b/drep-pioneer-program/drep-pp/prelude-and-intro/index.html @@ -4,13 +4,13 @@ DRep Pioneer Program Lesson Plan | SanchoNet - +

DRep Pioneer Program Lesson Plan

Prelude and Introductions

Activity 1: Welcome Participants (15 min)

Welcome participants to the DRep Training; congratulate them for the decision to learn more about the DRep ecosystem and how they can become a DRep to participate in and vote in Cardano’s governance.

Use this time to introduce yourself and share your motivation to become a DRep. If time permits, conduct an ice-breaking activity to allow participants to introduce themselves. You can use the “popcorn” approach, where the last person to participate selects the next teammate to introduce themselves.

Keep introductions plain and straightforward by encouraging participants to answer two or three questions, such as:

  1. What is your name?
  2. How long have you been in the Cardano Community?
  3. Why do you want to become a DRep?

The “popcorn” approach is a double-edged sword; however, it makes the meeting more democratic, with each team member selecting their successor. However, it can also make people feel awkward if they are unfamiliar with one another. If the introductions get stuck, act as a facilitator.

Be sure everyone introduces themselves before moving forward to the next activity.

Activity 2: DRep Training Program Overview (15 min)

Use the session schedule to present an overview of the content you will cover during the day; avoid getting into the details to prevent additional time spent. Use the training slides to present the learning outcomes and encourage participants to ask questions during the session.

Depending on your training type, in-person or online training, explain the session logistics for breaks and any relevant information.

Ask any questions before moving on to the next activity.

Activity 3: Key Terms (15 min)

For this activity, use the glossary in the training slides to present the key terms that participants should acknowledge to understand the forthcoming activities better.

To make this activity more engaging, you can conduct trivia to ask participants if they know the definition of every concept in the glossary. You can use slides or an online tool like Kahoot or TriviaMaker.

Ensure the terms are clear for participants before moving on to the next activity.

- + \ No newline at end of file diff --git a/drep-pioneer-program/drep-pp/requirements/index.html b/drep-pioneer-program/drep-pp/requirements/index.html index 18ccfddb..a060e6b2 100644 --- a/drep-pioneer-program/drep-pp/requirements/index.html +++ b/drep-pioneer-program/drep-pp/requirements/index.html @@ -4,13 +4,13 @@ Participation Requirements | SanchoNet - +

Participation Requirements

Participants Requirements

All participants should hold ada to participate as DReps. Participation in this training does not ensure that participants will be accepted as DReps by the Cardano community.

Participants Preliminary Knowledge

To successfully complete this training, participants should:

  • Understand how the Cardano blockchain works.
  • Be familiar with Cardano wallets and how they work.

Participants Preparation

To participate in the training, participants should have the following:

  • Any of the following web browsers: Google Chrome, Brave, or Microsoft Edge.
  • A CIP-95 capable wallet with an active address. The list of compatible wallets can be found here.
  • A reliable internet connection, if you are attending the DRep training online.

Instructor Requirements

All instructors should have participated in the DRep Pioneers Programs and completed the corresponding training. All instructors are required to join as DReps in the Cardano Governance structure.

Instructor Preparation

This training is designed as a six-hour course that can be offered online or in person. Instructors should consider additional time for breaks and meals.

General Considerations

Regardless of the type of training, online or in person, we encourage you to consider the following:

  • Promote the training session on your social media, write a blog post on your personal or professional website, or contribute to Essential Cardano; you can learn more about it at this link.
  • When promoting your training session, create a registration form to gather participants' information and kindly ask if they would like to receive news and further steps after the training.
  • Maintain a visible and active presence throughout the session to foster community and participant connection. Use inclusive language and acknowledge contributions from all participants to create a supportive learning environment.
  • As an instructor, you should be prepared to adapt your teaching style and approach based on the participants' needs and preferences. You should also be flexible, responsive to feedback, and willing to modify the lesson plan or activities to accommodate different learning styles and abilities.
  • Optionally, take pictures and record videos from your training session for your records and future session promotion. It’s vital to ask for explicit consent from participants to appear in the pictures and videos. You can ask for it in the registration form.
  • After the session, use the provided form to solicit participant feedback to identify strengths and areas for improvement. Use this feedback to refine future sessions and adapt your approach to meet your audience's needs better.

Considerations for Online Training Sessions

To provide a thriving online session, please take into consideration the following:

  • Use a reliable internet connection. A wired connection is highly recommended to reduce the risk of signal loss.
  • Choose an appropriate videoconferencing or video streaming software and test it before the session.
  • Online classes can sometimes lead to reduced engagement compared to in-person sessions. Plan interactive activities, discussions, polls, and quizzes to keep participants engaged throughout the session. Encourage participation through the chat function or by using video or audio interactions.
  • Utilize visual aids such as slides, videos, live coding, and interactive whiteboards to enhance understanding and retention of the material. Ensure that visual aids are clear, relevant, and accessible to all participants.
  • Provide opportunities for participants to receive feedback on their progress and understanding of the material. Incorporate quizzes, polls, or short assignments to assess comprehension and reinforce key concepts.
  • Online classes may require extra time for technical troubleshooting or concept clarification. Plan additional time for these potential issues while ensuring the session stays on schedule. Break the session into manageable segments with built-in breaks to prevent participant fatigue.
  • Have a plan to address technical issues that may arise during the session. Depending on the software and tools you will use, designate a technical support staff member or provide troubleshooting resources for participants to resolve common issues independently.

Considerations for In-Person Training Sessions

To offer an engaging in-person training session, please consider the following:

  • Ensure that the physical classroom is conducive to learning. This includes adequate lighting, comfortable seating, proper ventilation, and appropriate room temperature. Arrange the furniture to promote interaction and engagement among participants.
  • Prepare all necessary materials and resources in advance, such as handouts, visual aids, and equipment. Ensure that all materials are easily accessible to participants and that any technology or equipment functions correctly in the classroom.
  • In an in-person setting, you can employ various engagement techniques to capture participants' attention and maintain their interest. These may include group discussions, hands-on activities, role-playing exercises, demonstrations, and interactive games.
  • Encourage active participation from participants by asking questions, soliciting opinions, and inviting them to share their experiences and insights. Foster a collaborative learning environment where participants feel comfortable expressing themselves and engaging with one another.
  • Prioritize the safety and well-being of participants by adhering to any relevant health and safety guidelines, such as maintaining physical distancing, wearing face masks, and sanitizing shared surfaces. Create a supportive and inclusive learning environment where participants feel respected, valued, and supported in their learning journey.
- + \ No newline at end of file diff --git a/faucet/index.html b/faucet/index.html index 6150346b..081a05e9 100644 --- a/faucet/index.html +++ b/faucet/index.html @@ -4,13 +4,13 @@ SanchoNet faucet | SanchoNet - +

SanchoNet faucet

To request funds from the faucet:

  1. Choose whether you want to request funds or a stake delegation
  2. Fill in your details
  3. Tick the recaptcha box
  4. Click 'Submit'.

When you have finished using your test tokens,
please return them to the faucet at the following address: addr_test1vz0ua2vyk7r4vufmpqh5v44awg8xff26hxlwyrt3uc67maqtql3kl
- + \ No newline at end of file diff --git a/get-started/discord/index.html b/get-started/discord/index.html index 15ba258c..31edc25b 100644 --- a/get-started/discord/index.html +++ b/get-started/discord/index.html @@ -4,13 +4,13 @@ Join the community | SanchoNet - +

Join the community

Instructions

  1. Join the IOG Discord community: https://discord.gg/p3jYKGxMvE
  2. Complete the captcha verification
  3. In #start-here, select 'Join the SanchoNet Community'

The 'Voltaire' category, containing SanchoNet channels, will appear. You can enter these channels and join the discussion or just follow along!

SanchoNet Discord channels

The SanchoNet channels include the following:

  • #announcements for updates about SanchoNet
  • #spo-sanchonet for SPO discussion
  • #drep-sanchonet for DRep discussion
  • #builder-sanchonet for discussion of SanchoNet community tooling and infrastructure projects
  • #wallets-sanchonet for wallet discussions, SanchoNet and CIP-95
  • #govtool-sanchonet for discussion of Sancho GovTool beta
  • #live-sancho for live sancho calls
- + \ No newline at end of file diff --git a/get-started/govtool/index.html b/get-started/govtool/index.html index 214f1fb4..f4c0979b 100644 --- a/get-started/govtool/index.html +++ b/get-started/govtool/index.html @@ -4,7 +4,7 @@ SanchoNet GovTool | SanchoNet - + @@ -24,7 +24,7 @@ General governance guides Cardano governance page overview GovTool overview

- + \ No newline at end of file diff --git a/get-started/index.html b/get-started/index.html index 60966719..e08d4bb2 100644 --- a/get-started/index.html +++ b/get-started/index.html @@ -4,7 +4,7 @@ SanchoNet | SanchoNet - + @@ -14,7 +14,7 @@ SPOs are the backbone of any blockchain network, and on SanchoNet, it's no different. As an SPO, you can take charge and run the testnet network with diligence and integrity and of course, you can influence Barataria's future voting on relevant actions. Your feedback will be invaluable.

  • Delegate representatives (DReps): DReps are the voice of the broader community. As a representative, your role involves participating in voting on governance actions. You can consider the collective interests of the community as you engage in these important decisions.

  • 🚧🚧 SanchoNet is under construction 🚧🚧

    SanchoNet is all about developing and testing the technical components and processes required to action governance for Cardano within CIP-1694. It informs and engages the Cardano community on Voltaire on-chain governance activities currently underway.

    To fully utilize the on-chain components as they are designed for ultimate use on mainnet, a significant program of off-chain elements (eg committees, informational tools, etc) will also need to be delivered, subject to a separate complimentary roadmap and timeline.

    As such, SanchoNet will follow an independent development trajectory scoped from a technical, rather than final, governance perspective. SanchoNet will encapsulate the various actions and use cases that SPOs, DReps, and other users will undertake within typical usage situations as the wider governance capabilities are rolled out.

    Therefore, not all SanchoNet functionality will operate initially as intended (for example, within constitutional actions), and will be subject to change and iteration during the course of development.

    SanchoNet is more than just a testnet, it is a playground of opportunities. Within this space, the community can collaboratively create a governance system that is robust, decentralized, and truly community-driven. Your involvement, dedication, and passion will be the driving force behind SanchoNet's success.

    SanchoNet feature rollout

    The rollout of Sanchonet features will be phased in line with the technical development of CIP-1694:

    SanchoNet phases roll out

    PhasesPhase 1Phase 2Phase 3Phase 4Phase 5Phase 6
    Status✅ Live in SanchoNet✅ Live in SanchoNet✅ Live in SanchoNet✅ Live in SanchoNet🔨 Development in progressNot started
    - + \ No newline at end of file diff --git a/index.html b/index.html index 122c6034..80c25d38 100644 --- a/index.html +++ b/index.html @@ -4,13 +4,13 @@ SanchoNet - +

    SanchoNet

    Building together in the age of Voltaire

    Become a Sancho SPO

    SanchoNet SPOs are the lifeblood of the network. They forge the blocks for all other members. Learn more about becoming a Sancho SPO today!

    Learn more

    Become a Sancho DRep

    SanchoNet provides liquid democracy to get a high voter turnout. DReps are the governing body elected directly through the participants' stake delegation. Become a Sancho DRep today!

    Learn more

    Develop on SanchoNet

    Calling all developers! Do you want to build a cool voting wallet? How about a proposal explorer? Well, there is a job for you. Start integrating your favorite ideas on SanchoNet today!

    Learn more
    Boat
    - + \ No newline at end of file diff --git a/meetups/index.html b/meetups/index.html index 8f8ba32c..9714de62 100644 --- a/meetups/index.html +++ b/meetups/index.html @@ -4,13 +4,13 @@ Meetups | SanchoNet - +

    Meetups

    SanchoNet meetups is a way for people to get to know more about SanchoNet be it online or offline at an event.

    This page can be updated by anyone in the community by submitting a pull request with changes.

    LocationDateLinkInfo
    Norway12. Nov 2023https://www.meetup.com/cardano-blockchain-oslo-no/events/296420885/SPO workshop hosted by NADA, https://twitter.com/NordicADA
    Discord(Online)Every Thursdays 8:00PM EST = (GMT-5)https://discord.gg/tHYrxCtdHmSanchoNet CLI workshops for DReps hosted by Mike Hornan[ABLE]
    - + \ No newline at end of file diff --git a/roles/cc/index.html b/roles/cc/index.html index f5867ffb..3f899d10 100644 --- a/roles/cc/index.html +++ b/roles/cc/index.html @@ -4,7 +4,7 @@ Constitutional committee | SanchoNet - + @@ -27,7 +27,7 @@ and secure management of these keys becomes crucial for those aspiring to join the committee.

    In general, the constitutional committee member will need to:

    1. Run a node
    2. Request funds from the faucet
    3. Generate cold/hot credentials (keys or scripts)
    4. Generate their corresponding key hash or script hash.
    5. Be elected on a governance action.
    6. Once elected, create a corresponding cold -> hot authorization certificate and submit it on-chain
    7. Review active governance actions
    8. Engage in discussions with other constitutional committee members to assess the constitutionality of governance actions
    9. Cast votes
    10. Include anchors (URL/hash) in their votes.

    Moreover, the committee members might be required to perform specific tests, such as issuing a new hot key and authorizing it, resigning from committee members, or voting on new committee members.

    Detailed tutorials will be provided upon the launch of associated features. These tutorials will offer step-by-step guidance to ensure a smooth and effortless walkthrough of the process.

    - + \ No newline at end of file diff --git a/roles/dev/index.html b/roles/dev/index.html index 3a5c4cb0..29e3752e 100644 --- a/roles/dev/index.html +++ b/roles/dev/index.html @@ -4,13 +4,13 @@ Developers | SanchoNet - +
    -

    Developers

    A SanchoNet developer is an individual skilled in blockchain technology and programming, with a passion for contributing to the evolution of Cardano's governance future.

    Develop on SanchoNet

    To interact with SanchoNet as a developer, you will need to:

    1. Download the node v8.11.0-sancho
    2. Run the node
    3. Request funds from the faucet
    4. Build a cool tool to integrate with SanchoNet
    5. Publish it to the community.

    Community tooling

    Wallets

    Wallets are websites or applications that convert a mnemonic into a user-friendly interface for sending and receiving ada. Below is a list of all the wallets currently available on SanchoNet:

    Explorers

    Explorers allow you to visualize blockchain data. Some are web-based, while others are generic APIs. Below is a list of the current explorers available on SanchoNet:

    Voting centers

    Voting centers enable interaction with the chain for viewing and voting on specific proposals. They can also integrate with wallets to facilitate delegation to DReps and submission of transactions to wallets.

    - +

    Developers

    A SanchoNet developer is an individual skilled in blockchain technology and programming, with a passion for contributing to the evolution of Cardano's governance future.

    Develop on SanchoNet

    To interact with SanchoNet as a developer, you will need to:

    1. Download the latest version of [cardano-node] (https://github.com/IntersectMBO/cardano-node/releases)
    2. Run the node
    3. Request funds from the faucet
    4. Build a cool tool to integrate with SanchoNet
    5. Publish it to the community.

    Community tooling

    Wallets

    Wallets are websites or applications that convert a mnemonic into a user-friendly interface for sending and receiving ada. Below is a list of all the wallets currently available on SanchoNet:

    Explorers

    Explorers allow you to visualize blockchain data. Some are web-based, while others are generic APIs. Below is a list of the current explorers available on SanchoNet:

    Voting centers

    Voting centers enable interaction with the chain for viewing and voting on specific proposals. They can also integrate with wallets to facilitate delegation to DReps and submission of transactions to wallets.

    + \ No newline at end of file diff --git a/roles/drep/index.html b/roles/drep/index.html index 44bfec6d..2774e1c2 100644 --- a/roles/drep/index.html +++ b/roles/drep/index.html @@ -4,13 +4,13 @@ DRep | SanchoNet - +
    -

    Delegate representatives (DReps)

    A DRep serves as the community's spokesperson, actively participating in voting on governance actions and advocating for the community's collective interests.

    Becoming a DRep

    As Cardano prepares for the Conway era, community participation becomes vital for its success. A meaningful way to contribute is by becoming a DRep and playing a key role in shaping Cardano's future.

    DReps hold significant responsibilities in the governance process, voting on important system updates. Approval depends on the governance action type and requires a majority vote from the corresponding governance bodies (SPOs, the constitutional committee, and DReps).

    As a DRep, you'll have the power to vote 'yes,' 'no,' or 'abstain' on governance actions proposing changes to protocol parameters. Your vote represents the ada holders' collective voice, making your role crucial in Cardano's decentralized decision-making.

    To become a DRep, follow these steps:

    1. Download the node v8.11.0-sancho
    2. Run the node
    3. Request funds from the faucet
    4. Register as a DRep with an on-chain registration certificate
    5. Initially, on SanchoNet, use tools like Discord to identify governance actions requiring your attention and vote
    6. Engage in discussions with other DReps to assess the merits of active governance actions
    7. Cast your votes using Cardano CLI or other voting tools as they become available in the community
    8. When submitting your votes, include reasoning for your vote and an anchor (URL and hash).

    Stay tuned for comprehensive tutorials that will be provided upon the release of new features. You might be also asked to conduct specific tests from participants on SanchoNet, highlighting the importance of your active involvement.

    - +

    Delegate representatives (DReps)

    A DRep serves as the community's spokesperson, actively participating in voting on governance actions and advocating for the community's collective interests.

    Becoming a DRep

    As Cardano prepares for the Conway era, community participation becomes vital for its success. A meaningful way to contribute is by becoming a DRep and playing a key role in shaping Cardano's future.

    DReps hold significant responsibilities in the governance process, voting on important system updates. Approval depends on the governance action type and requires a majority vote from the corresponding governance bodies (SPOs, the constitutional committee, and DReps).

    As a DRep, you'll have the power to vote 'yes,' 'no,' or 'abstain' on governance actions proposing changes to protocol parameters. Your vote represents the ada holders' collective voice, making your role crucial in Cardano's decentralized decision-making.

    To become a DRep, follow these steps:

    1. Download the latest version of cardano-node
    2. Run the node
    3. Request funds from the faucet
    4. Register as a DRep with an on-chain registration certificate
    5. Initially, on SanchoNet, use tools like Discord to identify governance actions requiring your attention and vote
    6. Engage in discussions with other DReps to assess the merits of active governance actions
    7. Cast your votes using Cardano CLI or other voting tools as they become available in the community
    8. When submitting your votes, include reasoning for your vote and an anchor (URL and hash).

    Stay tuned for comprehensive tutorials that will be provided upon the release of new features. You might be also asked to conduct specific tests from participants on SanchoNet, highlighting the importance of your active involvement.

    + \ No newline at end of file diff --git a/roles/spo/index.html b/roles/spo/index.html index 3fb6d780..7b656c42 100644 --- a/roles/spo/index.html +++ b/roles/spo/index.html @@ -4,7 +4,7 @@ SPO | SanchoNet - + @@ -13,7 +13,7 @@ have a role in the governance of the system. Stake pool operators can vote on motions of no confidence, electing new constitutional committee members, initiating hardforks, and making changes to security and relevant protocol parameters.

    Becoming an SPO

    Becoming an SPO is critical to support SanchoNet. The process is straightforward, follow the tutorials below:

    1. Download the latest node
    2. Run the node
    3. Request funds from the faucet
    4. Register a stake pool
    5. Request delegation from the faucet
    - + \ No newline at end of file diff --git a/tools-resources/faq/index.html b/tools-resources/faq/index.html index b4cd26d0..9f965c61 100644 --- a/tools-resources/faq/index.html +++ b/tools-resources/faq/index.html @@ -4,14 +4,14 @@ Conway ledger era FAQs | SanchoNet - +

    Conway ledger era FAQs

    Warning: Please note that due to ongoing development, some answers may change over time.

    Last update: 2024-02-17

    Based on ledger design cddl: node 8.8.0-pre

    1. What are the new Conway certificates?

    Certificate in CDDLDescription
    reg_certRegisters stake credentials
    unreg_certUnregisters stake credentials
    vote_deleg_certDelegates votes
    stake_vote_deleg_certDelegates to a stake pool and a DRep from the same certificate
    stake_reg_deleg_certRegisters stake credentials and delegates to a stake pool
    vote_reg_deleg_certRegisters stake credentials and delegates to a DRep
    stake_vote_reg_deleg_certRegisters stake credentials, delegates to a pool, and to a DRep
    auth_committee_hot_certAuthorizes the constitutional committee hot credential
    resign_committee_cold_certResigns the constitutional committee cold credential
    reg_drep_certRegisters DRep's credentials
    unreg_drep_certUnregisters (retires) DRep's credentials
    update_drep_certUpdates DRep's metadata anchor

    2. Why are there two ways to register/unregister stake credentials now?

    ⚠ There are currently two ways to register/unregister stake credentials because the old stake_registration and stake_deregistration will be deprecated in the era following the Conway era. ⚠

    The new version allows the ledger to check deposit amounts and return them instantly (rather than on epoch boundary), matching the other new certificates containing deposits.

    3. Why do new certificates have a coin field?

    This change has been made to enable the checking of deposit amounts at the ledger level. It also proves to be more useful in Voltaire, given that protocol parameters are likely to change more frequently than in past eras.

    4. Certificate and transaction field witnesses and deposits

    CertificateParametersRequired witnessesDeposit/refund
    stake_registration(0, stake_credential)NoneNone
    stake_deregistration(1, stake_credential)stake_credentialNone
    stake_delegation(2, stake_credential, pool_keyhash)stake_credentialNone
    pool_registration(3, pool_params)pool_keyNone
    pool_retirement(4, pool_keyhash, epoch)pool_keyNone
    reg_cert(7, stake_credential, coin)stake_credentialDeposit coin of amount keyDeposit
    unreg_cert(8, stake_credential, coin)stake_credentialRefund keyDeposit of amount coin
    vote_deleg_cert(9, stake_credential, drep)stake_credentialNone
    stake_vote_deleg_cert(10, stake_credential, pool_keyhash, drep)stake_credentialNone
    stake_reg_deleg_cert(11, stake_credential, pool_keyhash, coin)stake_credentialDeposit coin of amount keyDeposit
    vote_reg_deleg_cert(12, stake_credential, drep, coin)stake_credentialDeposit coin of amount keyDeposit
    stake_vote_reg_deleg_cert(13, stake_credential, pool_keyhash, drep, coin)stake_credentialDeposit coin of amount keyDeposit
    auth_committee_hot_cert(14, committee_cold_credential, committee_hot_credential)committee_cold_credentialNone
    resign_committee_cold_cert(15, committee_cold_credential, anchor / null)committee_cold_credentialNone
    reg_drep_cert(16, drep_credential, coin, anchor / null)drep_credentialdrepDeposit
    unreg_drep_cert(17, drep_credential, coin)drep_credentialRefund drepDeposit of amount coin
    update_drep_cert(18, drep_credential, anchor / null)drep_credentialNone
    voting_procedure (in Tx body)voting_procedures = { + voter => { + gov_action_id => voting_procedure } }drep_credential OR committee_hot_credential OR stake_pool_keyHashNone
    proposal_procedure (in Tx body)proposal_procedure = [ deposit : coin, reward_account, gov_action, anchor]coinDeposit is returned at the epoch boundary to the reward_account that is specified in the proposal.
    Current treasury value (in Tx body)coinpayment_credentialNone
    Treasury donation (in Tx body)positive_coinpayment_credentialNone

    5. Why isn't the script directly included in a new constitution proposal for the proposal policy?

    The decision to provide only the script hash, rather than the entire script, within a new constitution proposal serves the purpose of reusing the mechanisms previously implemented in Babbage. For instance, it allows individuals to use reference scripts to provide the actual script for the proposal policy when proposing various governance actions. Creating another source for scripts would entail more work.

    6. Regarding the proposal policy for a new CC constitution action: How does the proposal policy script impact the script integrity hash in the transaction body? Do I need to consider the cost model of the provided script?

    The new constitution proposal contains a ScriptHash, also known as the proposal policy. There is nothing special that needs to be done during the proposal stage because the policy is simply being suggested. The significance comes into play when a new constitution with a script hash (proposal policy) is enacted. At that point, the constitution will require scripts and redeemers for every governance proposal, except for the new_constitution and no_confidence proposals. In these cases, it will function in a manner similar to other scripts.

    7. If a voting proposal requires a script and a redeemer, which redeemer tag should I use?

    This tag is yet to be implemented. The designated tag for such instances will be 5, with the index in the redeemer corresponding to the proposal procedure. Additionally, there will be tag 4 – specifically for voting procedures.

    8. What will be the maximum number of protocol parameter changes that can be executed in a single governance action?

    With numerous Plutus versions having distinct cost models, accommodating all of them may become impractical. Nevertheless, it's highly unlikely to exceed the maximum transaction size in the near future.

    9. Can one delegate to DReps that do not exist?

    There are no checks for this at the ledger level, neither for SPOs nor for DReps. At any point, the DRep and the SPO to whom you delegated can unregister, so there is no need to enforce their existence when delegating.

    10. Is it possible to stake a DRep deposit when it is locked?

    No, there is no mechanism to facilitate that action. The purpose of the deposit is to restrict the use of those funds.

    11. What happens with DRep deposits when no stake credential is provided, and where is the deposit returned?

    DRep deposits function similarly to stake credential deposits. They are refunded in the transaction that unregisters the DRep. Stake pool and proposal procedures are retired or expired on the epoch boundary, which is why their deposits are refunded into a reward account. However, DReps and stake credentials are unregistered immediately.

    13. Does the new donation field function similarly to implicit outputs?

    Donations function more like fees. They are collected in a pool and then transferred at the epoch boundary.

    14. How does the 'current treasury value' function, and what happens if I set it to an incorrect value?

    The 'current treasury value' is used for conveying the current treasury amount to Plutus scripts. If the treasury field is set incorrectly, the transaction will be rejected.

    15. How does the process of CC resignation (resign_committee_cold_cert) work, and what happens if all CC members resign? Does this impact the quorum?

    Resigned and expired constitutional committee members are automatically counted as if they have voted 'Abstain'.

    Another crucial point to note is that whenever the number of active committee members (those who are neither expired nor resigned) falls below the committeeMinSize protocol parameter, the system enters a mode in which it is as though all committee members have cast a 'No' vote.

    16. For parameter_change_action and treasury_withdrawals_action does the optionally supplied policy_hash require a witness from the script?

    Yes. It is only optional, when there is no governance policy. When there is a governance policy we require that policy_hash to be present and equal to the one in the elected constitution.

    17. Are the governance voting threshold Parameters set to be fixed at 2 decimal places?

    No, they are rational numbers on the unit interval where both numerator and denominator are specified by 64bit unsigned integers. So, those thresholds can be very precise.

    18. Do unwithdrawn staking rewards count towards one's voting power/ is counted in active/inactive voting stake amounts?

    Yes, the amount in the reward account is counted towards active stake, which means it will also participate in the voting. This decision was to prevent people from constantly withdrawing rewards just so they can get rewards on that amount.

    19. Do any locked deposits count towards voting stake?

    The only deposits which count toward voting stake thresholds are deposits locked for governance actions.

    - + \ No newline at end of file diff --git a/tools-resources/resources/index.html b/tools-resources/resources/index.html index 023d249d..74e4a6f2 100644 --- a/tools-resources/resources/index.html +++ b/tools-resources/resources/index.html @@ -4,7 +4,7 @@ Tools and resources | SanchoNet - + @@ -14,7 +14,7 @@ used by Lace at its core for everything relating to the Cardano blockchain.

    The core/Serialization package has support for serialization and deserialization, developed from the ground up in Typescript.

    Governance Metadata Standards

    The Conway ledger era ushers in on-chain governance for Cardano via CIP-1694 | A First Step Towards On-Chain Decentralized Governance, with the addition of many new on-chain governance artifacts. Some of these artifacts support the linking off-chain metadata, as a way to provide context.

    There have been three governance metadata standards developed, so far, to define what the off-chain contextual data can look like.

    One further standard is around the technical form of the constitution.

    • CIP-0120 | Constitution technical form This proposal aims to describe a standardized technical form for the Cardano constitution. Hoping to enhance the accessibility and safety of the document.

    Built by the community

    Disclaimer: These tools and guides are created by the community and are not supported directly. Please refer any issues to the author.

    Tools from the community:

    • Blockfrost.io: the leading Cardano API-as-a-Service, which also provides access to the SanchoNet testing network.
    • NuFi Wallet CIP-95/ SanchoNet Compatible Build: the first community CIP-95 wallet build.
    • Ogmios Conway Releases: is a lightweight bridge interface for cardano-node. It provides an HTTP / WebSocket API that enables applications to interact with a local cardano-node via JSON+RPC-2.0.
    • Cardano-Signer: Open-Source multifunction tool, which can sign&verify data. Can also be used for Key-Generation, like dRep-Keys, CCM-Cold/Hot-Keys with Mnemonic-Support.
    • SPO Scripts: Open-Source collection of CLI-Scripts to perform all kinds of transactions, key-generation, etc. on the CLI. Now with full Conway Governance support.
    • Adanordic.com: A work-in-progress rudimentary governance related explorer.
    • Cardano Multiplatform Library A standard multifunctional library for serialization & deserialization of core data structures and useful utility functions.
    • Cexplorer.io SanchoNet: The biggest and oldest Cardano explorer, supporting the SanchoNet testing network.
    • cardano-wallet Conway release: Cardano wallet is command line based software wallet.
    • drep.tools: A very early version of a site to help DReps.
    • Plutarch: A Haskell eDSL designed for writing fast and fine-tunable on-chain scripts. Currently supports PlutusLedger V1 and V2, with V3 on its way.
    • carp 3.2.0 This project is designed to sync data from the Cardano blockchain and store it into a Postgres database.
    • Parameter Proposal Guardrails Checker The Parameter Proposal Guardrails Checker is a web-based tool that checks the constitutionality of a Parameter Update Proposal. It implements checks for the guardrails from the Constitution.

    Guides from the community:

    AuthorTitleDate
    Eysteinh (NBX)Sancho Panza: Navigating Cardano's Testnet Frontier2023-08-14
    Mike Hornan (ABLE)Sancho Testnet Guides and Command Line Interface2023-10-02
    Nicolas Cerny (CF)How to become a delegated representative (DRep) on SanchoNet2024-01-10
    - + \ No newline at end of file diff --git a/tutorials/actions/index.html b/tutorials/actions/index.html index 880cc930..b90326ed 100644 --- a/tutorials/actions/index.html +++ b/tutorials/actions/index.html @@ -4,7 +4,7 @@ Governance actions | SanchoNet - + @@ -27,7 +27,7 @@ voting process. This process essentially transforms your proposal from a conceptual idea into an actionable item. Once submitted, it becomes part of the public ledger, while also allowing members of the governance bodies to review, discuss, and ultimately cast their votes on its approval or rejection.

    • Note that you can also use build-raw and calculate-min-fee to build transactions in an off-line settting. The example below uses the convenient build:
    cardano-cli conway transaction build \
    --testnet-magic 4 \
    --tx-in "$(cardano-cli query utxo --address "$(cat payment.addr)" --testnet-magic 4 --out-file /dev/stdout | jq -r 'keys[0]')" \
    --change-address $(cat payment.addr) \
    --proposal-file info.action \
    --out-file tx.raw
    cardano-cli conway transaction sign \
    --testnet-magic 4 \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --out-file tx.signed
    cardano-cli conway transaction submit \
    --testnet-magic 4 \
    --tx-file tx.signed

    Submitting a treasuy-withdrawal and protocol-parameter-update governance action

    info

    This transaction will pay the governance action deposit and fee, in addition, we must supply a collateral since we will be running a plutus script: the guardrails script.

    note

    At the time of writing this tutorial, the build command has a bug that causes it to underestimate the execution units. For now we will use build-raw instead.

    Query the utxos of our address:

    cardano-cli conway query utxo --address $(cat payment.addr)
    TxHash TxIx Amount
    --------------------------------------------------------------------------------------
    0a2d91bcc0775581594f49eb9709108aa8b75c9f59e77774868462d8251c6b31 0 149999600000 lovelace + TxOutDatumNone
    1fa4fd83daf44c6cc2db9abd495306568b5f64b28296d4e55958bee3d9b4f90e 1 50816371 lovelace + TxOutDatumNone
    c925e0e4b83f5f36b3950f4e940f59632f9589cd9bcae4a071878a54d455a47e 0 49999690803 lovelace + TxOutDatumNone

    Balance the transaction:

    We will use build-raw, this means we need to balance the transaction manually, in other words, we need to calculate the change of the transaction ourselves so that inputs = outputs.

    Get the value of the UTxO at index 0 (first UTxO). This will be our input (--tx-in) for the transaction.

    utxo_value=$(cardano-cli conway query utxo --address "$(cat payment.addr)" --output-json | jq '.[keys[0]].value.lovelace')

    We'll need to deduct the fee. For simplicity let's set the fee on 500000 lovelace:

    fee=500000

    We need to take the governance action deposit into account:

    govActDeposit=$(cardano-cli conway query gov-state | jq -r .currentPParams.govActionDeposit)

    Now we can calculate the change of the transaction. Later, we will use $change in the transaction output (--tx-out).

    change=$(($utxo_value - $fee - $govActDeposit))

    Build, sign and submit the transaction

    When building the transaction, we include the *.action file and supply the guardrails script with --proposal-script-file. Note that the guardrails script does not require a datum to be passed.

    cardano-cli conway transaction build-raw \
    --proposal-script-file guardrails-script.plutus \
    --tx-in-collateral "$(cardano-cli query utxo --address "$(cat payment.addr)" --output-json | jq -r 'keys[1]')" \
    --proposal-redeemer-value {} \
    --proposal-execution-units "(119000000, 555000)" \
    --tx-in "$(cardano-cli query utxo --address "$(cat payment.addr)" --output-json | jq -r 'keys[0]')" \
    --tx-out "$(cat payment.addr)+$change" \
    --fee "$fee" \
    --protocol-params-file pparams.json \
    --proposal-file pparams.action \
    --out-file pparams-tx.raw

    This example uses the second UTxO (Index 1) of payment.addr as collateral: $( ...--output-json | jq -r 'keys[1]'). Adjust the command so that it accomodates to your needs and preferences of utxos to use.

    We sign the transaction only with payment.skey since we are using the same for fees and collateral:

    cardano-cli conway transaction sign \
    --tx-file pparams-tx.raw \
    --signing-key-file payment.skey \
    --out-file pparams-tx.signed

    And submit it to the chain with:

    cardano-cli conway transaction submit \
    --tx-file pparams-tx.signed

    Finding the governance action ID of your proposal

    You may want to find your governance action ID to share it with others on Discord1 and seek their support. The transaction ID and the index of the transaction that submitted the proposal serve as the action ID. An effective way to find your governance action ID is by querying the governance state and filtering by (the proposer) stake key hash.

    First, find your key hash with:

    cardano-cli conway stake-address key-hash --stake-verification-key-file stake.vkey

    8e0debc9fdc6c616ac40d98bf3950b436895eea9cccf0396a6e5e12b

    Use jq to filter the gov-state output by the stake key hash. The output contains all the relevant information about your governance actions, including actionId:

    cardano-cli conway query gov-state --testnet-magic 4 \
    | jq -r --arg keyHash "8e0debc9fdc6c616ac40d98bf3950b436895eea9cccf0396a6e5e12b" '.proposals | to_entries[] | select(.value.returnAddr.credential.keyHash | contains($keyHash)) | .value'
    {
    "action": {
    "contents": [
    [
    {
    "credential": {
    "keyHash": "7249a71391f08399f06b492eae7892a33191699625cff50b7dee55c6"
    },
    "network": "Testnet"
    },
    20388738581
    ]
    ],
    "tag": "TreasuryWithdrawals"
    },
    "actionId": {
    "govActionIx": 0,
    "txId": "4fcd92abf2ce3d6796c5fae51ea83d563ca8611359c9624fd1cecd7fa1ce71cc"
    },
    "committeeVotes": {
    "keyHash-23e05ad2b71317a6348ce4b68dae37aa1c0e545cdea740b23c21742e": "VoteNo",
    "keyHash-540bedcd4bdcbf523e899c3ef43f2b96ecec4f6303af58d15a413ed1": "VoteYes",
    "keyHash-6c1d098a366f2274651943a7f778b3b5459c129f0407a0db2902253a": "VoteYes"
    },
    "dRepVotes": {
    "keyHash-13797df5308dfebf2348fa58b312a177cf97939f5f7d21168e1a54db": "VoteYes",
    "keyHash-9853551d8b99884f51608822e012bbf0d444eb7bea2807ee664f1241": "Abstain",
    "keyHash-cf09b59e134fa14e48da39b552c02299a054d7c8b895b3d827453672": "VoteNo"
    },
    "deposit": 1000000000,
    "expiresAfter": 34,
    "proposedIn": 33,
    "returnAddr": {
    "credential": {
    "keyHash": "8e0debc9fdc6c616ac40d98bf3950b436895eea9cccf0396a6e5e12b"
    },
    "network": "Testnet"
    },
    "stakePoolVotes": {}
    }
    - + \ No newline at end of file diff --git a/tutorials/address/index.html b/tutorials/address/index.html index 83e09607..a2c7374c 100644 --- a/tutorials/address/index.html +++ b/tutorials/address/index.html @@ -4,13 +4,13 @@ Generate keys and address | SanchoNet - +

    Generate keys and address

    First, generate a payment key pair and a stake key pair. Then, use the payment verification key and the stake verification key to build an address that can be used to receive funds from the faucet.

    The payment keys control the funds, while the stake keys control the participation in the protocol: delegating stake to a pool and delegating votes to a delegate representative.

    Pre-requisites

    • cardano-cli installed

    Generate key pairs

    1. Generate payment keys:
    cardano-cli conway address key-gen \
    --verification-key-file payment.vkey \
    --signing-key-file payment.skey
    1. Generate stake keys:
    cardano-cli conway stake-address key-gen \
    --verification-key-file stake.vkey \
    --signing-key-file stake.skey

    Build the address

    1. Build your address:
    cardano-cli conway address build \
    --payment-verification-key-file payment.vkey \
    --stake-verification-key-file stake.vkey \
    --out-file payment.addr \
    --testnet-magic 4

    Get funds from the faucet

    1. Use your address on the faucet to get SanchoNet testnet tokens.
    - + \ No newline at end of file diff --git a/tutorials/cli queries/index.html b/tutorials/cli queries/index.html index 60e2694d..fb993340 100644 --- a/tutorials/cli queries/index.html +++ b/tutorials/cli queries/index.html @@ -4,13 +4,13 @@ Useful CLI queries | SanchoNet - +

    Useful CLI queries

    Query the constitution:

    cardano-cli conway query constitution --testnet-magic 4
    {
    "anchor": {
    "dataHash": "5d372dca1a4cc90d7d16d966c48270e33e3aa0abcb0e78f0d5ca7ff330d2245d",
    "url": "https://tinyurl.com/4xdkkjm3"
    }
    }

    Query the DRep state for all DReps:

    cardano-cli conway query drep-state --testnet-magic 4 --all-dreps


    [
    [
    {
    "scriptHash": "1d8fe9486b5fb282287568f04445c8f4d6cddf76ce2df527fd7debbe"
    },
    {
    "anchor": null,
    "deposit": 2000000,
    "expiry": 108
    }
    ],
    [
    {
    "keyHash": "1da9afe241a10fe5ee9590843134d0eebd4a32af448c9ec91db2e863"
    },
    {
    "anchor": null,
    "deposit": 2000000,
    "expiry": 177
    }
    ],
    [
    {
    "keyHash": "480036de36a123e98663370e4829ebd43aa9bb06ec4b6b25f3e178db"
    },
    {
    "anchor": null,
    "deposit": 2000000,
    "expiry": 176
    }
    ],
    [
    {
    "keyHash": "5b440956e056c96c74d4820b39b4f91cc45bb2b46024c96a594bb2ed"
    },
    {
    "anchor": null,
    "deposit": 2000000,
    "expiry": 176
    },

    ]
    ]

    Query the DRep state for an individual DRep:

    cardano-cli conway query drep-state --drep-key-hash 1da9afe241a10fe5ee9590843134d0eebd4a32af448c9ec91db2e863 --testnet-magic 4
    [
    [
    {
    "keyHash": "1da9afe241a10fe5ee9590843134d0eebd4a32af448c9ec91db2e863"
    },
    {
    "anchor": null,
    "deposit": 2000000,
    "expiry": 188
    }
    ]
    ]

    Query the DRep stake distribution (voting power):

    cardano-cli conway query drep-stake-distribution --testnet-magic 4
    [
    [
    "drep-keyHash-13797df5308dfebf2348fa58b312a177cf97939f5f7d21168e1a54db",
    500000000000
    ],
    [
    "drep-keyHash-9853551d8b99884f51608822e012bbf0d444eb7bea2807ee664f1241",
    495790521257
    ],
    [
    "drep-keyHash-cf09b59e134fa14e48da39b552c02299a054d7c8b895b3d827453672",
    500000000000
    ]
    ]

    Query the committee state:

    cardano-cli conway query committee-state --testnet-magic 4
    {
    "committee": {
    "keyHash-5e86313210aef13297187c38c98abb632678906230f555a1bf0a647a": {
    "expiration": 161,
    "hotCredsAuthStatus": {
    "contents": {
    "keyHash": "e394a160b9f1345b7b84cd25f0a3f1d12cb0c9835a4167f7dc5b52ca"
    },
    "tag": "MemberAuthorized"
    },
    "nextEpochChange": "NoChangeExpected",
    "status": "Active"
    },
    "keyHash-8be41436ce39ca3c2f3e4255e17fc6c11581ef6787bccf9ab60f39dd": {
    "expiration": 181,
    "hotCredsAuthStatus": {
    "contents": {
    "keyHash": "e6442af170fabe877ba6b23136ffb32026e9ed927158ecdda2ef0e18"
    },
    "tag": "MemberAuthorized"
    },
    "nextEpochChange": "NoChangeExpected",
    "status": "Active"
    },
    "keyHash-da9f5c5c94a6709a9188838ce8cd7fe1c39a1923de4933c16d67c1e0": {
    "expiration": 201,
    "hotCredsAuthStatus": {
    "contents": {
    "keyHash": "f380b5c4f245f9987645023e39b487e11a7d2337aea91dde628d04ed"
    },
    "tag": "MemberAuthorized"
    },
    "nextEpochChange": "NoChangeExpected",
    "status": "Active"
    }
    },
    "epoch": 86,
    "quorum": 0.6666666666666666666
    }

    Query the state of an individual committee key hash:

    cardano-cli conway query committee-state --cold-verification-key-hash da9f5c5c94a6709a9188838ce8cd7fe1c39a1923de4933c16d67c1e0 --testnet-magic 4
    {
    "committee": {
    "keyHash-da9f5c5c94a6709a9188838ce8cd7fe1c39a1923de4933c16d67c1e0": {
    "expiration": 201,
    "hotCredsAuthStatus": {
    "contents": {
    "keyHash": "f380b5c4f245f9987645023e39b487e11a7d2337aea91dde628d04ed"
    },
    "tag": "MemberAuthorized"
    },
    "nextEpochChange": "NoChangeExpected",
    "status": "Active"
    }
    },
    "epoch": 89,
    "quorum": 0.6666666666666666666
    }

    Query expired committee members

    cardano-cli conway query committee-state --expired --testnet-magic 4
    {
    "committee": {
    "keyHash-059349cd1e77dc3e500d3ffc498adb7307001ecc022c8b083faaa48b": {
    "expiration": 161,
    "hotCredsAuthStatus": {
    "contents": {
    "keyHash": "23e05ad2b71317a6348ce4b68dae37aa1c0e545cdea740b23c21742e"
    },
    "tag": "MemberAuthorized"
    },
    "nextEpochChange": "NoChangeExpected",
    "status": "Expired"
    }
    },
    "epoch": 169,
    "quorum": 0.6
    }

    Query active committee members

    cardano-cli conway query committee-state --active --testnet-magic 4
    {
    "committee": {
    "keyHash-059349cd1e77dc3e500d3ffc498adb7307001ecc022c8b083faaa48b": {
    "expiration": 161,
    "hotCredsAuthStatus": {
    "contents": {
    "keyHash": "23e05ad2b71317a6348ce4b68dae37aa1c0e545cdea740b23c21742e"
    },
    "tag": "MemberAuthorized"
    },
    "nextEpochChange": "NoChangeExpected",
    "status": "Active"
    },
    "keyHash-337e0a7fd01c7a7c27e8bac17e40db182bc2a774467795af1e3fe8a9": {
    "expiration": 201,
    "hotCredsAuthStatus": {
    "contents": {
    "keyHash": "540bedcd4bdcbf523e899c3ef43f2b96ecec4f6303af58d15a413ed1"
    },
    "tag": "MemberAuthorized"
    },
    "nextEpochChange": "NoChangeExpected",
    "status": "Active"
    },
    "keyHash-9c2aabae5d9187a76ed6b04b40e91ecb4ce3171611c3fd4ec6c6a607": {
    "expiration": 181,
    "hotCredsAuthStatus": {
    "contents": {
    "keyHash": "6c1d098a366f2274651943a7f778b3b5459c129f0407a0db2902253a"
    },
    "tag": "MemberAuthorized"
    },
    "nextEpochChange": "NoChangeExpected",
    "status": "Active"
    }
    },
    "epoch": 105,
    "quorum": 0.6
    }

    Query unrecognized committee keys

    cardano-cli conway query committee-state --unrecognized --testnet-magic 42
    {
    "committee": {},
    "epoch": 106,
    "quorum": 0.6
    }
    - + \ No newline at end of file diff --git a/tutorials/committee/index.html b/tutorials/committee/index.html index 3f14d248..88472be8 100644 --- a/tutorials/committee/index.html +++ b/tutorials/committee/index.html @@ -4,7 +4,7 @@ Generate committee member keys and certificates | SanchoNet - + @@ -13,7 +13,7 @@ a hot key authorization certificate. This enables them to cast votes by signing their transactions with their hot signing key while keeping their cold keys securely stored in cold storage. In the event that the hot keys are compromised at any point, the committee member must generate a new hot key pair and issue a new hot key authorization certificate.

    cardano-cli conway governance committee key-gen-hot \
    --verification-key-file cc-hot.vkey \
    --signing-key-file cc-hot.skey
    cardano-cli conway governance committee create-hot-key-authorization-certificate \
    --cold-verification-key-file cc-cold.vkey \
    --hot-key-file cc-hot.vkey \
    --out-file cc-hot-key-authorization.cert
    • Submit the authorization certificate in a transaction:
    cardano-cli conway transaction build \
    --testnet-magic 4 \
    --tx-in "$(cardano-cli query utxo --address "$(cat payment.addr)" --testnet-magic 4 --out-file /dev/stdout | jq -r 'keys[0]')" \
    --change-address payment.addr \
    --certificate-file cc-hot-key-authorization.cert \
    --witness-override 2 \
    --out-file tx.raw
    cardano-cli conway transaction sign \
    --testnet-magic 4 \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --signing-key-file cc-cold.skey \
    --out-file tx.signed
    cardano-cli conway transaction submit \
    --testnet-magic 4 \
    --tx-file tx.signed
    - + \ No newline at end of file diff --git a/tutorials/delegate-to-drep/index.html b/tutorials/delegate-to-drep/index.html index a71a0c15..a0044f58 100644 --- a/tutorials/delegate-to-drep/index.html +++ b/tutorials/delegate-to-drep/index.html @@ -4,13 +4,13 @@ Delegate votes to a DRep | SanchoNet - +

    Delegate votes to a DRep

    Delegating your voting power to a SanchoNet delegate representative (DRep) operates much like delegating your stake to a stake pool. Voting power delegation involves the issuance of a delegation certificate from your stake key to the chosen SanchoNet DRep. Just as with stake delegation, the process of delegating votes to a SanchoNet DRep does not entail relinquishing control of your funds. Instead, the vote delegation certificate grants the selected DRep permission to vote on your behalf.

    In addition to the registered SanchoNet DReps, the system features a couple of default DReps:

    • --always-abstain: this option signals your intention not to participate in the voting procedures, indicating a choice to abstain from the voting process

    • --always-no-confidence: this option signifies your lack of trust in the current constitutional committee, indicating a vote of no confidence in their decisions

    Prerequisites

    • Payment keys and address with funds
    • Stake key
    • Default SanchoNet DRep selection: --always-abstain or --always-no-confidence
    • SanchoNet DRep ID (key hash or script hash) of a registered DRep. See useful cli queries
    • A SanchoNet node

    Generating the vote delegation certificate

    1. Generate the vote delegation certificate.
    • Delegating to the --always-abstain default DRep:
    cardano-cli conway stake-address vote-delegation-certificate \
    --stake-verification-key-file stake.vkey \
    --always-abstain \
    --out-file vote-deleg.cert
    • Delegating to the --always-no-confidence default DRep:
    cardano-cli conway stake-address vote-delegation-certificate \
    --stake-verification-key-file stake.vkey \
    --always-no-confidence \
    --out-file vote-deleg.cert
    • Delegating to a key-based registered SanchoNet DRep:
    cardano-cli conway stake-address vote-delegation-certificate \
    --stake-verification-key-file stake.vkey \
    --drep-key-hash $(cat drep.id) \
    --out-file vote-deleg.cert
    • Delegating to a script-based (i.e. multisignature) registered SanchoNet DRep:
    cardano-cli conway stake-address vote-delegation-certificate \
    --stake-verification-key-file stake.vkey \
    --drep-script-hash $(cat drep-multisig.id) \
    --out-file vote-deleg.cert

    Submitting the certificate in a transaction

    1. Submit the vote delegation certificate in a transaction.
    • Build:
    cardano-cli conway transaction build \
    --testnet-magic 4 \
    --witness-override 2 \
    --tx-in $(cardano-cli query utxo --address $(cat payment.addr) --testnet-magic 4 --out-file /dev/stdout | jq -r 'keys[0]') \
    --change-address $(cat payment.addr) \
    --certificate-file vote-deleg.cert \
    --out-file tx.raw
    • Sign with payment and stake keys:
    cardano-cli conway transaction sign \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --signing-key-file stake.skey \
    --testnet-magic 4 \
    --out-file tx.signed
    • Submit:
    cardano-cli conway transaction submit \
    --testnet-magic 4 \
    --tx-file tx.signed
    - + \ No newline at end of file diff --git a/tutorials/drep-registration/index.html b/tutorials/drep-registration/index.html index a4182c3d..a4a595b9 100644 --- a/tutorials/drep-registration/index.html +++ b/tutorials/drep-registration/index.html @@ -4,13 +4,13 @@ Registering as a SanchoNet delegate representative (DRep) | SanchoNet - +

    Registering as a SanchoNet delegate representative (DRep)

    Pre-requisites

    • Payment address with funds
    • A SanchoNet node

    Generate SanchoNet DRep keys and an ID

    1. Generate a DRep key pair:
    cardano-cli conway governance drep key-gen \
    --verification-key-file drep.vkey \
    --signing-key-file drep.skey
    {
    "type": "DRepSigningKey_ed25519",
    "description": "Delegate Representative Signing Key",
    "cborHex": "5820eba7053fdc9cb3b8aacf142d3d4ad575bb48fb92f4082d81605ac8e2ccfead5d"
    }
    {
    "type": "DRepVerificationKey_ed25519",
    "description": "Delegate Representative Verification Key",
    "cborHex": "5820c19e0e939609531cfd04dcfa5bf1a5f3e245aa88e163759341aba296af34cc7e"
    }
    1. Generate a SanchoNet DRep ID:
    cardano-cli conway governance drep id \
    --drep-verification-key-file drep.vkey \
    --out-file drep.id
    drep124w9k5ml25kcshqet8r3g2pwk6kqdhj79thg2rphf5u5urve0an

    Generate the registration certificate

    1. Create a SanchoNet DRep registration certificate

    There are three ways to generate the certificate:

    • Using the drep.vkey file:
    cardano-cli conway governance drep registration-certificate \
    --drep-verification-key-file drep.vkey \
    --key-reg-deposit-amt $(cardano-cli conway query gov-state --testnet-magic 4 | jq -r .currentPParams.dRepDeposit) \
    --out-file drep-register.cert
    • Using the DRep verification key:
    cardano-cli conway governance drep registration-certificate \
    --drep-verification-key "$(cat drep.vkey | jq -r .cborHex | cut -c 5-)" \
    --key-reg-deposit-amt $(cardano-cli conway query gov-state --testnet-magic 4 | jq -r .currentPParams.dRepDeposit) \
    --out-file drep-register.cert
    • Using the DRep ID:
    cardano-cli conway governance drep registration-certificate \
    --drep-key-hash $(cat drep.id) \
    --key-reg-deposit-amt $(cardano-cli conway query gov-state --testnet-magic 4 | jq -r .currentPParams.dRepDeposit) \
    --out-file drep-register.cert

    Any of the above methods produces drep-register.cert, which contains:

    {
    "type": "CertificateShelley",
    "description": "DRep Key Registration Certificate",
    "cborHex": "84108200581c555c5b537f552d885c1959c714282eb6ac06de5e2aee850c374d394e00f6"
    }

    Submit certificate in a transaction

    1. Submit the SanchoNet DRep registration certificate in a transaction.
    • Build:
    cardano-cli conway transaction build \
    --testnet-magic 4 \
    --witness-override 2 \
    --tx-in $(cardano-cli query utxo --address $(cat payment.addr) --testnet-magic 4 --out-file /dev/stdout | jq -r 'keys[0]') \
    --change-address $(cat payment.addr) \
    --certificate-file drep-register.cert \
    --out-file tx.raw
    • Sign:
    cardano-cli conway transaction sign \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --signing-key-file drep.skey \
    --testnet-magic 4 \
    --out-file tx.signed
    • Submit:
    cardano-cli conway transaction submit \
    --testnet-magic 4 \
    --tx-file tx.signed
    - + \ No newline at end of file diff --git a/tutorials/file-naming-convention/index.html b/tutorials/file-naming-convention/index.html index 84fae8ed..2c236649 100644 --- a/tutorials/file-naming-convention/index.html +++ b/tutorials/file-naming-convention/index.html @@ -4,14 +4,14 @@ File naming convention/schema | SanchoNet - +

    File naming convention/schema

    To align the tutorials, examples, and also third-party tooling, you can find a suggested file naming convention/schema related to the Conway and Voltaire eras in this document.

    The schemas can be extended with a *. prefix if needed. For example:

    • Suggested file name: drep.skey
    • Extended with a prefix: myname.drep.skey

    The naming convention is a work in progress. Please revisit this page regularly to check if any new or modified schemas have been selected.

    Constitution files

    Below is a list of currently used files related to the constitution's text-content/action/vote.

    Text/content

    constitution.txt / *.constitution.txt constitution in cleartext utf-8

    Action

    constitution.action / *.constitution.action for action file content in JSON

    Example content:

    {
    "type": "Governance proposal",
    "description": "",
    "cborHex": "841a000f4240581c1b7a61b...36a56ff490a4af6"
    }

    Vote

    constitution.vote / *.constitution.vote for the vote ballot in JSON

    Example content:

    {
    "type": "Governance vote",
    "description": "",
    "cborHex": "8482582064e7cad9b3ece...1e235709ffa691001f6"
    }

    SanchoNet delegate representatives (DReps) files

    Below is a list of currently used files related to SanchoNet DRep usage.

    Signing key

    Generated as a normal ed25519 key or derived from path 1852'/1815'/acc'/3/idx' drep.skey / *.drep.skey for the SanchoNet DRep secret-key JSON (see example content below)

    Example content:

    {
    "type": "DRepSigningKey_ed25519",
    "description": "Delegate Representative Signing Key",
    "cborHex": "00000"
    }
    {
    "type": "DRepExtendedSigningKey_ed25519_bip32",
    "description": "Delegate Representative Signing Key",
    "cborHex": "5840d84f8646463b03accf....da82c5dba3b1e4aa0df20b7"
    }

    The keys derived from hardware wallets will have the keyword 'Hardware' in the description field, such as: 'Hardware Delegate Representative Signing Key'.

    Verification key

    drep.vkey / *.drep.vkey for the SanchoNet DRep verification-key JSON (see example content below)

    Example content:

    {
    "type": "DRepVerificationKey_ed25519",
    "description": "Delegate Representative Verification Key",
    "cborHex": "00000"
    }
    {
    "type": "DRepExtendedVerificationKey_ed25519_bip32",
    "description": "Delegate Representative Verification Key",
    "cborHex": "5820fd6b3cda64cf11f9b91ea3c88dffed906bc872f1e24566d68637c718788638d9"
    }

    The keys derived from hardware wallets will have the keyword 'Hardware' in the description field, such as: Hardware Delegate Representative Verification Key

    Identification file (ID)

    drep.id / *.drep.id for the DRep ID in bech format drep1...

    Example content:

    drep12dggdndq3hhjzszukw5k5sulsesjux780s39h087s0p9vk6ylra

    Registration certificate

    drep-reg.cert / *.drep-reg.cert for the registration certificate JSON

    Example content:

    {
    "type": "CertificateConway",
    "description": "DRep Registration Certificate",
    "cborHex": "00000000"
    }

    Retirement certificate

    drep-ret.cert / *.drep-ret.cert for the de-registration/retirement certificate JSON

    Example content:

    {
    "type": "CertificateConway",
    "description": "DRep Retirement Certificate",
    "cborHex": "00000000"
    }

    Vote delegation certificate

    vote-deleg.cert / *.vote-deleg.cert for the vote delegation certificate JSON

    Example content:

    {
    "type": "CertificateConway",
    "description": "Vote Delegation Certificate",
    "cborHex": "83098200581cc827e7d1fb57cf12662203612fe1f0bb3578574b16f90f4a78cd355c8200581c44924d8233e23a4eda97ba2ce0a336d6152171e70960396b4903eb8a"
    }

    Constitution committee files

    Below is a list of currently used files related to the constitution committee member usage.

    Signing key (cold)

    cc-cold.skey / *.cc-cold.skey for the cold constitutional committee member secret-key JSON

    Signing key (hot)

    cc-hot.skey / *.cc-hot.skey for the hot constitutional committee member secret-key JSON

    Verification key (cold)

    cc-cold.vkey / *.cc-cold.vkey for the cold constitutional committee member verification-key JSON

    Verification key (hot)

    cc-hot.vkey / *.cc-hot.vkey for the hot constitutional committee member verification-key JSON

    - + \ No newline at end of file diff --git a/tutorials/jq-filters/index.html b/tutorials/jq-filters/index.html index cc29e592..f8ae0262 100644 --- a/tutorials/jq-filters/index.html +++ b/tutorials/jq-filters/index.html @@ -4,7 +4,7 @@ Useful jq filters | SanchoNet - + @@ -12,7 +12,7 @@

    Useful jq filters

    'jq is like sed for JSON data - you can use it to slice, filter, map, and transform structured data with the same ease that sed, awk, grep and friends let you play with text.'

    Install jq.

    Below you will find some useful jq filters to parse the governance state.

    Show governance actions that will expire at the end of the current epoch:

    current_epoch=$(cardano-cli query tip --testnet-magic 4 | jq .epoch)
    cardano-cli conway query gov-state --testnet-magic 4 \
    | jq --argjson epoch "$current_epoch" '.proposals
    | to_entries[]
    | select(.value.expiresAfter == $epoch)'

    Show governance actions that were proposed in the current epoch:

    current_epoch=$(cardano-cli query tip --testnet-magic 4 | jq .epoch)
    cardano-cli conway query gov-state --testnet-magic 4 \
    | jq -r --argjson epoch "$current_epoch" '.proposals
    | to_entries[]
    | select(.value.proposedIn == $epoch)'

    Sort governance actions by the number of DRep votes:

    cardano-cli conway query gov-state --testnet-magic 4 | jq -r '
    .proposals
    | to_entries[]
    | {govActionId: .value.actionId, type: .value.proposalProcedure.govAction.tag, drepVoteCount: (.value.dRepVotes | keys | length)}
    ' | jq -s 'sort_by(.voteCount) | reverse[]'

    Sort by the number of SPO votes:

    cardano-cli conway query gov-state --testnet-magic 4 | jq -r '
    .proposals
    | to_entries[]
    | {govActionId: .value.actionId, type: .value.proposalProcedure.govAction.tag, spoVoteCount: (.value.stakePoolVotes | keys | length)}
    ' | jq -s 'sort_by(.voteCount) | reverse[]'

    Sort by the number of CC votes:

    cardano-cli conway query gov-state --testnet-magic 4 | jq -r '
    .proposals
    | to_entries[]
    | {govActionId: .value.actionId, type: .value.proposalProcedure.govAction.tag, ccVoteCount: (.value.committeeVotes | keys | length)}
    ' | jq -s 'sort_by(.voteCount) | reverse[]'

    Filter actions that expire within the current and the next two epochs, including information about all roles' votes, sorted by expiration epoch:

    current_epoch=$(cardano-cli query tip --testnet-magic 4 | jq .epoch)
    cardano-cli conway query gov-state --testnet-magic 4 | jq -r --argjson current_epoch "$current_epoch" '
    .proposals
    | to_entries[]
    | select(.value.expiresAfter >= ($current_epoch | tonumber) and .value.expiresAfter <= ($current_epoch + 2))
    | {
    govActionId: .value.actionId,
    type: .value.proposalProcedure.govAction.tag,
    expiresAfter: .value.expiresAfter,
    committeeVotesCount: (.value.committeeVotes | length),
    dRepVotesCount: (.value.dRepVotes | length),
    stakePoolVotesCount: (.value.stakePoolVotes | length)
    }
    ' | jq -s 'sort_by(.expiresAfter)'

    Show actions for which a specific DRep key has voted, indicating the DRep's vote and the total number of votes received for this action:

    Replace keyHash-0e7d17c8a917eaee361924d6471331128b3e0de5323f54d70dd0c8c9 with the hex DRep ID of your interest, if it is a script based DRRep, make sure to use scriptHash instead of keyHash prefix.

    cardano-cli conway query gov-state --testnet-magic 4 | jq -r --arg dRepKey "keyHash-0e7d17c8a917eaee361924d6471331128b3e0de5323f54d70dd0c8c9" '
    .proposals
    | to_entries[]
    | select(.value.dRepVotes[$dRepKey] != null)
    | {
    govActionId: .value.actionId,
    type: .value.proposalProcedure.govAction.tag,
    dRepVote: .value.dRepVotes[$dRepKey],
    expiresAfter: .value.expiresAfter,
    committeeVotesCount: (.value.committeeVotes | length),
    dRepVotesCount: (.value.dRepVotes | length),
    stakePoolVotesCount: (.value.stakePoolVotes | length)
    }
    '

    Show actions where the given DRep key has not voted yet:

    Replace 058b60ead63f667c0ff5b40e269dd1f05ce3a804256735ad4eddce20 with the hex DRep ID of your interest.

    cardano-cli conway query gov-state --testnet-magic 4 | jq -r --arg dRepKey "keyHash-0e7d17c8a917eaee361924d6471331128b3e0de5323f54d70dd0c8c9" '
    .proposals
    | to_entries[]
    | select(.value.dRepVotes[$dRepKey] == null)
    | {
    govActionId: .value.actionId,
    type: .value.proposalProcedure.govAction.tag,
    expiresAfter: .value.expiresAfter,
    committeeVotesCount: (.value.committeeVotes | length),
    dRepVotesCount: (.value.dRepVotes | length),
    stakePoolVotesCount: (.value.stakePoolVotes | length)
    }
    '

    Show the total number of 'yes', 'no', and 'abstain' votes for a given governance action ID:

    Replace "1e08794a48b71ec7e48d3190c7c30455f9538d0e54f4087915ff201167334bc7" and "0" and with the governance action ID and index of your interest.

    and .value.actionId.govActionIx == $actionIndex

    cardano-cli conway query gov-state --testnet-magic 4 \
    | jq -r --arg actionTxId "1e08794a48b71ec7e48d3190c7c30455f9538d0e54f4087915ff201167334bc7" --arg actionIndex "0" ' .proposals
    | to_entries[]
    | select(.value.actionId.txId == $actionTxId and .value.actionId.govActionIx == ($actionIndex | tonumber))
    | {
    govActionId: .value.actionId,
    dRepVoteYesCount: (.value.dRepVotes | with_entries(select(.value == "VoteYes")) | length),
    dRepVoteNoCount: (.value.dRepVotes | with_entries(select(.value == "VoteNo")) | length),
    dRepAbstainCount: (.value.dRepVotes | with_entries(select(.value == "Abstain")) | length),
    stakePoolVoteYesCount: (.value.stakePoolVotes | with_entries(select(.value == "VoteYes")) | length),
    stakePoolVoteNoCount: (.value.stakePoolVotes | with_entries(select(.value == "VoteNo")) | length),
    stakePoolAbstainCount: (.value.stakePoolVotes | with_entries(select(.value == "Abstain")) | length),
    committeeVoteYesCount: (.value.committeeVotes | with_entries(select(.value == "VoteYes")) | length),
    committeeVoteNoCount: (.value.committeeVotes | with_entries(select(.value == "VoteNo")) | length),
    committeeAbstainCount: (.value.committeeVotes | with_entries(select(.value == "Abstain")) | length)
    }
    '

    Show the active treasury withdrawal governance actions and their current vote count:

    current_epoch=$(cardano-cli query tip --testnet-magic 4 | jq .epoch)

    cardano-cli conway query gov-state --testnet-magic 4 | jq -r --arg currentEpoch "$current_epoch" '
    .proposals
    | to_entries[]
    | select(.value.expiresAfter > ($currentEpoch | tonumber) and .value.proposalProcedure.govAction.tag == "TreasuryWithdrawals")
    | { type: .value.proposalProcedure.govAction.tag,
    govActionId: .value.actionId,
    expiresAfter: .value.expiresAfter,
    dRepVoteYesCount: (.value.dRepVotes | with_entries(select(.value == "VoteYes")) | length),
    dRepVoteNoCount: (.value.dRepVotes | with_entries(select(.value == "VoteNo")) | length),
    dRepAbstainCount: (.value.dRepVotes | with_entries(select(.value == "Abstain")) | length),
    committeeVoteYesCount: (.value.committeeVotes | with_entries(select(.value == "VoteYes")) | length),
    committeeVoteNoCount: (.value.committeeVotes | with_entries(select(.value == "VoteNo")) | length),
    committeeAbstainCount: (.value.committeeVotes | with_entries(select(.value == "Abstain")) | length)
    }
    ' | jq -s 'sort_by(.expiresAfter)'

    Show the active update committee governance actions and their current vote count:

    current_epoch=$(cardano-cli query tip --testnet-magic 4 | jq .epoch)

    cardano-cli conway query gov-state --testnet-magic 4 | jq -r --arg currentEpoch "$current_epoch" '
    .proposals
    | to_entries[]
    | select(.value.expiresAfter > ($currentEpoch | tonumber) and.value.proposalProcedure.govAction.tag == "UpdateCommittee")
    | { type: .value.proposalProcedure.govAction.tag,
    govActionId: .value.actionId,
    expiresAfter: .value.expiresAfter,
    dRepVoteYesCount: (.value.dRepVotes | with_entries(select(.value == "VoteYes")) | length),
    dRepVoteNoCount: (.value.dRepVotes | with_entries(select(.value == "VoteNo")) | length),
    dRepAbstainCount: (.value.dRepVotes | with_entries(select(.value == "Abstain")) | length),
    stakePoolVoteYesCount: (.value.stakePoolVotes | with_entries(select(.value == "VoteYes")) | length),
    stakePoolVoteNoCount: (.value.stakePoolVotes | with_entries(select(.value == "VoteNo")) | length),
    stakePoolAbstainCount: (.value.stakePoolVotes | with_entries(select(.value == "Abstain")) | length)
    }
    ' | jq -s 'sort_by(.expiresAfter)'
    - + \ No newline at end of file diff --git a/tutorials/multisig-drep-registration/index.html b/tutorials/multisig-drep-registration/index.html index d6b1a1ef..38f20854 100644 --- a/tutorials/multisig-drep-registration/index.html +++ b/tutorials/multisig-drep-registration/index.html @@ -4,7 +4,7 @@ Registering a multisignature delegate representative (DRep) | SanchoNet - + @@ -16,7 +16,7 @@ to evaluate to True if and only if at least two valid sigantures are present, this is captured by the fields type and required.

    1. Use a text editor to build your script, let's name it drep-multisig.json:
    {
    "type": "atLeast",
    "required": 2,
    "scripts": [
    {
    "type": "sig",
    "keyHash": "e6d27c194fd18f39e080073e5ea02aa78abe4b6c84d78a498302461c"
    },
    {
    "type": "sig",
    "keyHash": "5ab00e8cd1142fcffc5f7a2c2e3549874afd89e26995d7686c2714d4"
    },
    {
    "type": "sig",
    "keyHash": "db5a8cbb0df0359c36541727229993b21371f834202733c9bbabc1fd"
    }
    ]
    }

    We can choose a different type of script, for example type "any", where the script evaluates to True with a single valid signature from the list:

    {
    "type": "any",
    "scripts": [
    {
    "type": "sig",
    "keyHash": "e6d27c194fd18f39e080073e5ea02aa78abe4b6c84d78a498302461c"
    },
    {
    "type": "sig",
    "keyHash": "5ab00e8cd1142fcffc5f7a2c2e3549874afd89e26995d7686c2714d4"
    },
    {
    "type": "sig",
    "keyHash": "db5a8cbb0df0359c36541727229993b21371f834202733c9bbabc1fd"
    }
    ]
    }

    Or for a more strict setup we can use type "all", where all the signatures are required:

    {
    "type": "all",
    "scripts": [
    {
    "type": "sig",
    "keyHash": "e6d27c194fd18f39e080073e5ea02aa78abe4b6c84d78a498302461c"
    },
    {
    "type": "sig",
    "keyHash": "5ab00e8cd1142fcffc5f7a2c2e3549874afd89e26995d7686c2714d4"
    },
    {
    "type": "sig",
    "keyHash": "db5a8cbb0df0359c36541727229993b21371f834202733c9bbabc1fd"
    }
    ]
    }

    Generate the DRep registration certificate

    1. We'll need the script hash (the DRep ID), calculate it with:
    cardano-cli conway governance hash script \
    --script-file drep-multisig.json \
    --out-file drep-multisig.id
    cat drep-multisig.id
    d862ee2eb3ce246b23ff7e1f62ae0705013e793787485cb6e1845356
    1. Get the DRep deposit amount and store in a variable:
    drepDeposit=$(cardano-cli conway query gov-state --testnet-magic 4 | jq -r .currentPParams.dRepDeposit)
    1. Generate the DRep registration certificate:
    cardano-cli conway governance drep registration-certificate \
    --drep-script-hash "$(cat drep-multisig.id)" \
    --key-reg-deposit-amt "$drepDeposit" \
    --out-file drep-multisig-reg.cert

    Submit the Registration certificate in a transaction

    1. Build the transaction. Note that we use --witness-override 4 because this tranaction will contain up to 4 signatures, 1 from the payment key and up to 3 members of the DRep.
    cardano-cli conway transaction build \
    --testnet-magic 4 \
    --tx-in $(cardano-cli conway query utxo --address $(cat payment.addr) --testnet-magic 4 --output-json | jq -r 'keys[0]') \
    --change-address $(cat payment.addr) \
    --witness-override 4 \
    --certificate-file drep-multisig-reg.cert \
    --certificate-script-file drep-multisig.json \
    --out-file tx.raw
    1. Each member of the DRep will witness the transaction with its individual keys from step 1. In addition, we need the witness from the payment address to pay for the transaction fee.

    Witnessing the transaction with the payment key:

    cardano-cli conway transaction witness \
    --testnet-magic 4 \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --out-file payment.witness

    Witnessing the transaction with the DRep keys from each memeber:

    cardano-cli conway transaction witness \
    --testnet-magic 4 \
    --tx-body-file tx.raw \
    --signing-key-file drep1.skey \
    --out-file drep1.witness
    cardano-cli conway transaction witness \
    --testnet-magic 4 \
    --tx-body-file tx.raw \
    --signing-key-file drep2.skey \
    --out-file drep2.witness
    cardano-cli conway transaction witness \
    --testnet-magic 4 \
    --tx-body-file tx.raw \
    --signing-key-file drep3.skey \
    --out-file drep3.witness
    1. Assemble the tranaction with all the witnesses from previous step:
    cardano-cli transaction assemble \
    --tx-body-file tx.raw \
    --witness-file payment.witness \
    --witness-file drep1.witness \
    --witness-file drep2.witness \
    --witness-file drep3.witness \
    --out-file tx.signed
    1. Submit the transaction
    cardano-cli conway transaction submit \
    --testnet-magic 4 \
    --tx-file tx.signed
    1. Query the DRep state to confirm
    cardano-cli conway query drep-state \
    --testnet-magic 4 \
    --drep-script-hash $(cat drep-multisig.id)
    [
    [
    {
    "scriptHash": "d862ee2eb3ce246b23ff7e1f62ae0705013e793787485cb6e1845356"
    },
    {
    "anchor": null,
    "deposit": 2000000,
    "expiry": 270
    }
    ]
    ]

    Awesome! Now, we just need to delegate voting power to our DRep!

    - + \ No newline at end of file diff --git a/tutorials/register-stake-address/index.html b/tutorials/register-stake-address/index.html index ab2205e3..02975b13 100644 --- a/tutorials/register-stake-address/index.html +++ b/tutorials/register-stake-address/index.html @@ -4,14 +4,14 @@ Stake address registration certificate | SanchoNet - +

    Stake address registration certificate

    To take part on the SanchoNet consensus protocol, we need to submit a stake address registration certificate to the chain. This allows to delegate stake to a SanchoNet stake pool and votes to a SanchoNet delegate representative (DRep).

    Pre-requisites

    • Stake key pair
    • Payment key pair
    • Address with funds
    • A SanchoNet node

    Generate the registration certificate

    1. Register the stake address you previously created by generating a registration certificate:
    cardano-cli conway stake-address registration-certificate \
    --stake-verification-key-file stake.vkey \
    --key-reg-deposit-amt $(cardano-cli conway query gov-state --testnet-magic 4 | jq .currentPParams.stakeAddressDeposit) \
    --out-file registration.cert

    Submit the certificate to the chain

    1. Build, sign and submit the transaction.
    • Build the transaction:
    cardano-cli conway transaction build \
    --testnet-magic 4 \
    --witness-override 2 \
    --tx-in $(cardano-cli query utxo --address $(cat payment.addr) --testnet-magic 4 --out-file /dev/stdout | jq -r 'keys[0]') \
    --change-address $(cat payment.addr) \
    --certificate-file registration.cert \
    --out-file tx.raw
    • Sign the transaction:
    cardano-cli conway transaction sign \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --signing-key-file stake.skey \
    --testnet-magic 4 \
    --out-file tx.signed
    • Submit the transaction:
    cardano-cli conway transaction submit \
    --testnet-magic 4 \
    --tx-file tx.signed
    - + \ No newline at end of file diff --git a/tutorials/stake-pool-registration/index.html b/tutorials/stake-pool-registration/index.html index d492cfb0..c424dffd 100644 --- a/tutorials/stake-pool-registration/index.html +++ b/tutorials/stake-pool-registration/index.html @@ -4,7 +4,7 @@ Register a stake pool | SanchoNet - + @@ -13,7 +13,7 @@ specific port that you'll be using for the Cardano node. This ensures that only your relay node can communicate with your block producer.

  • Configure the firewall for outgoing connections: enable the firewall to allow outgoing connections, preferably, only to your own relay's IP and port.

  • Run the node with P2P topology: start your node using the P2P topology configuration. This time, replace "address":"x.x.x.x" and "port":3000 with the actual IP address and the port of your own relay node. Note that the block producer does not connect to sanchonet-node.world.dev.cardano.org and we avoid using ledger peers by setting "useLedgerAfterSlot¨to -1

  • {
    "localRoots":[
    {
    "accessPoints":[
    {
    "address":"x.x.x.x",
    "port":3000
    }
    ],
    "advertise":false,
    "valency":2
    }
    ],
    "publicRoots":[
    {
    "accessPoints":[
    ],
    "advertise":false
    }
    ],
    "useLedgerAfterSlot":-1
    }

    Install jq and set the node socket path

    1. Install jq, a tool that will assist in parsing the UTXOs for transactions:
    sudo apt-get install jq -y
    1. Set the CARDANO_NODE_SOCKET_PATH variable to the path of node.socket that you identified when starting the node:
    export CARDANO_NODE_SOCKET_PATH=~/node.socket

    Register the stake address

    1. Register the stake address you previously created by generating a registration certificate:
    cardano-cli conway stake-address registration-certificate \
    --stake-verification-key-file stake.vkey \
    --key-reg-deposit-amt $(cardano-cli conway query gov-state --testnet-magic 4 | jq .currentPParams.stakeAddressDeposit) \
    --out-file registration.cert
    1. Create a transaction to submit the stake key registration certificate to the chain. Creating a transaction using the CLI always involves a three-step process: BUILDING, SIGNING, AND SUBMITTING the transaction.
    • Build the transaction:
    cardano-cli conway transaction build \
    --testnet-magic 4 \
    --witness-override 2 \
    --tx-in $(cardano-cli query utxo --address $(cat payment.addr) --testnet-magic 4 --out-file /dev/stdout | jq -r 'keys[0]') \
    --change-address $(cat payment.addr) \
    --certificate-file registration.cert \
    --out-file tx.raw
    • Sign the transaction:
    cardano-cli conway transaction sign \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --signing-key-file stake.skey \
    --testnet-magic 4 \
    --out-file tx.signed
    • Submit the transaction:
    cardano-cli conway transaction submit \
    --testnet-magic 4 \
    --tx-file tx.signed

    Generate keys for the stake pool

    1. Generate cold keys and the operational certificate for your pool:
    cardano-cli conway node key-gen \
    --cold-verification-key-file cold.vkey \
    --cold-signing-key-file cold.skey \
    --operational-certificate-issue-counter-file opcert.counter
    1. Generate the key-evolving-signature (KES) keys:
    cardano-cli conway node key-gen-KES \
    --verification-key-file kes.vkey \
    --signing-key-file kes.skey
    1. Generate VRF keys:
    cardano-cli conway node key-gen-VRF \
    --verification-key-file vrf.vkey \
    --signing-key-file vrf.skey

    Generate the registration and delegation certificates for the pool

    1. Create your stake pool registration certificate:
    cardano-cli conway stake-pool registration-certificate \
    --cold-verification-key-file cold.vkey \
    --vrf-verification-key-file vrf.vkey \
    --pool-pledge 9000000000 \
    --pool-cost 340000000 \
    --pool-margin 0.05 \
    --pool-reward-account-verification-key-file stake.vkey \
    --pool-owner-stake-verification-key-file stake.vkey \
    --testnet-magic 4 \
    --pool-relay-ipv4 <RELAY NODE PUBLIC IP> \
    --pool-relay-port <RELAY NODE PORT> \
    --out-file pool-registration.cert
    1. Create a stake delegation certificate:
    cardano-cli conway stake-address stake-delegation-certificate \
    --stake-verification-key-file stake.vkey \
    --cold-verification-key-file cold.vkey \
    --out-file delegation.cert

    Submit the certificates in a transaction

    1. Build, sign and submit the transaction
    • Build:
    cardano-cli conway transaction build \
    --testnet-magic 4 \
    --witness-override 3 \
    --tx-in $(cardano-cli query utxo --address $(cat payment.addr) --testnet-magic 4 --out-file /dev/stdout | jq -r 'keys[0]') \
    --change-address $(cat payment.addr) \
    --certificate-file pool-registration.cert \
    --certificate-file delegation.cert \
    --out-file tx.raw
    • Sign:
    cardano-cli conway transaction sign \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --signing-key-file cold.skey \
    --signing-key-file stake.skey \
    --testnet-magic 4 \
    --out-file tx.signed
    • Submit:
    cardano-cli conway transaction submit \
    --testnet-magic 4 \
    --tx-file tx.signed
    1. Get your pool ID, you will need to get a delegation from the faucet:
    cardano-cli conway stake-pool id \
    --cold-verification-key-file cold.vkey \
    --output-format bech32 \
    --out-file pool.id

    Starting the node as a block-producer

    1. Generate your operational certificate:
    slotsPerKESPeriod=$(cat shelley-genesis.json | jq -r '.slotsPerKESPeriod')
    slotNo=$(cardano-cli query tip --testnet-magic 4 | jq -r '.slot')
    kesPeriod=$((${slotNo} / ${slotsPerKESPeriod}))
    cardano-cli conway node issue-op-cert --kes-verification-key-file kes.vkey --cold-signing-key-file cold.skey --operational-certificate-issue-counter-file opcert.counter --kes-period ${kesPeriod} --out-file opcert.cert
    1. Request a stake delegation from the faucet. Note that although the delegation will ocurr immediately, you will need two more epochs for your Block producer to start creating blocks. This due to the stake snashopt mechanism.

    2. Restart your node using your pool credentials:

    cardano-node run --topology topology.json \
    --database-path db \
    --socket-path node.socket \
    --shelley-kes-key kes.skey \
    --shelley-vrf-key vrf.skey \
    --shelley-operational-certificate opcert.cert \
    --port 3001 \
    --config config.json
    1. Your stake pool will take part of the stake snapshot on the next epoch boundary. After that, you will be able to query the stake delegated to your pool:
    cardano-cli conway query stake-snapshot \
    --testnet-magic 4 \
    --stake-pool-id <pool_id>
    1. After two epochs (2 days in SanchoNet) your stake pool should start producing blocks, the easiest way to verify it is to grep your node logs
    grep -e TraceForgedBlock
    - + \ No newline at end of file diff --git a/tutorials/start-node/index.html b/tutorials/start-node/index.html index 59577d0c..2e2e4927 100644 --- a/tutorials/start-node/index.html +++ b/tutorials/start-node/index.html @@ -4,13 +4,13 @@ Start a SanchoNet node | SanchoNet - +
    -

    Start a SanchoNet node

    Download or build cardano-node and cardano-cli binaries:

    • The latest version for SanchoNet is 8.11.0-sancho. See releases.

    Get configuration files

    wget https://book.world.dev.cardano.org/environments/sanchonet/config.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/topology.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/byron-genesis.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/shelley-genesis.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/alonzo-genesis.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/conway-genesis.json

    Run the node

    cardano-node run --topology topology.json \
    --database-path db \
    --socket-path node.socket \
    --port 3001 \
    --config config.json

    Need help?

    For a step-by-step tutorial on how to build and run a node please visit Cardano node course | Building and running the node.

    - +

    Start a SanchoNet node

    Download or build cardano-node and cardano-cli binaries:

    Get configuration files

    wget https://book.world.dev.cardano.org/environments/sanchonet/config.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/topology.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/byron-genesis.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/shelley-genesis.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/alonzo-genesis.json
    wget https://book.world.dev.cardano.org/environments/sanchonet/conway-genesis.json

    Run the node

    cardano-node run --topology topology.json \
    --database-path db \
    --socket-path node.socket \
    --port 3001 \
    --config config.json

    Need help?

    For a step-by-step tutorial on how to build and run a node please visit Cardano node course | Building and running the node.

    + \ No newline at end of file diff --git a/tutorials/vote-action/index.html b/tutorials/vote-action/index.html index 9f94e7d8..5ae8cd42 100644 --- a/tutorials/vote-action/index.html +++ b/tutorials/vote-action/index.html @@ -4,13 +4,13 @@ Voting on governance actions | SanchoNet - +

    Voting on governance actions

    Pre-requisites

    • Payment key pair
    • Address with funds
    • CC hot, DRep OR stake pool keys
    • A SanchoNet node

    To vote on governance actions, follow this process:

    1. Obtain the action ID of an ongoing governance action from Discord or query the governance state.
    2. Determine your voting stance; engage in discussion if required
    3. Construct your vote file through the Cardano CLI. The example below demonstrates voting --yes, although options for --no or --abstain are also available.

    Verify the content of the governance action

    Assume that we have been given the action ID df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79#0 for a new constitution proposal.

    1. Obtain the URL and hash of the new constitution proposal from the governance state:
    cardano-cli conway query gov-state --testnet-magic 4 | \
    jq -r --arg govActionId "df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79" '.proposals | to_entries[] | select(.value.actionId.txId | contains($govActionId)) | .value'
    {
    "action": {
    "contents": [
    null,
    {
    "anchor": {
    "dataHash": "5d372dca1a4cc90d7d16d966c48270e33e3aa0abcb0e78f0d5ca7ff330d2245d",
    "url": "https://tinyurl.com/mr3ferf9"
    }
    }
    ],
    "tag": "NewConstitution"
    },
    "actionId": {
    "govActionIx": 0,
    "txId": "df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79"
    },
    "committeeVotes": {
    "keyHash-c8ac605b25d6084c2ceb28043c8f01b62629966d038a249c7847d66d": "VoteYes",
    "keyHash-d13507f7e7fb8ac3ce2094187c9d99d4601021e9ef5a5f310567765d": "VoteYes"
    },
    "dRepVotes": {
    "keyHash-16faaf6daa2635bbf53bbbaf38b3a6040adf7ced2f7f08952592cf5b": "VoteYes",
    "keyHash-57cb90cfb635e76af648abf1b6a91519218a5919b3cba2527e3725d1": "VoteYes",
    "keyHash-7d84808d563f0f258ad7e4337c2c4bd13010930ebdf7b86c3bfd9ef8": "VoteYes"
    },
    "deposit": 0,
    "expiresAfter": 80,
    "proposedIn": 78,
    "returnAddr": {
    "credential": {
    "keyHash": "f925cbd4eb78aad49ec7bf9b4ddfa4cc4486c967e392699d143c81aa"
    },
    "network": "Testnet"
    },
    "stakePoolVotes": {}
    }
    1. Download the file from the URL registered on the ledger state:
    wget https://tinyurl.com/mr3ferf9 -O constitution.txt
    1. Verify that the hash of the file matches the dataHashfrom the ledger state:
    b2sum -l 256 constitution.txt
    5d372dca1a4cc90d7d16d966c48270e33e3aa0abcb0e78f0d5ca7ff330d2245d constitution.txt

    Everything is in order; the text at the URL matches the dataHash, confirming that the text at the URL is precisely what we are voting for.

    In the future, voting apps, explorers, wallets, and other tools could perform the filtering, ensuring that they only display actions whose URL content has been verified against the hash on the ledger state.

    Create the vote file

    1. Vote with DRep keys:
    cardano-cli conway governance vote create \
    --yes \
    --governance-action-tx-id "df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79" \
    --governance-action-index "0" \
    --drep-verification-key-file drep.vkey \
    --out-file df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79-constitution.vote
    1. Vote with CC hot keys:
    cardano-cli conway governance vote create \
    --yes \
    --governance-action-tx-id "df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79" \
    --governance-action-index "0" \
    --cc-hot-verification-key-file cc-hot.vkey \
    --out-file df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79-constitution.vote
    1. Vote with SPO keys:
    cardano-cli conway governance vote create \
    --yes \
    --governance-action-tx-id "df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79" \
    --governance-action-index "0" \
    --cold-verification-key-file cold.vkey \
    --out-file df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79-constitution.vote

    Include the vote in a transaction

    • Build the transaction:
    cardano-cli conway transaction build --testnet-magic 4 \
    --tx-in "$(cardano-cli query utxo --address $(cat payment.addr) --testnet-magic 4 --out-file /dev/stdout | jq -r 'keys[0]')" \
    --change-address $(cat payment.addr) \
    --vote-file df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79-constitution.vote \
    --witness-override 2 \
    --out-file vote-tx.raw
    • Sign it with the DRep key:
    cardano-cli transaction sign --tx-body-file vote-tx.raw \
    --signing-key-file drep.skey \
    --signing-key-file payment.skey \
    --testnet-magic 4 \
    --out-file vote-tx.signed
    • OR sign it with the CC hot key:
    cardano-cli transaction sign --tx-body-file vote-tx.raw \
    --signing-key-file cc-hot.skey \
    --signing-key-file payment.skey \
    --testnet-magic 4 \
    --out-file vote-tx.signed
    • OR sign it with the SPO cold key:
    cardano-cli transaction sign --tx-body-file vote-tx.raw \
    --signing-key-file cold.skey \
    --signing-key-file payment.skey \
    --testnet-magic 4 \
    --out-file vote-tx.signed
    • Submit the transaction:
    cardano-cli transaction submit --testnet-magic 4 --tx-file vote-tx.signed
    - + \ No newline at end of file diff --git a/tutorials/vote-multisig-drep/index.html b/tutorials/vote-multisig-drep/index.html index c97311a1..e4b9c3d6 100644 --- a/tutorials/vote-multisig-drep/index.html +++ b/tutorials/vote-multisig-drep/index.html @@ -4,14 +4,14 @@ Voting on governance actions as a multisignature DRep | SanchoNet - +

    Voting on governance actions as a multisignature DRep

    Pre-requisites

    To vote on governance actions, follow this process:

    1. Obtain the action ID of an ongoing governance action from Discord or query the governance state.
    2. Determine your voting stance; engage in discussion if required
    3. Construct your vote file through the Cardano CLI. The example below demonstrates voting --yes, although options for --no or --abstain are also available.

    Verify the content of the governance action

    Assume that we have been given the action ID df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79#0 for a new constitution proposal.

    1. Obtain the URL and hash of the new constitution proposal from the governance state:
    cardano-cli conway query gov-state --testnet-magic 4 | \
    jq -r --arg govActionId "df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79" '.proposals | to_entries[] | select(.value.actionId.txId | contains($govActionId)) | .value'
    {
    "action": {
    "contents": [
    null,
    {
    "anchor": {
    "dataHash": "5d372dca1a4cc90d7d16d966c48270e33e3aa0abcb0e78f0d5ca7ff330d2245d",
    "url": "https://tinyurl.com/mr3ferf9"
    }
    }
    ],
    "tag": "NewConstitution"
    },
    "actionId": {
    "govActionIx": 0,
    "txId": "df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79"
    },
    "committeeVotes": {
    "keyHash-c8ac605b25d6084c2ceb28043c8f01b62629966d038a249c7847d66d": "VoteYes",
    "keyHash-d13507f7e7fb8ac3ce2094187c9d99d4601021e9ef5a5f310567765d": "VoteYes"
    },
    "dRepVotes": {
    "keyHash-16faaf6daa2635bbf53bbbaf38b3a6040adf7ced2f7f08952592cf5b": "VoteYes",
    "keyHash-57cb90cfb635e76af648abf1b6a91519218a5919b3cba2527e3725d1": "VoteYes",
    "keyHash-7d84808d563f0f258ad7e4337c2c4bd13010930ebdf7b86c3bfd9ef8": "VoteYes"
    },
    "deposit": 0,
    "expiresAfter": 80,
    "proposedIn": 78,
    "returnAddr": {
    "credential": {
    "keyHash": "f925cbd4eb78aad49ec7bf9b4ddfa4cc4486c967e392699d143c81aa"
    },
    "network": "Testnet"
    },
    "stakePoolVotes": {}
    }
    1. Download the file from the URL registered on the ledger state:
    wget https://tinyurl.com/mr3ferf9 -O constitution.txt
    1. Verify that the hash of the file matches the dataHashfrom the ledger state:
    b2sum -l 256 constitution.txt
    5d372dca1a4cc90d7d16d966c48270e33e3aa0abcb0e78f0d5ca7ff330d2245d constitution.txt

    Everything is in order; the text at the URL matches the dataHash, confirming that the text at the URL is precisely what we are voting for.

    In the future, voting apps, explorers, wallets, and other tools could perform the filtering, ensuring that they only display actions whose URL content has been verified against the hash on the ledger state.

    Create the vote file

    1. Vote with DRep keys:
    cardano-cli conway governance vote create \
    --yes \
    --governance-action-tx-id "df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79" \
    --governance-action-index "0" \
    --drep-script-hash $(cat drep-multisig.id) \
    --out-file df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79-constitution.vote

    Include the vote in a transaction

    1. Build the transaction:
    cardano-cli conway transaction build \
    --testnet-magic 4 \
    --tx-in-script-file drep-multisig.json \
    --tx-in "$(cardano-cli query utxo --address $(cat payment.addr) --testnet-magic 4 --output-json | jq -r 'keys[0]')" \
    --change-address $(cat payment.addr) \
    --vote-file df58f714c0765f3489afb6909384a16c31d600695be7e86ff9c59cf2e8a48c79-constitution.vote \
    --witness-override 4 \
    --out-file vote-tx.raw
    1. Every member of the DRep witnesses the transaction with their respective signing keys. Additionally, we need to witness the transaction with the payment signing key:
    cardano-cli conway transaction witness \
    --tx-body-file vote-tx.raw \
    --signing-key-file drep1.skey \
    --out-file drep1.witness
    cardano-cli conway transaction witness \
    --tx-body-file vote-tx.raw \
    --signing-key-file drep2.skey \
    --out-file drep2.witness
    cardano-cli conway transaction witness \
    --tx-body-file vote-tx.raw \
    --signing-key-file drep3.skey \
    --out-file drep3.witness
    cardano-cli conway transaction witness \
    --tx-body-file vote-tx.raw \
    --signing-key-file payment.skey \
    --out-file payment.witness
    1. Assemble the transaction:
    cardano-cli transaction assemble \
    --tx-body-file vote-tx.raw \
    --witness-file payment.witness \
    --witness-file drep1.witness \
    --witness-file drep2.witness \
    --witness-file drep3.witness \
    --out-file vote-tx.signed
    1. Submit the transaction:
    cardano-cli transaction submit --testnet-magic 4 --tx-file vote-tx.signed
    - + \ No newline at end of file diff --git a/why-sanchonet/barataria/index.html b/why-sanchonet/barataria/index.html index b38c318b..3982459f 100644 --- a/why-sanchonet/barataria/index.html +++ b/why-sanchonet/barataria/index.html @@ -4,14 +4,14 @@ Barataria | SanchoNet - +

    Barataria

    Barataria plays a unique and significant role in 'Don Quixote.' While existing only in fiction, its symbolism and the events that unfold within its imagined boundaries contribute meaningfully to the novel's exploration of leadership, governance, idealism, and reality.

    In the story, Barataria is a fictional island promised to Sancho Panza, Don Quixote's loyal squire, as a reward for his devoted service. The pledge of ruling Barataria fuels Sancho's dreams and expectations. When a duke and duchess, entertained by Don Quixote and Sancho, decide to actualize this promise, they execute an elaborate prank by appointing Sancho as the governor of the nonexistent island.

    The Barataria episode offers an opportunity to explore Sancho's character, unveiling his practical wisdom and inherent common sense. Despite the absurd situations aimed at testing and mocking him, Sancho governs with dignity, simplicity, and intelligence. His judgments and decrees are marked by a natural grasp of justice and human nature. Instead of becoming a fool in a comedic setting, Sancho turns Barataria into a stage for showcasing his authentic wisdom and leadership.

    Barataria also serves as a mirror to the broader themes of the novel. Just as Don Quixote's idealism often clashes with the harsh realities of the world, Sancho's time in Barataria illustrates the tension between appearance and substance, dream and reality, folly and wisdom. It is a microcosm of the novel's intricate dance between the world as it is and the world as it could be.

    Barataria serves as a link between the lofty ideals of chivalry embodied by Don Quixote and the grounded realism of Sancho. Within this imaginary island, the dreams of both characters converge, and their contrasts find a harmonious resolution.

    In Western literature, the Barataria episode has transcended its origin to become a symbol of leadership that is wise, compassionate, and unpretentious. It stands as a reminder that true wisdom often resides in simplicity and that leadership can be found in the most unlikely places.

    - + \ No newline at end of file diff --git a/why-sanchonet/don-quixote/index.html b/why-sanchonet/don-quixote/index.html index 1a3ed482..84a37642 100644 --- a/why-sanchonet/don-quixote/index.html +++ b/why-sanchonet/don-quixote/index.html @@ -4,14 +4,14 @@ Don Quixote | SanchoNet - +

    Don Quixote

    Alonso Quijano, the man who would become Don Quixote, begins as an ordinary gentleman from the La Mancha region. He's known to be deeply fixated on books of chivalry. This eventually causes him to lose touch with reality. He decides to resurrect the age of chivalry, renaming himself 'Don Quixote de la Mancha.' This signifies the onset of his transformation, both in regard to his identity and how the world views him.

    In the beginning, Don Quixote's idealism is unrestrained and almost childlike. He perceives the world through a fantastical lens, turning windmills into giants and common inns into castles. His commitment to chivalric codes and virtues is unwavering, albeit frequently misdirected. His notions of honor, justice, and love are drawn from his readings, not real-life encounters. This often leads him into absurd and humorous predicaments. Don Quixote's idealism often materializes as a stubborn refusal to see the world as it truly is, exemplified by his renowned attack on windmills that he misidentifies as giants.

    As the novel unfolds, Don Quixote's character gradually evolves. The initial portrayal of a madman driven by unattainable dreams slowly gives way to a more nuanced and intricate individual. Despite his delusions, nobility resides in his ideals that begin to resonate with those around him. His faith in his knightly mission affects those he encounters, and even those who initially dismiss him as mad come to recognize the sincerity and purity of his beliefs.

    While his squire, Sancho Panza, serves as a foil and grounding influence, Don Quixote also influences Sancho. The relationship between the two characters deepens, as each leaves their mark on the other. Over time, Don Quixote's lofty ideals gradually meld with a more pragmatic grasp of reality, while Sancho starts to appreciate the merits of his master's chivalric worldview.

    As the story concludes, Don Quixote's character experiences a remarkable evolution. His adventures have led to personal growth, deepening wisdom, and a more profound understanding of himself and the world around him. The sharp contrast between idealism and realism has dissolved, giving rise to a more harmonized and human portrayal.

    The culmination of this evolution arrives with the tragic realization of his madness and his decision to forsake his knightly persona, reverting back to Alonso Quijano. This final transformation is tinged with sadness, as it signifies the loss of the beautiful ideals that drove him, but it also represents a return to sanity and a reconciliation with the real world.

    The character of Don Quixote is multi-layered, showcasing a complex evolution. Starting from the naive and delusional Quijano, progressing to the quixotic yet profoundly honorable Don Quixote, and culminating in the wiser and more self-aware man by the narrative's closure, Cervantes skillfully constructs a character that encapsulates the human conflict between idealism and reality. His journey resonates because it mirrors the quest for meaning, virtue, and self-understanding, making Don Quixote a timeless and universal figure in literature.

    - + \ No newline at end of file diff --git a/why-sanchonet/index.html b/why-sanchonet/index.html index d60681bf..c7cabf84 100644 --- a/why-sanchonet/index.html +++ b/why-sanchonet/index.html @@ -4,13 +4,13 @@ Why SanchoNet? | SanchoNet - +

    Why SanchoNet?

    The selection of the name 'SanchoNet' draws inspiration from the intricate and multifaceted character of Sancho Panza, Don Quixote’s companion in Miguel de Cervantes’ literary classic. In the narrative, Sancho's transformation from a humble farmer to a wise governor and loyal friend mirrors virtues that align with the principles steering the evolution and governance of this network.

    Sancho's growth throughout the novel represents a synthesis of realism and idealism. He starts with a practical, down-to-earth perspective but gradually appreciates and even embraces the nobility in Don Quixote's vision of chivalry. His transformation culminates in the episode of governing the fictional 'Island of Barataria,' where his innate wisdom and common sense guide him in delivering fair and wise judgments.

    Sancho's capability to harmonize pragmatic realities with lofty ideals mirrors the essence of SanchoNet. Much like Sancho, the mission of SanchoNet is to cultivate a system that remains grounded in reality while guided by visionary principles. The ultimate goal? To establish a platform where every voice holds significance, embracing inclusivity and pragmatic wisdom in governance.

    The choice of 'SanchoNet' also mirrors the character's transformative journey, echoing the broader themes of growth, self-assurance, and integrity that resonate throughout 'Don Quixote.' The parallel between Sancho and the chivalric code, his self-discovery, and his courage to embrace the extraordinary within himself symbolizes Cardano's aspiration to innovate, empower individuals, and attain greatness.

    Moreover, the intimate relationship between Don Quixote and Sancho, characterized by friendship, mutual influence, and a complex balance between dreams and reality, parallels the collaborative spirit that SanchoNet aims to cultivate within the Cardano community. This partnership transcends mere transactional engagements and evolves into a collective journey toward a more equitable, visionary, and improved ecosystem.

    - + \ No newline at end of file diff --git a/why-sanchonet/sancho-panza/index.html b/why-sanchonet/sancho-panza/index.html index 53cf530e..3b2e38e9 100644 --- a/why-sanchonet/sancho-panza/index.html +++ b/why-sanchonet/sancho-panza/index.html @@ -4,7 +4,7 @@ Sancho Panza | SanchoNet - + @@ -17,7 +17,7 @@ them against the skepticism of others. By the end of the story, Sancho's character grows into a synthesis of realism and idealism, embodying the wisdom of the common man and the nobility of the knight-errant.

    Sancho's evolution is a testament to the profound impact of friendship, idealism, and personal growth. His journey reflects the novel's rich exploration of human nature, presenting a timeless portrayal of an ordinary man achieving greatness through wisdom, integrity, and the courage to embrace the extraordinary within himself.

    - + \ No newline at end of file