Offentliga tester av lösningen för integritet och skalbarhet i Ethereum pÄ molnplattformar

Blockchain-trenden fortsÀtter att vÀxa. Fler och fler experter förutspÄr en universell anpassning av denna teknologi inom en snar framtid. För nÀrvarande finns det fortfarande flera olösta problem som hindrar detta.

Först och frÀmst Àr moderna blockchain-system dÄligt skalbara. Till exempel Àr Ethereum endast kapabelt till 20 transaktioner per sekund, och trots sina mÄnga fördelar Àr det inte lÀmpligt för stora företag.

Samtidigt vÀrderas Ethereum för sitt kraftfulla skydd mot hack och nÀtverksavbrott. SÄ man ska inte avfÀrda det. Det Àr mer rimligt att ÄtgÀrda Ethereums brister och omvandla dem till fördelar.

Offentliga tester av lösningen för integritet och skalbarhet i Ethereum pÄ molnplattformar

Plasma Cash som en lösning för integritet och skalbarhet i Ethereum

Plasma Àr en teknologi som presenterades av Vitalik Buterin, medgrundare av Ethereum-projektet, pÄ EthCC-konferensen i Paris 2018. Den utvecklades i samarbete med Joseph Poon, medgrundare av Lightning Network, och beskrevs som en lösning som ökar den berÀkningskraft som blockchain Ethereum kan hantera. De första nyheterna om Plasma lÀckte ut i media 2017.

Denna plattform utgör ett externt lager av smarta kontrakt som kan interagera med huvudblockchain, vilket avlastar rotkedjan och minskar transaktionsavgifterna för smarta kontrakt och decentraliserade applikationer (DApps).

Detaljerad information om utvecklingen presenterades i dokumentet "Plasma: Scalable Autonomous Smart Contracts", daterat augusti 2017.

Buterin erkÀnde att Plasma har problem med skalbarhet: varje anvÀndare mÄste ladda ner och verifiera Àktheten av varje Plasma-block, vilket förhindrar exponentiell skalning.

För att ÄtgÀrda denna brist utvecklades Plasma Cash - en sidokedja bestÄende av ett smart kontrakt och ett privat nÀtverk baserat pÄ Node.js som periodiskt överför sitt tillstÄnd till rotkedjan (Ethereum). Den sÀkerstÀller decentralisering, sÀkerhet och skalbarhet i blockchain, vilket dÀrmed löser Skalbarhetstrilemmat.

En viktig fördel med Plasma Cash jÀmfört med Plasma Àr att den endast uppmÀrksammar anvÀndare pÄ de block som innehÄller de mynt av intresse:

„Nu behöver anvĂ€ndare kontrollera tillgĂ„ng och korrekthet i Plasma-kedjan endast för det specialindex som Ă€r kopplat till de mynt de vill spendera, som de Ă€ger och Ă€r intresserade av”, sa Buterin.

Enligt utvecklarna Àr Plasma Cash ett effektivt botemedel mot hackningar i Ethereum. Varje Plasma-mynt har en Àgare och Àr unikt. Ingen kan ta över andras mynt utan deras vetskap. Innehavaren av myntet kan förhindra potentiella bedrÀgliga uttag genom ett "klagomÄlssystem" genom att lÀgga fram sina "bevisdata" i historiken för sitt mynt.

Testning av Plasma Cash i Mongo Atlas

PÄ grund av sin nyhet förblir Plasma Cash fortfarande lite utforskat. Blockchain-specialister testar aktivt dess interaktion med olika molntjÀnster och databaser, dokumenterar brister och hittar sÀtt att ÄtgÀrda dem. SÀrskilt tester i Mongo Atlas har avslöjat följande fördelar med arbete med Plasma:

  1. Betrodd skydd mot dataloss, eftersom flera repliker synkroniseras med varandra i klustret.
  2. Snabb Ätkomst, eftersom klustret kan skapas pÄ tre av de mest populÀra molnplattformarna: Amazon, Google, Azure. Som ett resultat kan en Plasma Cash-nod implementeras i mÄnga datacenter som ligger nÀra Mongo Atlas. Vi har bevisat att hastigheten inte sjunker mycket, Àven om Plasma-noder implementeras i mer avlÀgsna datacenter.
  3. Plasma-noder, som endast anvÀnds i lÀslÀge, kan anslutas till ett enda Mongo-kluster och placeras pÄ olika platser i vÀrlden, vilket förbÀttrar geo-skalbarheten (noderna ligger nÀrmare anvÀndarna).
  4. Att rulla ut en ny nod Àr lÀtt, eftersom det inte behövs nÄgon ny synkronisering. Man kan helt enkelt ansluta till ett befintligt Mongo-kluster eller snabbt göra en kopia och stÀlla in anslutningen till den.
  5. Att skala databasen Àr enkelt. Med tiden ökar datamÀngden, och storleken pÄ noderna i klustret kan ökas vid behov.

Offentliga tester av lösningen för integritet och skalbarhet i Ethereum pÄ molnplattformar

Vi anvÀnde följande servrar för att genomföra tester:

  • 3 virtuella Azure-servrar Standard E4s v3 (4 vcpus, 32 GiB minne). PĂ„ varje server körs 3 noder. En av dem kan skicka block till den grundlĂ€ggande kedjan.
  • Varje nod Ă€r ansluten till sitt Mongo Atlas-kluster M50, som innehĂ„ller 3 noder i replikeringslĂ€ge.

Test 1

3 noder tar emot 100 000 transaktioner vardera. Totalt innehÄller alla 9 noder 300 000 transaktioner och tokens.

Spela video

Ursprungligt tillstÄnd: senaste block #213; i databasen Àr 0 transaktioner och tokens sparade.

00:00 — 3 skript har startat, som genererar och skickar 100 000 transaktioner vardera
00:29 — Skickandet av 100 000 transaktioner till noderna #1 och #2 har pĂ„börjats
00:32 — Skickandet av 100 000 transaktioner till nod #3 har pĂ„börjats
00:32 — Nod #1 hĂ€mtade 11 703 transaktioner frĂ„n poolen och bildar block #214 (9fb)
00:34 — Nod #2 hĂ€mtade 27 088 transaktioner frĂ„n poolen och bildar block #214 (ef4)
00:34 — Block #214 (9fb) har signerats och skickas till andra noder för validering
00:36 — Nod #3 hĂ€mtade 11 900 transaktioner frĂ„n poolen och bildar block #214 (983)
00:37 — Block #214 (9fb) har validerats och skickats till den primĂ€ra kedjan
00:38 — Block #214 (983) har signerats och skickas till andra noder för validering
00:38 — Block #214 (ef4) har signerats och skickas till andra noder för validering
00:40 — Block #214 (983) har validerats och skickats till den primĂ€ra kedjan
00:41 — Alla noder har fĂ„tt information frĂ„n den primĂ€ra kedjan om att block #214 (9fb) har lagts till och börjar tillĂ€mpa 11 703 transaktioner
00:45 — Alla noder har fĂ„tt information frĂ„n den primĂ€ra kedjan om att block #215 (983) har lagts till och börjar tillĂ€mpa 11 900 transaktioner
00:51 — Block #214 (ef4) har validerats och skickats till den primĂ€ra kedjan
00:52 — Nod #1 hĂ€mtade 51 469 transaktioner frĂ„n poolen och bildar block #216 (ea0)
00:56 — Nod #3 hĂ€mtade 55 102 transaktioner frĂ„n poolen och bildar block #216 (f75)
00:58 — Demoskryptet avslutade sitt arbete för nod #2
00:58 — Block #216 (ea0) har signerats och skickas till andra noder för validering
00:58 — Alla noder har fĂ„tt information frĂ„n den primĂ€ra kedjan om att block #216 (ef4) har lagts till och börjar tillĂ€mpa 27 088 transaktioner
01:04 — Block #216 (f75) har signerats och skickas till andra noder för validering
01:14 — Nod #2 hĂ€mtade 72 912 transaktioner frĂ„n poolen och bildar block #217 (f85)
01:15 — Demoskryptet avslutade sitt arbete för noderna #1 och #2
01:17 — Block #216 (f75) och block #216 (ea0) har validerats och skickats till den primĂ€ra kedjan
01:21 — Block #217 (f85) har signerats och skickas till andra noder för validering
01:26 — Block #217 (f75) och block #218 (ea0) har lagts till i den primĂ€ra kedjan, och noderna börjar tillĂ€mpa 51 469 respektive 55 102 transaktioner
01:27 — Block #217 (a85) har validerats och skickats till den primĂ€ra kedjan
01:41 — Nod #1 hĂ€mtade 36 828 transaktioner frĂ„n poolen och bildar block #219 (46f)
01:41 — Nod #3 hĂ€mtade 32 998 transaktioner frĂ„n poolen och bildar block #219 (bb3)
01:43 — Alla noder har fĂ„tt information frĂ„n den primĂ€ra kedjan om att block #219 (a85) har lagts till och börjar tillĂ€mpa 72912 transaktioner
01:46 — Block #219 (46f) har signerats och skickas till andra noder för validering
01:46 — Block #219 (bb3) har signerats och skickas till andra noder för validering
01:53 — Nod #2 har behandlat alla 100k transaktioner som fanns i pooled
02:37 — Block #219 (bb3) har validerats och skickats till den primĂ€ra kedjan
02:41 — Block #219 (46f) har validerats och skickats till den primĂ€ra kedjan
02:48 — Blocken #220 (bb3) och #221 (46f) har lagts till i den primĂ€ra kedjan och noderna börjar tillĂ€mpa 32998 respektive 36828 transaktioner
02:54 — Nod #1 har behandlat alla 100k transaktioner som fanns i pooled
02:55 — Nod #3 har behandlat alla 100k transaktioner som fanns i pooled
04:12 — Alla noder innehĂ„ller 300k transaktioner och tokens frĂ„n det senaste blocket #221

Test 2

3 noder fÄr var och en 1kk transaktioner. Totalt finns det 3kk transaktioner och tokens i alla 9 noder.

Spela video

Ursprungligt tillstÄnd: senaste block #213; i databasen Àr 0 transaktioner och tokens sparade.

00:00 — 3 skript har startats som genererar och skickar 1kk transaktioner vardera
02:29 — Skickandet av 1kk transaktioner till noderna #1 och #2 har pĂ„börjats
02:33 — Nod #1 har tagit 11668 transaktioner frĂ„n pooled och bildar block #222 (510)
02:35 — Block #222 (510) har signerats och skickas till andra noder för validering
02:37 — Block #222 (510) har validerats och skickats till den primĂ€ra kedjan
02:38 — Nod #2 har tagit 46378 transaktioner frĂ„n pooled och bildar block #222 (a9d)
02:38 — Skickandet av 1kk transaktioner till nod #3 har pĂ„börjats
02:41 — Nod #3 har tagit 5504 transaktioner frĂ„n pooled och bildar block #222 (387)
02:42 — Block #222 (387) har signerats och skickas till andra noder för validering
02:44 — Block #222 (a9d) har signerats och skickas till andra noder för validering
02:44 — Block #222 (387) har validerats och skickats till den primĂ€ra kedjan
02:49 — Block #222 (a9d) har validerats och skickats till den primĂ€ra kedjan
02:56 — Blocken #222 (510), #223 (387) och #224 (a9d) har lagts till i den primĂ€ra kedjan och noderna börjar tillĂ€mpa 11668, 5504 och 46378 transaktioner respektive
03:09 — Nod #1 har tagit 177170 transaktioner frĂ„n pooled och bildar block #225 (e50)
03:09 — Nod #3 har tagit 119327 transaktioner frĂ„n pooled och bildar block #225 (ccc)
03:10 — Nod #2 har tagit 149772 transaktioner frĂ„n pooled och bildar block #225 (404)
03:26 — Block #225 (ccc) har signerats och skickas till andra noder för validering
03:32 — Block #225 (404) har signerats och skickas till andra noder för validering
03:33 — Block #225 (e50) har signerats och skickas till andra noder för validering
03:53 — Block #225 (ccc) har validerats och skickats till den primĂ€ra kedjan
04:03 — Block #225 (e50) har validerats och skickats till rotkedjan
04:04 — Block #225 (404) har validerats och skickats till rotkedjan
04:06 — Alla noder har mottagit information frĂ„n rotkedjan om att block #225 (ccc) har lagts till och börjar tillĂ€mpa 119327 transaktioner
04:14 — Alla noder har mottagit information frĂ„n rotkedjan om att block #226 (404) har lagts till och börjar tillĂ€mpa 149772 transaktioner
04:16 — Alla noder har mottagit information frĂ„n rotkedjan om att block #227 (e50) har lagts till och börjar tillĂ€mpa 177170 transaktioner
04:32 — Nod #3 har tagit 209436 transaktioner frĂ„n poolen och formar block #228 (1e9)
04:40 — Nod #2 har tagit 212669 transaktioner frĂ„n poolen och formar block #228 (e38)
04:40 — Nod #1 har tagit 190144 transaktioner frĂ„n poolen och formar block #228 (861)
05:02 — Block #228 (1e9) har signerats och skickas till andra noder för validering
05:08 — Block #228 (861) har signerats och skickas till andra noder för validering
05:10 — Block #228 (e38) har signerats och skickas till andra noder för validering
06:13 — Block #228 (1e9) har validerats och skickats till rotkedjan
06:13 — Block #228 (861) har validerats och skickats till rotkedjan
06:13 — Block #228 (e38) har validerats och skickats till rotkedjan
06:39 — Block #228 (861), #229 (1e9) och #230 (e38) har lagts till i rotkedjan och noderna börjar tillĂ€mpa 190144, 209436 och 212669 transaktioner respektive
07:07 — Nod #1 har tagit 199770 transaktioner frĂ„n poolen och formar block #231 (e04)
07:09 — Nod #2 har tagit 190473 transaktioner frĂ„n poolen och formar block #231 (36e)
07:09 — Nod #3 har tagit 178807 transaktioner frĂ„n poolen och formar block #231 (f43)
07:34 — Block #231 (e04) har signerats och skickas till andra noder för validering
07:37 — Block #231 (36e) har signerats och skickas till andra noder för validering
07:37 — Block #231 (f43) har signerats och skickas till andra noder för validering
08:49 — Block #231 (e04) har validerats och skickats till rotkedjan
08:51 — Block #231 (f43) har validerats och skickats till rotkedjan
08:52 — Block #231 (36e) har validerats och skickats till rotkedjan
09:47 — Block #231 (e04), #232 (f43) och #233 (36e) har lagts till i rotkedjan och noderna börjar tillĂ€mpa 199770, 178807 och 190473 transaktioner respektive
10:16 — Nod #1 har tagit 153075 transaktioner frĂ„n poolen och formar block #234 (e04)
10:16 — Nod #2 har tagit 168035 transaktioner frĂ„n poolen och formar block #234 (36e)
10:16 — Nod #3 har tagit 166685 transaktioner frĂ„n poolen och formar block #234 (f43)
10:42 — Block #234 (56d) har signerats och skickas till andra noder för validering
11:59 — Block #234 (1bb) har validerats och skickats till rotkedjan
12:02 — Block #234 (58a) har validerats och skickats till rotkedjan
12:02 — Block #234 (56d) har validerats och skickats till rotkedjan
12:48 — Blocken #234 (1bb), #235 (58a) och #236 (56d) har lagts till i rotkedjan och noderna börjar tillĂ€mpa 153075, 168035 och 166685 transaktioner respektive
13:14 — Nod #1 har tagit 112226 transaktioner frĂ„n poolen och formar block #237 (5c0)
13:16 — Nod #2 har tagit 87550 transaktioner frĂ„n poolen och formar block #234 (58a)
13:16 — Nod #3 har tagit 99594 transaktioner frĂ„n poolen och formar block #234 (56d)
13:30 — Block #237 (5c0) har signerats och skickas till andra noder för validering
13:32 — Block #237 (58a) har signerats och skickas till andra noder för validering
13:34 — Block #237 (56d) har signerats och skickas till andra noder för validering
14:47 — Block #237 (58a) har validerats och skickats till rotkedjan
14:53 — Block #237 (5c0) har inte validerats inom angiven tid
14:53 — Alla noder har fĂ„tt information frĂ„n rotkedjan om att block #237 (58a) har lagts till och börjar tillĂ€mpa 87550 transaktioner
14:54 — Block #237 (56d) har validerats och skickats till rotkedjan
15:02 — Nod #1 har tagit 181206 transaktioner frĂ„n poolen och formar block #238 (c5f)
15:06 — Alla noder har fĂ„tt information frĂ„n rotkedjan om att block #238 (56d) har lagts till och börjar tillĂ€mpa 99594 transaktioner
15:12 — Nod #2 har tagit 51990 transaktioner frĂ„n poolen och formar block #239 (ad8)
15:20 — Block #239 (ad8) har signerats och skickas till andra noder för validering
15:25 — Nod #3 har tagit 46685 transaktioner frĂ„n poolen och formar block #239 (857)
15:30 — Block #238 (c5f) har signerats och skickas till andra noder för validering
15:34 — Block #239 (857) har signerats och skickas till andra noder för validering
16:32 — Block #239 (857) har validerats och skickats till rotkedjan
16:42 — Alla noder har fĂ„tt information frĂ„n rotkedjan om att block #239 (857) har lagts till och börjar tillĂ€mpa 46685 transaktioner
16:42 — Block #238 (c5f) har validerats och skickats till rotkedjan
16:42 — Block #239 (ad8) har inte validerats inom angiven tid
16:54 — Nod #2 har tagit 96882 transaktioner frĂ„n poolen och formar block #240 (e6e)
16:56 — Nod #3 har tagit 39704 transaktioner frĂ„n poolen och formar block #240 (a47)
17:02 — Block #240 (a47) har signerats och skickas till andra noder för validering
17:02 — Block #240 (e6e) har signerats och skickas till andra noder för validering
17:18 — Alla noder har mottagit information frĂ„n rotkedjan om att block #240 (c5f) har lagts till och börjar tillĂ€mpa 181206 transaktioner
17:45 — Block #240 (a47) har validerats och har skickats till rotkedjan
17:47 — Nod #1 har tagit 54956 transaktioner frĂ„n poolen och bildar block #241 (170)
17:59 — Block #241 (170) har signerats och skickas till andra noder för validering
18:09 — Alla noder har mottagit information frĂ„n rotkedjan om att block #241 (a47) har lagts till och börjar tillĂ€mpa 181206 transaktioner
18:20 — Nod #3 har tagit 39104 transaktioner frĂ„n poolen och bildar block #242 (955)
18:24 — Block #240 (e6e) har validerats och har skickats till rotkedjan
18:28 — Block #242 (955) har signerats och skickas till andra noder för validering
18:09 — Alla noder har mottagit information frĂ„n rotkedjan om att block #242 (e6e) har lagts till och börjar tillĂ€mpa 96882 transaktioner
19:06 — Demoskryptet har avslutat sitt arbete för nod #1
19:08 — Demoskryptet har avslutat sitt arbete för nod #2
19:08 — Nod #2 har tagit 48241 transaktioner frĂ„n poolen och bildar block #243 (fde)
19:14 — Block #243 (fde) har signerats och skickas till andra noder för validering
19:18 — Block #241 (170) har inte validerats inom angiven tid
19:28 — Nod #1 har tagit 86967 transaktioner frĂ„n poolen och bildar block #243 (37c)
19:35 — Block #242 (955) har validerats och har skickats till rotkedjan
19:40 — Block #243 (37c) har signerats och skickas till andra noder för validering
20:05 — Alla noder har mottagit information frĂ„n rotkedjan om att block #243 (955) har lagts till och börjar tillĂ€mpa 39104 transaktioner
20:15 — Block #243 (fde) har validerats och har skickats till rotkedjan
20:19 — Nod #3 har tagit 42981 transaktioner frĂ„n poolen och bildar block #244 (9b5)
20:26 — Block #244 (9b5) har signerats och skickas till andra noder för validering
20:28 — alla noder har mottagit information frĂ„n rotkedjan om att block #244 (fde) har lagts till och börjar tillĂ€mpa 48241 transaktioner
20:32 — Nod #2 har bearbetat alla 1 miljon transaktioner som var i poolen
21:05 — Block #243 (37c) har inte validerats inom angiven tid
21:15 — Nod #1 har tagit 86967 transaktioner frĂ„n poolen och bildar block #245 (37c)
21:32 — Block #245 (37c) har signerats och skickas till andra noder för validering
21:42 — Block #244 (9b5) har validerats och har skickats till rotkedjan
21:50 — Alla noder har mottagit information frĂ„n rotkedjan om att block #245 (9b5) har lagts till och börjar tillĂ€mpa 42981 transaktioner
22:04 — Nod #3 har tagit 45361 transaktioner frĂ„n poolen och bildar block #246 (3f9)
22:11 — Block #246 (3f9) har signerats och skickas till andra noder för validering
22:51 — Block #245 (37c) har inte validerats inom angiven tid
23:01 — Nod #1 har tagit 86967 transaktioner frĂ„n poolen och bildar block #246 (37c)
23:08 — Demoskryptet har avslutat sitt arbete för nod #3
23:15 — Block #246 (37c) har signerats och skickas till andra noder för validering
23:32 — Block #246 (3f9) har inte validerats inom angiven tid
23:42 — Nod #3 har tagit 52173 transaktioner frĂ„n poolen och bildar block #246 (71d)
23:51 — Block #246 (71d) har signerats och skickas till andra noder för validering
24:38 — Block #246 (37c) har inte validerats inom angiven tid
25:01 — Nod #1 har tagit 86967 transaktioner frĂ„n poolen och bildar block #246 (37c)
25:06 — Block #246 (71d) har validerats och skickats till huvudkedjan
25:12 — Block #246 (37c) har signerats och skickas till andra noder för validering
25:14 — Alla noder har fĂ„tt information frĂ„n huvudkedjan om att block #246 (71d) har lagts till och börjar tillĂ€mpa 52173 transaktioner
25:29 — Nod #3 har behandlat alla 1 miljon transaktioner som fanns i poolen
26:40 — Block #247 (37c) har inte validerats inom angiven tid
26:47 — Nod #1 har tagit 86967 transaktioner frĂ„n poolen och bildar block #247 (37c)
27:03 — Block #247 (37c) har signerats och skickas till andra noder för validering
28:29 — Block #247 (37c) har inte validerats inom angiven tid
28:35 — Nod #1 har tagit 86967 transaktioner frĂ„n poolen och bildar block #247 (37c)
28:49 — Block #247 (37c) har signerats och skickas till andra noder för validering
30:13 — Block #247 (37c) har inte validerats inom angiven tid
30:23 — Nod #1 har tagit 86967 transaktioner frĂ„n poolen och bildar block #247 (37c)
30:38 — Block #247 (37c) har signerats och skickas till andra noder för validering
32:00 — Block #247 (37c) har inte validerats inom angiven tid
32:11 — Nod #1 har tagit 86967 transaktioner frĂ„n poolen och bildar block #247 (37c)
32:26 — Block #247 (37c) har signerats och skickas till andra noder för validering
33:49 — Block #247 (37c) har inte validerats inom angiven tid
33:59 — Nod #1 har tagit 86967 transaktioner frĂ„n poolen och bildar block #247 (37c)
34:12 — Block #247 (37c) har signerats och skickas till andra noder för validering
35:34 — Block #247 (37c) har validerats och skickats till huvudkedjan
35:54 — Alla noder har fĂ„tt information frĂ„n huvudkedjan om att block #247 (37c) har lagts till och börjar tillĂ€mpa 86967 transaktioner
36:11 — Nod #1 har behandlat alla 1 miljon transaktioner som fanns i poolen
55:12 — första noden har behandlat alla 3 miljoner transaktioner

Offentliga tester av lösningen för integritet och skalbarhet i Ethereum pÄ molnplattformar

Sammanfattning

Det har upptÀckts att Azure virtuella servrar har otillrÀcklig processorkraft för att hantera sÄ mÄnga transaktioner. Men det primÀra syftet med testen, nÀmligen att demonstrera hur Plasma Cash fungerar med MongoDB, klarade systemet bra.

Vi inbjuder dig att besöka GitHub projektet: https://github.com/opporty-com/Plasma-Cash/tree/new-version

Artikeln skrevs i samarbete med Alexander Nashivan, seniorutvecklare Clever Solution Inc.

Tidigare har utvecklarteamet Opporty redan testat hastigheten pÄ Plasma Cash. Resultaten redovisas i denna artikel.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster