From fc9b077d946fe8b7746c45ae8b299a87b2014cbf Mon Sep 17 00:00:00 2001 From: Someone Else <118022351+SyntheticBird45@users.noreply.github.com> Date: Fri, 31 Mar 2023 20:27:45 +0000 Subject: [PATCH] Merge Readme update (#14) * added donation qr code donation qr code * Update readme.md * Update readme.md * fix typo * Just some small changes * another change (last one) --------- Co-authored-by: Boog900 <54e72d8a-345f-4599-bd90-c6b9bc7d0ec5@aleeas.com> --- qr-code.png | Bin 0 -> 5028 bytes readme.md | 85 ++++++++++++++++++++++++++++++---------------------- 2 files changed, 49 insertions(+), 36 deletions(-) create mode 100644 qr-code.png diff --git a/qr-code.png b/qr-code.png new file mode 100644 index 0000000000000000000000000000000000000000..4bbc37550d4d0579d30aff676f4b5549c1a7747b GIT binary patch literal 5028 zcmZu#d0f)zx)-FBRBW(GTTCmJF>{+XqXf%JQ4>cSElZ`Eu`wsDL~UF^a*As;En|zR zfKCQ3xiscjl1gcH%Lw@*ZVv9EMFvw3hf{Syb}V9&@l)h1uGuJrdoVn5kaJTfWo zvr!I5v50I*N$1_xv+Ese^0OY?$*)mkFZvW@JrL~}T>{_gLYZ^Be(buIg<5vO$vC?V z{X7NjPw_@%$9W&b!CE_!bHl9i^jhK1jdM zJo3)tF)v`%N!0A5uI1UFAVB3QpU_8JN*jO1DAe>l@9gyRyfep@IO7mm$!sf5$-|41 zatR_Gskx%IfvD>Lnyd*{eaMMBQ-X)?Y@lQFn_Hn;0F~jH*Ezw96mxC?nLLR-5ej?f zF1r;^8j3}>C5~VVy9T?+NyVv~a;Xib#C<`l(fsooxqG%{H|OGO;}!4nwg6{Mao$bKxq~QBX&{ zWw{{G+n~*D!)DN?8*<=TX71)&jk@a%BNC}kVs(jS9Y&<2nn&qG97XYTF12VvU#9P) zJLm=%o|xLf$zyA?qR7Y%SdYAf&Fj1ahn@m($TUF}j{v8nh2km?mP3=PTIG$R2Ib&ahkM68|o`^)nVQ$X78a6Qu4UOr7pTbq=gulhW!5GJz-cXgTssc-WSc7j6|EgT#Jk z<&oF>-x)1ksI~MtK*uu&J4#T|XMqEeWAfjycTWNX9(l%vBCEG&)%TrgzOYB-v$CCU z@x$<*1Vml1)P4KFnGo6iMv=OURnYooH8F}4g*p19DW}CXnUj~W(K$0<=oC!kU%;^m zsxQ1uFh;Zq{ee-B!;*36eZjyetx=sjuCpE)s=JNl5F zxnI~%ov4u2qzt|#veKn7Q8C)qJH1Vy7=kr$-s}&%#3bZ3XvdA{BM%%}1cMQtC{LX% zNk?xscWO2T3=EqtopImIPT6FnbbWf6T&m>9IET@=qgxZ*OEtXdlaY4Pv}?Zg&HM-{ zvzJ~^R597K4oP?B0V%c?&T4mX(UPDxi;W;+7qcF`?a2ZOTMB1(cjZ4Wq8un5s&zGm zS;h|Sjy3Xdw?(Ja3+KBmahTi1o>YkBuVK9Y1f2#|J<L#PczMm%cjZ1vRoY9n-0DKu+5k@a>q06u2({8Y}K9w9b{h%nZPOvA5 z-lj-gn|$xVGECg(oILCz8LYk@@U>onxtfInO?JL?8-&mtJ5E{@&84kj%GsvD5~2S+k5N@kw+aS5~tN6jpY-Wz902GF3+K zOwM`jjzF)*Q9NAz?th!*>v(h>3`#oOc^}2jgVz=!{jM4r`RHF=!45+qCb6H6TZ{j_5EzI@iA( z6!aW)@i=6a0|Ffc71!Ub`>SYV^)^8I&CZkv^uDct^tVNKoEZ@-3>Xn3eKHF!VjLw@ zP4Nb6>Fit3v~JRDn74#CyNk)@thGK2dZDFia$oMU1@E9uSpwzA>JV9mVgtd4%#+pb zAGy(m<64^2E@q*ES5Q1y)WvDwd;~aSI~%P%0$m8Z_a-lX30l4aM*GW$Ie;5$#t7gh z(mbu+h=dbk1bfs^5A~WI*7K>{jIE6k9b{!IB38jq3e)ehO-rvF%~kNGmH%|3-N8f2 zb8UjEle!aDG2&sHo~2iIIKIb&y!LF2-*82+4yxNXLj950ycIRtLm)~89(B7rNcHHN zCpg9ERxxKfK-mhNvf((rRg6e_IZ<`J+*jUQ!I_pzOJ++f*UWbICx~%eH%|=+`UosI z@?W<041a+&5?aW*y&8dj2QDu^IQb3Q-yU2XY10NECLsH0;ck`YO1aO>`u#=vmKC>@ zA3aMx88zNJ)mk4=lj5dO?B_O{9hAy=n^Mc|()zih!IDpZ_NKo&(&lBB%b&yYv0mjX z421B=o4bFNBLe+={`*5Cv0k+DlDw+kqE*=8zW=RP22!2VMp66*!> zOYQz)d~_{R{Td+Cds18s?M0xj4nDiN*L+;;BnYCPyp+Mki)cU7%2SoVbYCG3(gP9j zBRTG`6XOd7kd z-SRq>*GE(SgYfT+(Ede%0?NNso09C|8Y4hJn;+qf*^@zHe`JrnaEM#7se-UKR!^m1V$=zfDB~thb z4PhC?OoWQ%gKMyj=sekv%341spULUvm1YK|7~Q`EC*k3rKR*=-YL-FSfqNnE-v8KA zLH$|ioL~q!(vZmlEspj7*@l1=W)l>3V44Ud@Ta&!@cf(9{Jmz+#?t1#!KnK5O-5^y z_=IBirjh1~Ty1qXBi|Q>7a|K%G5Jb|ntUE?dbaFQxRo#o9S_!e3Qq5B!ey)|GsGG~OLZ@T@!f8W5>v3Z4-yxL2rMV0TSG zK=s1)gCNnFa0gX4U+`#ujsCt2}du zlHV5-cfY3r?@>Fcc_-bVP`Lc`H1c=jI^o(SX*w_o&R>(SL0$F*57}$xc5Y!7e-5$D zz&jHYVt^0Q1fYq*n;Wi3MAOyHSF#6O1(tjDvnxeOovy|TwZ5^1`%svY_hI8BL>g^q zqlUgrsMlWd(vydY3yMas4s^53ymf0+%O|Wl7m$*H$)3=JO~5IroS`y2JGzvSZm}q6 zhRu5E`2G$YI?p@OI#03G2MN*edSp9pCeBbJyQ4Sv9Ym1R(=b-WvQ1TC!{rOpwuV6-mI?umSab)!Hj3KL> z-ds#`d~wQ<@G6^{=GAfTL>w2%$#~%PEFWK?d9#`mq9KjtNh|KDTL1PU>TarmEozt$ z&Y1i#z^^+fWsKkhq;HC)!B0onb)(#^nP)FKQ4>9jc!Mmn)bZ+pigdT9mRe(>;&F_$ zLf8KboV2i6-KxlWNQTLT!5X~69|=&BVMw@nL@@8*zO zkZtsEOl*Q@cnhiCrmU$~co_nL@*boioU-MdAwv4fagvh8P;l+ToG4<5jGCD;mZA)6 zCI{u5OGanRf8T)H}famFi&xcX}OviY2Y}{)+;`t#{dW`PKj~+y_@&`L;mmQWF2&e>weTx z|H#XN3P5j)q24O8 zt_-s#Jz1GcA6Jo*!n|MXga`4N!7o_78&o9FlE2TdGz-K}1Un#?>ZRx>hokV5fkeHM zia>9+V+<#ZBy2HPRt7XY%8I66^Ud$;V)P!0z^NE)S_DoB`BFo|hs@w~@FHb)(t9Km zpz=hOdJ4ylI=e9fiM@LbRDSZcWFL|YCX?2CBiR$(4^_j=J9f{#g2v6T*+?@AWzYC% zdcq}j;ChDF$$`pw3N`WcS^_nZPO0RaR$d4%)n(lGdcXXGBmlhI5F}HSn$|mK?Yk|{?-%w?Yof@Af^!|IoKo8L>Xvnx&fnw^}m!onMqV^Dd{ zE^<;B@%g9g`Fyx)PX6gC0}gWj6?mf0H9^b;zZutQi22yvfdU-2F5_$X#ieNr2;qR&^y@}P37P$a$?6aKxT-cptk#EYBApd(Uzpi3(kW*SM2F0z zj=4QlI?Js705k;C<5)EqA^}W=^M!UB>_sZNal|9}yVr0f*M0`Dw0rPwJ{Y%eR{i8- zz4(XhM!036!mZvLE)Ic;I_E#436RAS{@-LS5eR|l4aNv;jmUM`&K#$F41#4A2E5! z=;v53zZVqz*lH@YuLYv$P;cyjf*avWNiVnJpfu2xJbz4I?2EpSfr%%-?A_^j)B>vf z8y%&nXwV4-{*ato?Kjl>lLa^aLhvy5L^OQqBfGMIG!zL{ogeQQdb2xN-r#He9wgQj kRyTV5D~QYmf!=rl>)F>0j=L@4*Eb{5_TX(*TPY|12UyEw4FCWD literal 0 HcmV?d00001 diff --git a/readme.md b/readme.md index 2b9ce78..4fe6de0 100644 --- a/readme.md +++ b/readme.md @@ -1,36 +1,66 @@

Cuprate

an upcoming experimental, modern & secure monero node. Written in Rust

-

(there is nothing working at the moment, stay tuned if you want to see some adventures)

-   +

+ Introduction | + Status | + Features | + Contributions | + Contact | + Donations +

+ +> **Warning** nothing is working at the moment. But stay tuned for adventures

Introduction

Why? -Monero is actively used across the world and gains more and more users through the years. Unfortunately, it is clearly targeted by numerous adversaries with different set of ressources. As of now we are targeted by media disinformation, other cryptocurrency communities & even governements. The life of the project depends now on our efforts to make Monero usable by anyone while also remaining resilient against an attack. +Monero is actively used across the world and gains more and more users through the years. Unfortunately, it is clearly targeted by numerous adversaries with different set of resources. As of now we are targeted by media disinformation, other cryptocurrency communities & even governements. The life of the project depends now on our efforts to make Monero usable by anyone while also remaining resilient against an attack. -The current state of Monero developpement is encouraging. Farcaster & COMIT have successfuly developped XMR<>BTC Atomic Swap, ETH<>XMR bridge is on the way, and other are draft. Not only it is a great addition to the UX but it also give monero resilience by developping way for people to access it in case of ban. Seraphis is on the way to make Monero even more private. As of consensus security, p2pool is now mature and actively used. +The current state of Monero development is encouraging. Farcaster & COMIT have successfully developed XMR<>BTC Atomic Swap, ETH<>XMR bridge is on the way, and other are draft. Not only is it a great addition to the UX but it also give Monero resilience by developing ways for people to access it if it were to be banned. Seraphis is on the way to make Monero even more private and p2pool is now mature and actively used. -We can clearly applaud all the efforts that have been done. But there is still works to do. For example, we still don't have developped traffic obfuscation to bypass DPI. Without, it'll be easy for governements to dramatically reduce the access to the monero network, and by that reduce the number of people that could escape the financial system. +We can clearly applaud all the efforts that have been done. But there is still works to do. For example, we still don't have a way to use traffic obfuscation to bypass DPI. Without, it'll be easy for governements to dramatically reduce access to the Monero network, and by that reduce the number of people that can escape financial surveillance.
-**Cuprate** is an ongoing effort to release an alternative implementation of the Monero Node with new features. It is developped in Rust and therefore enjoy from many advantages in term of security and stability. It will also help developping new features with high-level, safe and maintained librairies available in the rust ecosystem. +**Cuprate** is an ongoing effort to release an alternative implementation of monerod (the only Monero node) with new features. It is developed in Rust and therefore enjoys many advantages in terms of security and stability. It will also help developing new features with high-level, safe and maintained librairies available in the rust ecosystem. -Releasing an alternative node will reinforce the Monero Network if a security vulnerability is discovered in the current node maintained by the monero-core team. It will also encourage (i hope) more open-source developers to contribute to the project. +Releasing an alternative node will reinforce the Monero Network if a security vulnerability is discovered in the current node maintained by the Monero-core team. It will also encourage (I hope) more open-source developers to contribute to improving Monero. ### Status -If you wish to follow the development closely or just talk to us, you can join our [Revolt server](https://rvlt.gg/DZtCpfW1).
Status of current parts being work on can be found in the [pull request section](https://github.com/SyntheticBird45/cuprate/pulls). -@boog900 have delivered the net code and is working on ringCT & P2P. +@boog900 has delivered the net code and is working on ringCT & P2P. -@SyntheticBird45 is working on the database part. +@SyntheticBird45 is working on the database. + ## Improvements & Features + +
Traffic Obfuscation
Different protocol to bypass DPI will be available, such as with a proposal for Levin protocol (TLS based, see https://github.com/monero-project/monero/issues/7078) and QUIC like Syncthing have done, but with offset and timing mitigations. Unless the monero-core team decide to implement these protocols, they'll only by available between cuprate peers.
+ +
Blockchain Storage
LMDB is replaced by MDBX, a spiritual successor of LMDB with insane performance, already used by the reth Ethereum's rust client. HSE (Heterogeneous Storage Engine for Micron, optimized for SSD & random writes & reads) is also going to be implemented, as a more dsitributed and scalable alternative.
+ +
Sandboxing & System
+- For Linux : There will be maintained SELinux/Apparmor policy for this node for major linux distributions. It will internally use seccomp to limit syscalls being used. Landlock is also going to be setup in order to improve isolation of the node with rest of the OS. +
- For Windows : It still need some research but we could use capability primitives & WinAPI to limit access to certain system functions. +
- For macOS : There is unfortunately no library to setup some isolation, as Apple seems to have deprecated Seatbelt. +
+ +
RPC
ZeroMQ as well as gRPC will be available to communicate with the node. Powered by tonic library from Tokio
+ +
Terminal Interface
More accessible interface based on the excellent tui library. There will be Geolocation of peers on map, VPN Detection, Ressource usages, statistics etc...
+ +
Tor connections
arti_client library will be embedded to make possible connections to tor peers without a system daemon or proxy (for the moment arti_client can't handle onion services, but it'll certainly in the near future). i2p support is not planned at the moment
+ +### Regressions + +- No integrated miner planned +- LMDB support removed. Which means that the blockchain synced by monerod is incompatible with cuprate. +- [Some](https://github.com/monero-project/monero/blob/c5d10a4ac43941fe7f234d487f6dd54996a9aa33/src/wallet/wallet2.cpp#L3930) [funny](https://github.com/monero-project/monero/blob/c5d10a4ac43941fe7f234d487f6dd54996a9aa33/src/common/dns_utils.cpp#L134) [messages](https://github.com/monero-project/monero/blob/c5d10a4ac43941fe7f234d487f6dd54996a9aa33/src/common/util.cpp#L602) in the original codebase will be lost. ## Contributions @@ -42,8 +72,8 @@ For non-developers people, you can also propose ideas in the [discussion section ## Code & Repository -No unsafe code is permitted in the project, and the codebase will never contain `.expect()` or `panic!()`. We discourage the use -of `.unwrap()`, as it implied that all patterns are correctly handled. This way the node will never suddenly crash. +No unsafe code is permitted in the project, and the codebase will rarely contain `.expect()` or `.unwrap()`, we discourage the use +of these, as it implies that all patterns are correctly handled. This way the node should never suddenly crash. The repository is a cargo workspace. You will find every corresponding codebase in their crates folders. These crates are librairies and the main crates used to compile the node can be found in src/ @@ -79,32 +109,15 @@ This is a type of executable that permit its machine code to be executed regardl ### License -Cuprate is licensed under MIT-AGPL. the corresponding license to each crates can be found in their respective folders. +Cuprate is licensed under AGPL but some of the crates that make up Cuprate are licensed under MIT. Each crate will have it's license in its `Cargo.toml` with a corresponding `LICENSE` file. -## Improvements & Features - -
Traffic Obfuscation
Different protocol to bypass DPI will be available, such as with a proposal for Levin protocol (TLS based, see https://github.com/monero-project/monero/issues/7078) and QUIC like Syncthing have done, but with offset and timing mitigations. Unless the monero-core team decide to implement these protocols, they'll only by available between cuprate peers.
- -
Blockchain Storage
LMDB is replaced by MDBX, a spiritual successor of LMDB with insane performance, already used by the reth Ethereum's rust client. HSE (Heterogeneous Storage Engine for Micron, optimized for SSD & random writes & reads) is also going to be implemented, as a more dsitributed and scalable alternative.
- -
Sandboxing & System
-- For Linux : There will be maintained SELinux/Apparmor policy for this node for major linux distributions. It will internally use seccomp to limit syscalls being used. Landlock is also going to be setup in order to improve isolation of the node with rest of the OS. -
- For Windows : It still need some research but we could use capability primitives & WinAPI to limit access to certain system functions. -
- For macOS : There is unfortunately no library to setup some isolation, as Apple seems to have deprecated Seatbelt. -
- -
RPC
ZeroMQ as well as gRPC will be available to communicate with the node. Powered by tonic library from Tokio
- -
Terminal Interface
More accessible interface based on the excellent [tui](https://lib.rs/crates/tui) library. There will be Geolocation of peers on map, VPN Detection, Ressource usages, statistics etc...
- -
Tor connections
arti_client library will be embedded to make possible connections to tor peers without a system daemon or proxy (for the moment arti_client can't handle onion services, but it'll certainly in the near future). i2p support is not planned at the moment
-### Regressions +## Contact -- No integrated miner planned -- LMDB support removed. Which means that the blockchain synced by monerod is incompatible with cuprate. -- [Some](https://github.com/monero-project/monero/blob/c5d10a4ac43941fe7f234d487f6dd54996a9aa33/src/wallet/wallet2.cpp#L3930) [funny](https://github.com/monero-project/monero/blob/c5d10a4ac43941fe7f234d487f6dd54996a9aa33/src/common/dns_utils.cpp#L134) [messages](https://github.com/monero-project/monero/blob/c5d10a4ac43941fe7f234d487f6dd54996a9aa33/src/common/util.cpp#L602) in the original codebase will be lost. +If you wish to contact contributors privately, you can import our pgp keys from the gpg_keys folder. You can also contact us directly on Matrix (see contributors list in `Cargo.toml`). If you wish to follow the development closely or just talk to us more casually, you can join our [Revolt server](https://rvlt.gg/DZtCpfW1).
-## PGP keys +## Donations -If you wish to contact contributors privately, you can import our gpg keys from the pgp_keys folder. +We're working on Cuprate in our free time, it take times & effort to make progress. We greatly appreciate your support, it really means a lot and encourage us to continue. If you wanna buy us a coffee (or tea for some of us) you can send your kindness at this address :

82rrTEtqbEa7GJkk7WeRXn67wC3acqG5mc7k6ce1b37jTdv5uM15gJa3vw7s4fDuA31BEufjBj2DzZUb42UqBaP23APEujL

+ +