diff --git a/404.html b/404.html index d5c16506..50e3b2d9 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 6dbfac9d..5bc8c055 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 56f3cff7..abcde89b 100644 --- a/actions/index.html +++ b/actions/index.html @@ -4,13 +4,13 @@ SanchoNet governance actions | SanchoNet - +
Skip to main content

SanchoNet governance actions

CIP-1694 describes seven types of governance actions.

ActionDescription
1. Motion of no-confidenceA motion to create a state of no-confidence in the current constitutional committee
2. New constitutional committee and/or threshold and/or term limitsModifications to the members of the constitutional committee, signature threshold, or term limits
3. Updates to the constitutionModifications to the off-chain constitution, recorded as an on-chain hash of the text document
4. Hard fork initiationA non-backward compatible upgrade of the network, which requires a prior software upgrade
5. Protocol parameter changesAny change to one or more updatable protocol parameters, excluding changes to major protocol versions ('hard forks')
6. Treasury withdrawalsTreasury withdrawals are sub-categorized into small, medium, or large and are determined by the amount of lovelace to be withdrawn.
7. InfoAn action that doesn't have any on-chain impact except for being recorded on-chain.

Each type of governance action represents a distinct feature within cardano-node and cardano-cli. As such, they will be rolled out in phases, coinciding with the integration of each feature.

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/d0d6894e.01ff3cab.js b/assets/js/d0d6894e.78588c72.js similarity index 79% rename from assets/js/d0d6894e.01ff3cab.js rename to assets/js/d0d6894e.78588c72.js index 1256512a..fe1e3321 100644 --- a/assets/js/d0d6894e.01ff3cab.js +++ b/assets/js/d0d6894e.78588c72.js @@ -1 +1 @@ -"use strict";(self.webpackChunksanchonet=self.webpackChunksanchonet||[]).push([[447],{3227:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>E,contentTitle:()=>b,default:()=>S,frontMatter:()=>h,metadata:()=>g,toc:()=>y});var r=a(7462),n=a(7294),o=a(3905),s=a(614),c=a(6010),l=a(7536),i=a(2263),u=a(4853);const d={wrapper:"wrapper_ZNPi",response:"response_qfda",form:"form_jNAG",disabled:"disabled_rWZm",captcha:"captcha_KbFd",error:"error_Z4m0",coin:"coin_MRz8"},m=e=>{let{name:t}=e;const{siteConfig:{customFields:a}}=(0,i.Z)(),{field:o,fieldState:s,formState:c}=(0,l.bc)({name:t});return n.createElement("div",null,n.createElement(u.Z,(0,r.Z)({},o,{sitekey:String(a.recaptchaSiteKey)??""})),s.error&&n.createElement("p",{className:d.error},s.error.message))};function p(e){switch(e){case"FaucetWebErrorInvalidApiKey":return"Invalid API key";case"FaucetWebErrorKeyCantDelegate":return"Key can't delegate";case"FaucetWebErrorRateLimitExeeeded":return"Rate limit exceeded, please try later";case"FaucetWebErrorUtxoNotFound":return"UTXO not found";case"FaucetWebErrorStakeKeyNotFound":return"Stake key not found";case"FaucetWebErrorAlreadyDelegated":return"Already delegated";default:return e.replace("FaucetWebError","")}}function f(){const e=(0,l.cI)({defaultValues:{type:"default",action:"funds"}}),t="address",a="poolid",o="apiKey",i="action",u=e.watch("action"),[f,h]=(0,n.useState)(null);return n.createElement("div",{className:d.wrapper},n.createElement(l.RV,e,n.createElement("form",{onSubmit:e.handleSubmit((async t=>{if(console.log(t),!t["g-recaptcha-response"])return void e.setError("g-recaptcha-response",{type:"manual",message:"Please complete the recaptcha"});const a=new URLSearchParams(t),r=new URL(`${function(e){return"delegation"===e.action?"https://faucet.sanchonet.world.dev.cardano.org/delegate":"https://faucet.sanchonet.world.dev.cardano.org/send-money"}(t)}?${a}`),n=await fetch(r,{method:"GET"});if(200===n.status){const t=await n.json();t.error?e.setError("root",{type:"manual",message:p(t.error.tag)}):h(t)}})),className:d.form},n.createElement("input",(0,r.Z)({},e.register("type"),{type:"hidden",name:"type",value:"default"})),n.createElement("label",{htmlFor:i},"Action"),n.createElement("select",(0,r.Z)({},e.register("action"),{id:i,className:d.coin}),n.createElement("option",{value:"funds"},"Test ADA"),n.createElement("option",{value:"delegation"},"Stake delegation")),n.createElement("label",{className:(0,c.Z)({[d.disabled]:"delegation"===u}),htmlFor:t},"address (required)"),n.createElement("input",(0,r.Z)({},e.register("address"),{id:t,disabled:"delegation"===u,required:!0,type:"text"})),n.createElement("label",{className:(0,c.Z)({[d.disabled]:"funds"===u}),htmlFor:a},"pool id (required)"),n.createElement("input",(0,r.Z)({},e.register("poolid"),{id:a,required:!0,disabled:"funds"===u,type:"text"})),n.createElement("label",{htmlFor:o},"api key (optional)"),n.createElement("input",(0,r.Z)({},e.register("api_key"),{id:o,type:"text"})),n.createElement("div",{className:d.captcha},n.createElement(m,{name:"g-recaptcha-response"})),n.createElement("button",{className:"button button--primary button--lg",type:"submit"},"Submit")),e.formState.errors.root&&n.createElement("p",{className:d.error},e.formState.errors.root.message),f&&n.createElement("div",{className:d.response},n.createElement(s.Z,{language:"json"},JSON.stringify(f,null,2)))))}const h={sidebar_label:"Faucet",title:"SanchoNet faucet",sidebar_position:5,slug:"/faucet"},b=void 0,g={unversionedId:"faucet",id:"faucet",title:"SanchoNet faucet",description:"To request funds from the faucet:",source:"@site/docs/faucet.mdx",sourceDirName:".",slug:"/faucet",permalink:"/faucet",draft:!1,editUrl:"https://github.com/input-output-hk/sanchonet/tree/master/docs/faucet.mdx",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_label:"Faucet",title:"SanchoNet faucet",sidebar_position:5,slug:"/faucet"},sidebar:"docsSidebar",previous:{title:"Overview",permalink:"/actions"},next:{title:"Start a SanchoNet node",permalink:"/tutorials/start-node"}},E={},y=[{value:"To request funds from the faucet:",id:"to-request-funds-from-the-faucet",level:2}],k={toc:y},N="wrapper";function S(e){let{components:t,...a}=e;return(0,o.kt)(N,(0,r.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"to-request-funds-from-the-faucet"},"To request funds from the faucet:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Choose whether you want to request funds or a stake delegation"),(0,o.kt)("li",{parentName:"ol"},"Fill in your details"),(0,o.kt)("li",{parentName:"ol"},"Tick the recaptcha box"),(0,o.kt)("li",{parentName:"ol"},"Click 'Submit'.")),(0,o.kt)(f,{mdxType:"Faucet"}))}S.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunksanchonet=self.webpackChunksanchonet||[]).push([[447],{3227:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>y,contentTitle:()=>b,default:()=>N,frontMatter:()=>h,metadata:()=>g,toc:()=>E});var r=a(7462),n=a(7294),o=a(3905),s=a(614),l=a(6010),c=a(7536),i=a(2263),u=a(4853);const d={wrapper:"wrapper_ZNPi",response:"response_qfda",form:"form_jNAG",disabled:"disabled_rWZm",captcha:"captcha_KbFd",error:"error_Z4m0",coin:"coin_MRz8"},m=e=>{let{name:t}=e;const{siteConfig:{customFields:a}}=(0,i.Z)(),{field:o,fieldState:s,formState:l}=(0,c.bc)({name:t});return n.createElement("div",null,n.createElement(u.Z,(0,r.Z)({},o,{sitekey:String(a.recaptchaSiteKey)??""})),s.error&&n.createElement("p",{className:d.error},s.error.message))};function p(e){switch(e){case"FaucetWebErrorInvalidApiKey":return"Invalid API key";case"FaucetWebErrorKeyCantDelegate":return"Key can't delegate";case"FaucetWebErrorRateLimitExeeeded":return"Rate limit exceeded, please try later";case"FaucetWebErrorUtxoNotFound":return"UTXO not found";case"FaucetWebErrorStakeKeyNotFound":return"Stake key not found";case"FaucetWebErrorAlreadyDelegated":return"Already delegated";default:return e.replace("FaucetWebError","")}}function f(){const e=(0,c.cI)({defaultValues:{type:"default",action:"funds"}}),t="address",a="poolid",o="apiKey",i="action",u=e.watch("action"),[f,h]=(0,n.useState)(null);return n.createElement("div",{className:d.wrapper},n.createElement(c.RV,e,n.createElement("form",{onSubmit:e.handleSubmit((async t=>{if(console.log(t),!t["g-recaptcha-response"])return void e.setError("g-recaptcha-response",{type:"manual",message:"Please complete the recaptcha"});const a=new URLSearchParams(t),r=new URL(`${function(e){return"delegation"===e.action?"https://faucet.sanchonet.world.dev.cardano.org/delegate":"https://faucet.sanchonet.world.dev.cardano.org/send-money"}(t)}?${a}`),n=await fetch(r,{method:"GET"});if(200===n.status){const t=await n.json();t.error?e.setError("root",{type:"manual",message:p(t.error.tag)}):h(t)}})),className:d.form},n.createElement("input",(0,r.Z)({},e.register("type"),{type:"hidden",name:"type",value:"default"})),n.createElement("label",{htmlFor:i},"Action"),n.createElement("select",(0,r.Z)({},e.register("action"),{id:i,className:d.coin}),n.createElement("option",{value:"funds"},"Test ADA"),n.createElement("option",{value:"delegation"},"Stake delegation")),n.createElement("label",{className:(0,l.Z)({[d.disabled]:"delegation"===u}),htmlFor:t},"address (required)"),n.createElement("input",(0,r.Z)({},e.register("address"),{id:t,disabled:"delegation"===u,required:!0,type:"text"})),n.createElement("label",{className:(0,l.Z)({[d.disabled]:"funds"===u}),htmlFor:a},"pool id (required)"),n.createElement("input",(0,r.Z)({},e.register("poolid"),{id:a,required:!0,disabled:"funds"===u,type:"text"})),n.createElement("label",{htmlFor:o},"api key (optional)"),n.createElement("input",(0,r.Z)({},e.register("api_key"),{id:o,type:"text"})),n.createElement("div",{className:d.captcha},n.createElement(m,{name:"g-recaptcha-response"})),n.createElement("button",{className:"button button--primary button--lg",type:"submit"},"Submit")),e.formState.errors.root&&n.createElement("p",{className:d.error},e.formState.errors.root.message),f&&n.createElement("div",{className:d.response},n.createElement(s.Z,{language:"json"},JSON.stringify(f,null,2)))))}const h={sidebar_label:"Faucet",title:"SanchoNet faucet",sidebar_position:5,slug:"/faucet"},b=void 0,g={unversionedId:"faucet",id:"faucet",title:"SanchoNet faucet",description:"To request funds from the faucet:",source:"@site/docs/faucet.mdx",sourceDirName:".",slug:"/faucet",permalink:"/faucet",draft:!1,editUrl:"https://github.com/input-output-hk/sanchonet/tree/master/docs/faucet.mdx",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_label:"Faucet",title:"SanchoNet faucet",sidebar_position:5,slug:"/faucet"},sidebar:"docsSidebar",previous:{title:"Overview",permalink:"/actions"},next:{title:"Start a SanchoNet node",permalink:"/tutorials/start-node"}},y={},E=[{value:"To request funds from the faucet:",id:"to-request-funds-from-the-faucet",level:2}],k={toc:E},v="wrapper";function N(e){let{components:t,...a}=e;return(0,o.kt)(v,(0,r.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"to-request-funds-from-the-faucet"},"To request funds from the faucet:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Choose whether you want to request funds or a stake delegation"),(0,o.kt)("li",{parentName:"ol"},"Fill in your details"),(0,o.kt)("li",{parentName:"ol"},"Tick the recaptcha box"),(0,o.kt)("li",{parentName:"ol"},"Click 'Submit'.")),(0,o.kt)(f,{mdxType:"Faucet"}),(0,o.kt)("br",null),"When you have finished using your test tokens,",(0,o.kt)("br",null),"please return them to the faucet at the following address: addr_test1vz0ua2vyk7r4vufmpqh5v44awg8xff26hxlwyrt3uc67maqtql3kl")}N.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.19eecbcd.js b/assets/js/runtime~main.1c52cca4.js similarity index 97% rename from assets/js/runtime~main.19eecbcd.js rename to assets/js/runtime~main.1c52cca4.js index 7e7c04b5..e740421b 100644 --- a/assets/js/runtime~main.19eecbcd.js +++ b/assets/js/runtime~main.1c52cca4.js @@ -1 +1 @@ -(()=>{"use strict";var e,t,a,r,f,c={},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var a=o[e]={exports:{}};return c[e].call(a.exports,a,a.exports,n),a.exports}n.m=c,e=[],n.O=(t,a,r,f)=>{if(!a){var c=1/0;for(i=0;i=f)&&Object.keys(n.O).every((e=>n.O[e](a[d])))?a.splice(d--,1):(o=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[a,r,f]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var f=Object.create(null);n.r(f);var c={};t=t||[null,a({}),a([]),a(a)];for(var o=2&r&&e;"object"==typeof o&&!~t.indexOf(o);o=a(o))Object.getOwnPropertyNames(o).forEach((t=>c[t]=()=>e[t]));return c.default=()=>e,n.d(f,c),f},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,a)=>(n.f[a](e,t),t)),[])),n.u=e=>"assets/js/"+({2:"5449755a",32:"5886ee98",53:"935f2afb",85:"1f391b9e",86:"49ac7784",113:"98762162",152:"abd7a278",161:"98e22efe",169:"6c8bebe0",173:"3838c1a1",237:"1df93b7f",242:"04a456b0",260:"4c4f17cf",263:"08d3f7f3",356:"27cf304e",398:"86c5ba96",447:"d0d6894e",462:"b0064c08",464:"a18a7492",512:"354cfeef",513:"43b2bb3c",514:"1be78505",552:"aaae1da2",589:"6fddf1e9",595:"36246993",702:"ce2e39ce",705:"038ebd0e",722:"0852ae7f",780:"6d06420b",787:"eeefc164",818:"5a0482dd",895:"c9f32de9",900:"d27e288b",913:"59f459cf",918:"17896441",945:"368b6ce8"}[e]||e)+"."+{2:"13ecf020",32:"459248fa",44:"cad7b82b",53:"eca14259",85:"526d48b7",86:"58074137",113:"5de230fa",152:"861664bd",161:"45bdf6df",169:"676107d8",173:"c6427e81",237:"d1a0cbea",242:"cd78db01",260:"dc24b863",263:"f449844b",356:"03a870c2",398:"34093f88",447:"01ff3cab",462:"241cffd5",464:"86420488",473:"37e56536",512:"adc9159f",513:"31f4ac85",514:"2f395bb6",552:"70a3f81f",589:"6c8156a1",595:"da0da8a3",702:"f366cc55",705:"0313be8a",722:"825be600",780:"d1abee7c",787:"7ef07b1e",814:"d565f12f",818:"3dde4685",895:"e2d7151d",900:"5b938f7b",913:"7d903775",918:"cbc02e8f",945:"7d4b4915",972:"3d5525ae",987:"6d29267a"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},f="sanchonet:",n.l=(e,t,a,c)=>{if(r[e])r[e].push(t);else{var o,d;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(s);var f=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),f&&f.forEach((e=>e(a))),t)return t(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),d&&document.head.appendChild(o)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",n.gca=function(e){return e={17896441:"918",36246993:"595",98762162:"113","5449755a":"2","5886ee98":"32","935f2afb":"53","1f391b9e":"85","49ac7784":"86",abd7a278:"152","98e22efe":"161","6c8bebe0":"169","3838c1a1":"173","1df93b7f":"237","04a456b0":"242","4c4f17cf":"260","08d3f7f3":"263","27cf304e":"356","86c5ba96":"398",d0d6894e:"447",b0064c08:"462",a18a7492:"464","354cfeef":"512","43b2bb3c":"513","1be78505":"514",aaae1da2:"552","6fddf1e9":"589",ce2e39ce:"702","038ebd0e":"705","0852ae7f":"722","6d06420b":"780",eeefc164:"787","5a0482dd":"818",c9f32de9:"895",d27e288b:"900","59f459cf":"913","368b6ce8":"945"}[e]||e,n.p+n.u(e)},(()=>{var e={303:0,532:0};n.f.j=(t,a)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var f=new Promise(((a,f)=>r=e[t]=[a,f]));a.push(r[2]=f);var c=n.p+n.u(t),o=new Error;n.l(c,(a=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var f=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;o.message="Loading chunk "+t+" failed.\n("+f+": "+c+")",o.name="ChunkLoadError",o.type=f,o.request=c,r[1](o)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,a)=>{var r,f,c=a[0],o=a[1],d=a[2],b=0;if(c.some((t=>0!==e[t]))){for(r in o)n.o(o,r)&&(n.m[r]=o[r]);if(d)var i=d(n)}for(t&&t(a);b{"use strict";var e,t,a,r,f,c={},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var a=o[e]={exports:{}};return c[e].call(a.exports,a,a.exports,n),a.exports}n.m=c,e=[],n.O=(t,a,r,f)=>{if(!a){var c=1/0;for(i=0;i=f)&&Object.keys(n.O).every((e=>n.O[e](a[d])))?a.splice(d--,1):(o=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[a,r,f]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var f=Object.create(null);n.r(f);var c={};t=t||[null,a({}),a([]),a(a)];for(var o=2&r&&e;"object"==typeof o&&!~t.indexOf(o);o=a(o))Object.getOwnPropertyNames(o).forEach((t=>c[t]=()=>e[t]));return c.default=()=>e,n.d(f,c),f},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,a)=>(n.f[a](e,t),t)),[])),n.u=e=>"assets/js/"+({2:"5449755a",32:"5886ee98",53:"935f2afb",85:"1f391b9e",86:"49ac7784",113:"98762162",152:"abd7a278",161:"98e22efe",169:"6c8bebe0",173:"3838c1a1",237:"1df93b7f",242:"04a456b0",260:"4c4f17cf",263:"08d3f7f3",356:"27cf304e",398:"86c5ba96",447:"d0d6894e",462:"b0064c08",464:"a18a7492",512:"354cfeef",513:"43b2bb3c",514:"1be78505",552:"aaae1da2",589:"6fddf1e9",595:"36246993",702:"ce2e39ce",705:"038ebd0e",722:"0852ae7f",780:"6d06420b",787:"eeefc164",818:"5a0482dd",895:"c9f32de9",900:"d27e288b",913:"59f459cf",918:"17896441",945:"368b6ce8"}[e]||e)+"."+{2:"13ecf020",32:"459248fa",44:"cad7b82b",53:"eca14259",85:"526d48b7",86:"58074137",113:"5de230fa",152:"861664bd",161:"45bdf6df",169:"676107d8",173:"c6427e81",237:"d1a0cbea",242:"cd78db01",260:"dc24b863",263:"f449844b",356:"03a870c2",398:"34093f88",447:"78588c72",462:"241cffd5",464:"86420488",473:"37e56536",512:"adc9159f",513:"31f4ac85",514:"2f395bb6",552:"70a3f81f",589:"6c8156a1",595:"da0da8a3",702:"f366cc55",705:"0313be8a",722:"825be600",780:"d1abee7c",787:"7ef07b1e",814:"d565f12f",818:"3dde4685",895:"e2d7151d",900:"5b938f7b",913:"7d903775",918:"cbc02e8f",945:"7d4b4915",972:"3d5525ae",987:"6d29267a"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},f="sanchonet:",n.l=(e,t,a,c)=>{if(r[e])r[e].push(t);else{var o,d;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(s);var f=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),f&&f.forEach((e=>e(a))),t)return t(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),d&&document.head.appendChild(o)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",n.gca=function(e){return e={17896441:"918",36246993:"595",98762162:"113","5449755a":"2","5886ee98":"32","935f2afb":"53","1f391b9e":"85","49ac7784":"86",abd7a278:"152","98e22efe":"161","6c8bebe0":"169","3838c1a1":"173","1df93b7f":"237","04a456b0":"242","4c4f17cf":"260","08d3f7f3":"263","27cf304e":"356","86c5ba96":"398",d0d6894e:"447",b0064c08:"462",a18a7492:"464","354cfeef":"512","43b2bb3c":"513","1be78505":"514",aaae1da2:"552","6fddf1e9":"589",ce2e39ce:"702","038ebd0e":"705","0852ae7f":"722","6d06420b":"780",eeefc164:"787","5a0482dd":"818",c9f32de9:"895",d27e288b:"900","59f459cf":"913","368b6ce8":"945"}[e]||e,n.p+n.u(e)},(()=>{var e={303:0,532:0};n.f.j=(t,a)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var f=new Promise(((a,f)=>r=e[t]=[a,f]));a.push(r[2]=f);var c=n.p+n.u(t),o=new Error;n.l(c,(a=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var f=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;o.message="Loading chunk "+t+" failed.\n("+f+": "+c+")",o.name="ChunkLoadError",o.type=f,o.request=c,r[1](o)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,a)=>{var r,f,c=a[0],o=a[1],d=a[2],b=0;if(c.some((t=>0!==e[t]))){for(r in o)n.o(o,r)&&(n.m[r]=o[r]);if(d)var i=d(n)}for(t&&t(a);b 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/faucet/index.html b/faucet/index.html index 09a91328..12bcd9aa 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 efc505a7..263f699a 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 24bb70ad..edc125ef 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 a4c50081..b924243f 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 06f446c0..7d8572b5 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 cccbc1df..4e601a2e 100644 --- a/meetups/index.html +++ b/meetups/index.html @@ -4,13 +4,13 @@ Meetups | SanchoNet - + - + \ No newline at end of file diff --git a/roles/dev/index.html b/roles/dev/index.html index 41e19da7..d9dfbe3d 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.10.0-pre
    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 7f41ce00..eea10ca7 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.10.0-pre
    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 2fe7ede9..817de325 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 10b73349..38cbaf49 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 301833cb..6de5df25 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-???? | 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.
    • 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.

    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 eb91e135..5a2a96dd 100644 --- a/tutorials/actions/index.html +++ b/tutorials/actions/index.html @@ -4,7 +4,7 @@ Governance actions | SanchoNet - + @@ -22,7 +22,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

    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 46c33e5e..f6f3af25 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 e4a0df10..9f7f4cfd 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
    [
    [
    {
    "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 dcb93ca6..ecffacfe 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 1359c8a9..86b7942e 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 (or verification key) of a registered DRep
    • 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 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

    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 3876a061..0ab24609 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 f18b2890..0140ed27 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 29eca775..6046dd00 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/register-stake-address/index.html b/tutorials/register-stake-address/index.html index b05bca62..ba8b9426 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 8ec87d61..5f176cf2 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 99f16626..fad7776d 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.10.0-pre. 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.

    - + \ No newline at end of file diff --git a/tutorials/vote-action/index.html b/tutorials/vote-action/index.html index 95b3ae5b..e5b7d11c 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/why-sanchonet/barataria/index.html b/why-sanchonet/barataria/index.html index 38b267bb..cd41c36f 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 ff746f5f..de7d24e9 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 660ecab4..83a5a481 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 13300994..2a330cef 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