Proves públiques de la solució d'escalabilitat i privadesa d'Ethereum en plataformes en núvol

La tendència blockchain continua guanyant impuls. Cada cop més experts prediuen una adaptació universal d'aquesta tecnologia en un futur proper. De moment, queden sense resoldre diversos problemes que ho impedeixen.

En primer lloc, els sistemes de blockchain moderns no s'escalen bé. Per exemple, Ethereum té un rendiment de només 20 transaccions per segon i, malgrat els seus molts avantatges, no és adequat per a grans empreses.

Al mateix temps, Ethereum es valora per la seva potent protecció contra la pirateria i les fallades de la xarxa. Així que no l'hauries d'escriure. Té més sentit corregir les mancances d'Ethereum i convertir-les en avantatges.

Proves públiques de la solució d'escalabilitat i privadesa d'Ethereum en plataformes en núvol

Plasma Cash com a solució de privadesa i escalabilitat a Ethereum

El plasma és una tecnologia presentada per Vitalik Buterin, cofundador del projecte Ethereum, a la conferència EthCC a París el 2018. Es va desenvolupar conjuntament amb Joseph Poon, cofundador de Lightning Network, i es presenta com una solució per augmentar la potència de càlcul de la cadena de blocs Ethereum. Les primeres notícies sobre Plasma es van filtrar als mitjans el 2017.

Aquesta plataforma proporciona una capa externa de contractes intel·ligents que poden interactuar amb la cadena de blocs principal, descarregant així la cadena arrel, reduint les tarifes de transacció per a contractes intel·ligents i aplicacions descentralitzades (DApps).

La informació detallada sobre el desenvolupament es va presentar al document "Plasma: Contractes intel·ligents autònoms escalables", amb data d'agost de 2017.

Buterin va reconèixer que Plasma té problemes d'escalabilitat inherents: cada usuari ha de descarregar i autenticar tots els blocs de Plasma, la qual cosa evita l'escala exponencial.

Per corregir aquesta deficiència, es va desenvolupar Plasma Cash: una cadena infantil que consta d'un contracte intel·ligent i una xarxa privada basada en Node.js, que transfereix periòdicament el seu estat a la cadena arrel (Ethereum). Proporciona descentralització, seguretat i escalabilitat a la cadena de blocs, resolent així el trilema d'escalabilitat.

Un avantatge important de Plasma Cash en comparació amb Plasma és que atrau l'atenció dels usuaris només als blocs que contenen les monedes que els interessen:

"Els usuaris ara només han de comprovar la disponibilitat i validesa de la cadena Plasma per a l'índex específic associat a les monedes que volen gastar, posseir i en què estan interessats", va dir Buterin.

Segons els desenvolupadors, Plasma Cash és una cura eficaç per als pirates informàtics a Ethereum. Cada moneda de plasma té un propietari i és única. Ningú pot prendre possessió de les monedes d'un altre usuari sense el seu coneixement. Un titular de la moneda pot evitar possibles retirades fraudulentes mitjançant el sistema de "queixes" proporcionant les seves "dades d'evidència" a l'historial de la seva moneda.

Prova Plasma Cash a Mongo Atlas

Per la seva novetat, Plasma Cash segueix sent poc estudiat. Els experts en Blockchain estan provant activament la seva interacció amb diversos serveis i bases de dades al núvol, identificant les mancances i trobant maneres de corregir-les. En particular, les proves a Mongo Atlas van revelar els següents avantatges quan es treballa amb Plasma:

  1. Protecció fiable contra la pèrdua de dades, ja que hi ha diverses rèpliques que es sincronitzen entre si al clúster.
  2. Accés ràpid, ja que es pot crear un clúster a les tres plataformes de núvol més populars: Amazon, Google, Azure. Com a resultat, el node Plasma Cash es pot desplegar en molts centres de dades situats a prop de Mongo Atlas. Hem demostrat que la velocitat no baixa gaire, fins i tot si els nodes de plasma es despleguen en centres de dades més remots.
  3. Els nodes de plasma, utilitzats en mode de només lectura, es poden connectar a un clúster Mongo i ubicar-se a diferents parts del món, que millora la geo-escalabilitat (els nodes estan més a prop dels usuaris).
  4. Implementar un nou node és fàcil, ja que no cal que torneu a sincronitzar-ho tot. Simplement podeu connectar-vos a un clúster Mongo existent o fer-ne una còpia ràpidament i configurar-hi una connexió.
  5. És fàcil escalar la vostra base de dades. Amb el temps, hi ha més dades disponibles i podeu augmentar la mida dels nodes del clúster segons sigui necessari.

Proves públiques de la solució d'escalabilitat i privadesa d'Ethereum en plataformes en núvol

Hem utilitzat els següents servidors per realitzar proves:

  • 3 servidors virtuals Azure Standard E4s v3 (4 vcpus, 32 GiB de memòria). Cada servidor té 3 nodes. Un d'ells pot enviar blocs a la cadena arrel.
  • Cada node està connectat al seu propi clúster Mongo Atlas M50 que conté 3 nodes en mode de rèplica.

Prova 1

3 nodes reben 100 transaccions cadascun. En total, els 9 nodes contenen 300 transaccions i fitxes.

Reprodueix un vídeo

Estat inicial: últim bloc #213; 0 transaccions i fitxes es guarden a la base de dades.

00:00 — Es llancen 3 scripts que generen i envien 100 transaccions cadascun
00:29 — S'ha començat a enviar 100 transaccions als nodes 1 i 2
00:32 — S'ha començat a enviar 100 transaccions al node núm. 3
00:32 — El node núm. 1 va prendre 11703 transaccions de l'agrupació i formularis el bloc núm. 214 (9fb)
00:34 — El node núm. 2 ha pres 27088 transaccions de l'agrupació i formularis del bloc núm. 214 (ef4)
00:34 — El bloc #214 (9fb) està signat i enviat a altres nodes per a la seva validació
00:36 — El node núm. 3 ha pres 11900 transaccions del bloc i formularis del bloc núm. 214 (983)
00:37 — El bloc #214 (9fb) es valida i s'envia a la cadena arrel
00:38 — El bloc #214 (983) està signat i enviat a altres nodes per a la validació
00:38 — El bloc #214 (ef4) està signat i enviat a altres nodes per a la validació
00:40 — El bloc #214 (983) es valida i s'envia a la cadena arrel
00:41 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #214 (9fb) i van començar a aplicar 11703 transaccions
00:45 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #215 (983) i van començar a aplicar 11900 transaccions
00:51 — El bloc #214 (ef4) es valida i s'envia a la cadena arrel
00:52 — El node núm. 1 ha pres 51469 transaccions del bloc i formularis del bloc núm. 216 (ea0)
00:56 — El node núm. 3 ha pres 55102 transaccions del bloc i formularis del bloc núm. 216 (f75)
00:58 — L'script de demostració ha acabat el seu treball per al node #2
00:58 — El bloc #216 (ea0) està signat i enviat a altres nodes per a la validació
00:58 — Tots els nodes van rebre informació de la cadena arrel que s'ha afegit el bloc #216 (ef4) i comencen a aplicar 27088 transaccions
01:04 — El bloc #216 (f75) està signat i enviat a altres nodes per a la seva validació
01:14 — El node núm. 2 ha pres 72912 transaccions del bloc i formularis del bloc núm. 217 (f85)
01:15 — L'script de demostració ha acabat de funcionar per als nodes #1 i #2
01:17 — Els blocs #216 (f75) i #216 (ea0) es validen i s'envien a la cadena arrel
01:21 — El bloc #217 (f85) està signat i enviat a altres nodes per a la validació
01:26 - Els blocs #217 (f75) i #218 (ea0) s'afegeixen a la cadena arrel i els nodes comencen a aplicar les transaccions 51469 i 55102 respectivament
01:27 — El bloc #217 (a85) es valida i s'envia a la cadena arrel
01:41 — El node núm. 1 ha pres 36828 transaccions de l'agrupament i formularis del bloc núm. 219 (46f)
01:41 — El node núm. 3 ha pres 32998 transaccions del bloc i formularis del bloc núm. 219 (bb3)
01:43 — Tots els nodes han rebut informació de la cadena arrel que s'ha afegit el bloc #219 (a85) i comencen a aplicar 72912 transaccions
01:46 — El bloc #219 (46f) està signat i enviat a altres nodes per a la seva validació
01:46 — El bloc #219 (bb3) està signat i enviat a altres nodes per a la validació
01:53 — El node núm. 2 ha processat les 100 transaccions que hi havia al grup
02:37 — El bloc #219 (bb3) es valida i s'envia a la cadena arrel
02:41 — El bloc #219 (46f) es valida i s'envia a la cadena arrel
02:48 — Els blocs #220 (bb3) i #221 (46f) s'afegeixen a la cadena arrel i els nodes comencen a aplicar les transaccions 32998 i 36828 respectivament
02:54 — El node núm. 1 ha processat les 100 transaccions que hi havia al grup
02:55 — El node núm. 3 ha processat les 100 transaccions que hi havia al grup
04:12 — Tots els nodes contenen 300 transaccions i fitxes, darrer bloc #221

Prova 2

3 nodes reben 1kk transaccions cadascun. En total, els 9 nodes contenen 3 transaccions i fitxes.

Reprodueix un vídeo

Estat inicial: últim bloc #213; 0 transaccions i fitxes es guarden a la base de dades.

00:00 — Es llancen 3 scripts que generen i envien 1kk transaccions cadascun
02:29 — S'ha començat l'enviament de transaccions d'1kk als nodes #1 i #2
02:33 — El node núm. 1 ha pres 11668 transaccions del bloc i formularis del bloc núm. 222 (510)
02:35 — El bloc #222 (510) està signat i enviat a altres nodes per a la validació
02:37 — El bloc #222 (510) es valida i s'envia a la cadena arrel
02:38 — El node núm. 2 ha pres 46378 transaccions de l'agrupació i formularis del bloc núm. 222 (a9d)
02:38 — S'ha iniciat l'enviament de transaccions d'1kk al node #3
02:41 — El node núm. 3 ha pres 5504 transaccions del bloc i formularis del bloc núm. 222 (387)
02:42 — El bloc #222 (387) està signat i enviat a altres nodes per a la validació
02:44 — El bloc #222 (a9d) està signat i enviat a altres nodes per a la seva validació
02:44 — El bloc #222 (387) es valida i s'envia a la cadena arrel
02:49 — Bloc #222 (a9d) validat i enviat a la cadena arrel
02:56 - Els blocs #222 (510) #223 (387) i #224 (a9d) s'afegeixen a la cadena arrel i els nodes comencen a aplicar les transaccions 11668, 5504 i 46378 respectivament
03:09 — El node núm. 1 ha pres 177170 transaccions del bloc i formularis del bloc núm. 225 (e50)
03:09 — El node núm. 3 ha pres 119327 transaccions del bloc i formularis del bloc núm. 225 (ccc)
03:10 — El node núm. 2 ha pres 149772 transaccions del bloc i formularis del bloc núm. 225 (404)
03:26 — El bloc #225 (ccc) està signat i enviat a altres nodes per a la seva validació
03:32 — El bloc #225 (404) està signat i enviat a altres nodes per a la validació
03:33 — El bloc #225 (e50) està signat i enviat a altres nodes per a la validació
03:53 — Bloc #225 (ccc) validat i enviat a la cadena arrel
04:03 — Bloc #225 (e50) validat i enviat a la cadena arrel
04:04 — El bloc #225 (404) es valida i s'envia a la cadena arrel
04:06 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #225 (ccc) i van començar a aplicar 119327 transaccions
04:14 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #226 (404) i van començar a aplicar 149772 transaccions
04:16 — Tots els nodes han rebut informació de la cadena arrel que s'ha afegit el bloc #227 (e50) i comencen a aplicar 177170 transaccions
04:32 — El node núm. 3 ha pres 209436 transaccions del bloc i formularis del bloc núm. 228 (1e9)
04:40 — El node núm. 2 ha pres 212669 transaccions del bloc i formularis del bloc núm. 228 (e38)
04:40 — El node núm. 1 ha pres 190144 transaccions del bloc i formularis del bloc núm. 228 (861)
05:02 — El bloc #228 (1e9) està signat i enviat a altres nodes per a la seva validació
05:08 — El bloc #228 (861) està signat i enviat a altres nodes per a la validació
05:10 — El bloc #228 (e38) està signat i enviat a altres nodes per a la validació
06:13 — Bloc #228 (1e9) validat i enviat a la cadena arrel
06:13 — El bloc #228 (861) es valida i s'envia a la cadena arrel
06:13 — Bloc #228 (e38) validat i enviat a la cadena arrel
06:39 - Els blocs #228 (861) #229 (1e9) i #230 (e38) s'afegeixen a la cadena arrel i els nodes comencen a aplicar les transaccions 190144, 209436 i 212669 respectivament
07:07 — El node núm. 1 ha pres 199770 transaccions del bloc i formularis del bloc núm. 231 (e04)
07:09 — El node núm. 2 ha pres 190473 transaccions del bloc i formularis del bloc núm. 231 (36e)
07:09 — El node núm. 3 ha pres 178807 transaccions del bloc i formularis del bloc núm. 231 (f43)
07:34 — El bloc #231 (e04) està signat i enviat a altres nodes per a la validació
07:37 — El bloc #231 (36e) està signat i enviat a altres nodes per a la seva validació
07:37 — El bloc #231 (f43) està signat i enviat a altres nodes per a la seva validació
08:49 — Bloc #231 (e04) validat i enviat a la cadena arrel
08:51 — Bloc #231 (f43) validat i enviat a la cadena arrel
08:52 — Bloc #231 (36e) validat i enviat a la cadena arrel
09:47 - Els blocs #231 (e04) #232 (f43) i #233 (36e) s'afegeixen a la cadena arrel i els nodes comencen a aplicar transaccions 199770, 178807 i 190473 respectivament
10:16 — El node núm. 1 ha pres 153075 transaccions del bloc i formularis del bloc núm. 234 (e04)
10:16 — El node núm. 2 ha pres 168035 transaccions del bloc i formularis del bloc núm. 234 (36e)
10:16 — El node núm. 3 ha pres 166685 transaccions del bloc i formularis del bloc núm. 234 (f43)
10:42 — El bloc #234 (56d) es signa i s'envia a altres nodes per a la seva validació
11:59 — El bloc #234 (1bb) es valida i s'envia a la cadena arrel
12:02 — Bloc #234 (58a) validat i enviat a la cadena arrel
12:02 — Bloc #234 (56d) validat i enviat a la cadena arrel
12:48 - Els blocs #234 (1bb) #235 (58a) i #236 (56d) s'afegeixen a la cadena arrel i els nodes comencen a aplicar les transaccions 153075, 168035 i 166685 respectivament
13:14 — El node núm. 1 ha pres 112226 transaccions del bloc i formularis del bloc núm. 237 (5c0)
13:16 — El node núm. 2 ha pres 87550 transaccions del bloc i formularis núm. 234 (58a)
13:16 — El node núm. 3 ha pres 99594 transaccions del bloc i formularis núm. 234 (56d)
13:30 — El bloc #237 (5c0) es signa i s'envia a altres nodes per a la seva validació
13:32 — El bloc #237 (58a) es signa i s'envia a altres nodes per a la seva validació
13:34 — El bloc #237 (56d) es signa i s'envia a altres nodes per a la seva validació
14:47 — Bloc #237 (58a) validat i enviat a la cadena arrel
14:53 — El bloc #237 (5c0) no s'ha validat en el temps especificat
14:53 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #237 (58a) i van començar a aplicar 87550 transaccions
14:54 — Bloc #237 (56d) validat i enviat a la cadena arrel
15:02 — El node núm. 1 va prendre 181206 transaccions de l'agrupació i formularis del bloc núm. 238 (c5f)
15:06 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #238 (56d) i van començar a aplicar 99594 transaccions
15:12 — El node núm. 2 ha pres 51990 transaccions del bloc i formularis núm. 239 (ad8)
15:20 — El bloc #239 (ad8) es signa i s'envia a altres nodes per a la seva validació
15:25 — El node núm. 3 ha pres 46685 transaccions del bloc i formularis del bloc núm. 239 (857)
15:30 — El bloc #238 (c5f) es signa i s'envia a altres nodes per a la seva validació
15:34 — El bloc #239 (857) està signat i enviat a altres nodes per a la validació
16:32 — El bloc #239 (857) es valida i s'envia a la cadena arrel
16:42 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #239 (857) i van començar a aplicar 46685 transaccions
16:42 — El bloc #238 (c5f) es valida i s'envia a la cadena arrel
16:42 — El bloc #239 (ad8) no s'ha validat en el temps especificat
16:54 — El node núm. 2 ha pres 96882 transaccions del bloc i formularis núm. 240 (e6e)
16:56 — El node núm. 3 ha pres 39704 transaccions del bloc i formularis núm. 240 (a47)
17:02 — El bloc #240 (a47) està signat i enviat a altres nodes per a la validació
17:02 — El bloc #240 (e6e) es signa i s'envia a altres nodes per a la seva validació
17:18 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #240 (c5f) i van començar a aplicar 181206 transaccions
17:45 — El bloc #240 (a47) es valida i s'envia a la cadena arrel
17:47 — El node núm. 1 ha pres 54956 transaccions del bloc i formularis del bloc núm. 241 (170)
17:59 — El bloc #241 (170) està signat i enviat a altres nodes per a la validació
18:09 — Tots els nodes han rebut informació de la cadena arrel que s'ha afegit el bloc #241 (a47) i comencen a aplicar 181206 transaccions
18:20 — El node núm. 3 ha pres 39104 transaccions del bloc i formularis del bloc núm. 242 (955)
18:24 — El bloc #240 (e6e) es valida i s'envia a la cadena arrel
18:28 — El bloc #242 (955) està signat i enviat a altres nodes per a la validació
18:09 — Tots els nodes han rebut informació de la cadena arrel que s'ha afegit el bloc #242 (e6e) i comencen a aplicar 96882 transaccions
19:06 — L'script de demostració ha acabat el seu treball per al node #1
19:08 — L'script de demostració ha acabat el seu treball per al node #2
19:08 — El node núm. 2 ha pres 48241 transaccions del bloc i formularis núm. 243 (fde)
19:14 — El bloc #243 (fde) es signa i s'envia a altres nodes per a la seva validació
19:18 — El bloc #241 (170) no s'ha validat dins del temps especificat
19:28 — El node núm. 1 ha pres 86967 transaccions del bloc i formularis núm. 243 (37c)
19:35 — El bloc #242 (955) es valida i s'envia a la cadena arrel
19:40 — El bloc #243 (37c) es signa i s'envia a altres nodes per a la seva validació
20:05 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #243 (955) i van començar a aplicar 39104 transaccions
20:15 — El bloc #243 (fde) es valida i s'envia a la cadena arrel
20:19 — El node núm. 3 ha pres 42981 transaccions del bloc i formularis núm. 244 (9b5)
20:26 — El bloc #244 (9b5) es signa i s'envia a altres nodes per a la seva validació
20:28: tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #244 (fde) i van començar a aplicar 48241 transaccions
20:32 — El node núm. 2 ha processat totes les 1k transaccions que hi havia al grup
21:05 — El bloc #243 (37c) no s'ha validat dins del temps especificat
21:15 — El node núm. 1 ha pres 86967 transaccions del bloc i formularis núm. 245 (37c)
21:32 — El bloc #245 (37c) es signa i s'envia a altres nodes per a la seva validació
21:42 — El bloc #244 (9b5) es valida i s'envia a la cadena arrel
21:50 — Tots els nodes han rebut informació de la cadena arrel que s'ha afegit el bloc #245 (9b5) i comencen a aplicar 42981 transaccions
22:04 — El node núm. 3 ha pres 45361 transaccions del bloc i formularis núm. 246 (3f9)
22:11 — El bloc #246 (3f9) està signat i enviat a altres nodes per a la seva validació
22:51 — El bloc #245 (37c) no s'ha validat dins del temps especificat
23:01 — El node núm. 1 ha pres 86967 transaccions del bloc i formularis núm. 246 (37c)
23:08 — L'script de demostració ha acabat el seu treball per al node #3
23:15 — El bloc #246 (37c) es signa i s'envia a altres nodes per a la seva validació
23:32 — El bloc #246 (3f9) no s'ha validat en el temps especificat
23:42 — El node núm. 3 ha pres 52173 transaccions del bloc i formularis núm. 246 (71d)
23:51 — El bloc #246 (71d) es signa i s'envia a altres nodes per a la seva validació
24:38 — El bloc #246 (37c) no s'ha validat dins del temps especificat
25:01 — El node núm. 1 ha pres 86967 transaccions del bloc i formularis núm. 246 (37c)
25:06 — Bloc #246 (71d) validat i enviat a la cadena arrel
25:12 — El bloc #246 (37c) es signa i s'envia a altres nodes per a la seva validació
25:14 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #246 (71d) i van començar a aplicar 52173 transaccions
25:29 — El node núm. 3 ha processat totes les 1k transaccions que hi havia al grup
26:40 — El bloc #247 (37c) no s'ha validat dins del temps especificat
26:47 — El node núm. 1 ha pres 86967 transaccions del bloc i formularis núm. 247 (37c)
27:03 — El bloc #247 (37c) es signa i s'envia a altres nodes per a la seva validació
28:29 — El bloc #247 (37c) no s'ha validat dins del temps especificat
28:35 — El node núm. 1 ha pres 86967 transaccions del bloc i formularis núm. 247 (37c)
28:49 — El bloc #247 (37c) es signa i s'envia a altres nodes per a la seva validació
30:13 — El bloc #247 (37c) no s'ha validat dins del temps especificat
30:23 — El node núm. 1 ha pres 86967 transaccions del bloc i formularis núm. 247 (37c)
30:38 — El bloc #247 (37c) es signa i s'envia a altres nodes per a la seva validació
32:00 — El bloc #247 (37c) no s'ha validat dins del temps especificat
32:11 — El node núm. 1 ha pres 86967 transaccions del bloc i formularis núm. 247 (37c)
32:26 — El bloc #247 (37c) es signa i s'envia a altres nodes per a la seva validació
33:49 — El bloc #247 (37c) no s'ha validat dins del temps especificat
33:59 — El node núm. 1 ha pres 86967 transaccions del bloc i formularis núm. 247 (37c)
34:12 — El bloc #247 (37c) es signa i s'envia a altres nodes per a la seva validació
35:34 — Bloc #247 (37c) validat i enviat a la cadena arrel
35:54 — Tots els nodes van rebre informació de la cadena arrel que es va afegir el bloc #247 (37c) i van començar a aplicar 86967 transaccions
36:11 — El node núm. 1 ha processat totes les 1k transaccions que hi havia al grup
55:12: el primer node va processar les 3k transaccions

Proves públiques de la solució d'escalabilitat i privadesa d'Ethereum en plataformes en núvol

Resultats de

Es va descobrir que els servidors virtuals d'Azure no tenien prou potència de processament per processar un nombre tan gran de transaccions. Però el sistema va fer front bé a la tasca principal de les proves, és a dir, demostrar el funcionament de Plasma Cash amb MongoDB.

Us convidem a visitar-lo GitHub projecte: https://github.com/opporty-com/Plasma-Cash/tree/new-version

L'article ha estat coescrit per Alexander Nashivan, desenvolupador sènior Clever Solution Inc.

Anteriorment equip de desenvolupament Oportunitat Ja he provat la velocitat de Plasma Cash. Els resultats es presenten a Aquest article.

Font: www.habr.com

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster