Јавно тестирање Етхереум решења за приватност и скалабилност на платформама у облаку

Тренд блокчејна наставља да добија на замаху. Све више стручњака предвиђа универзалну адаптацију ове технологије у блиској будућности. У овом тренутку, неколико проблема који ово спречавају остају нерешени.

Пре свега, савремени блокчејн системи нису добро скалирани. На пример, Етхереум има пропусност од само 20 трансакција у секунди, и упркос многим предностима, није погодан за велика предузећа.

Истовремено, Етхереум је цењен због своје моћне заштите од хаковања и кварова на мрежи. Дакле, не би требало да га отписујете. Има више смисла исправити недостатке Етхереума и претворити их у предности.

Јавно тестирање Етхереум решења за приватност и скалабилност на платформама у облаку

Пласма Цасх као решење за приватност и скалабилност на Етхереуму

Плазма је технологија коју је представио Виталик Бутерин, суоснивач пројекта Етхереум, на ЕтхЦЦ конференцији у Паризу 2018. Развијена је заједно са Џозефом Пуном, суоснивачом мреже Лигхтнинг Нетворк, и наплаћује се као решење за повећање рачунарска снага Етхереум блоцкцхаина. Прве вести о Пласми процуриле су у медије 2017. године.

Ова платформа обезбеђује спољни слој паметних уговора који могу да ступе у интеракцију са главним блоцкцхаином, чиме се растерећују коренски ланац, смањујући накнаде за трансакције за паметне уговоре и децентрализоване апликације (ДАппс).

Детаљне информације о развоју представљене су у документу “Плазма: скалабилни аутономни паметни уговори“, од августа 2017.

Бутерин је признао да Пласма има инхерентне проблеме скалабилности: Сваки корисник мора да преузме и аутентификује сваки Пласма блок, што спречава експоненцијално скалирање.

Да би се исправио овај недостатак, развијен је Пласма Цасх – подређени ланац који се састоји од паметног уговора и приватне мреже засноване на Ноде.јс, која периодично преноси своје стање у основни ланац (Етхереум). Обезбеђује децентрализацију, сигурност и скалабилност у блокчејну, чиме се решава трилема скалабилности.

Важна предност Пласма Цасх-а у поређењу са Пласма-ом је то што привлачи пажњу корисника само на оне блокове који садрже новчиће за које су заинтересовани:

„Корисници сада само треба да провере доступност и валидност ланца плазме за одређени индекс повезан са новчићима које желе да потроше, поседују и за које су заинтересовани“, рекао је Бутерин.

Према речима програмера, Пласма Цасх је ефикасан лек за хакове у Етхереуму. Сваки Плазма новчић има власника и јединствен је. Нико не може да преузме новчиће другог корисника без његовог знања. Власник новчића може спречити потенцијална лажна повлачења путем система „жалбе“ тако што ће представити своје „податке о доказима“ у историји свог новчића.

Тестирање Пласма Цасх-а у Монго Атласу

Због своје новине, Пласма Цасх остаје мало проучаван. Блоцкцхаин стручњаци активно тестирају његову интеракцију са различитим услугама у облаку и базама података, идентификујући недостатке и проналазећи начине да их исправе. Конкретно, тестови у Монго Атласу су открили следеће предности при раду са плазмом:

  1. Поуздана заштита од губитка података, пошто постоји неколико реплика које се синхронизују једна са другом у кластеру.
  2. Бистриј доступ, пошто се кластер може креирати на три најпопуларније клауд платформе: Амазон, Гоогле, Азуре. Као резултат тога, Пласма Цасх чвор може бити распоређен у многим центрима података који се налазе у близини Монго Атласа. Доказали смо да брзина не опада много, чак и ако су плазма чворови распоређени у удаљенијим центрима података.
  3. Плазма чворови, који се користе у режиму само за читање, могу бити повезани на један Монго кластер и лоцирани у различитим деловима света, који побољшава гео-скалабилност (чворови су ближи корисницима).
  4. Постављање новог чвора је лако, пошто не морате поново да синхронизујете све. Можете једноставно да се повежете са постојећим Монго кластером или брзо направите копију и конфигуришете везу са њим.
  5. Лако је скалирати вашу базу података. Временом, више података постаје доступно и по потреби можете повећати величину чворова у кластеру.

Јавно тестирање Етхереум решења за приватност и скалабилност на платформама у облаку

За тестирање смо користили следеће сервере:

  • 3 виртуелна Азуре сервера Стандардни Е4с в3 (4 вцпус, 32 ГиБ меморије). Сваки сервер има 3 чвора. Један од њих може послати блокове у коријенски ланац.
  • Сваки чвор је повезан са сопственим Монго Атлас М50 кластером који садржи 3 чвора у режиму реплике.

Test 1

3 чвора примају по 100 трансакција. Укупно, свих 9 чворова садржи 300 хиљада трансакција и токена.


Почетно стање: последњи блок # 213; 0 трансакција и токена је сачувано у бази података.

00:00 — Покрећу се 3 скрипте које генеришу и шаљу по 100 хиљада трансакција
00:29 — Слање 100 трансакција чворовима #1 и #2 је почело
00:32 — Слање 100 трансакција чвору #3 је почело
00:32 — Чвор #1 је узео 11703 трансакције из скупа и формира блок #214 (9фб)
00:34 — Чвор #2 је узео 27088 трансакција из скупа и формира блок #214 (еф4)
00:34 — Блок #214 (9фб) је потписан и послат другим чворовима на валидацију
00:36 — Чвор #3 је узео 11900 трансакција из скупа и формира блок #214 (983)
00:37 — Блок #214 (9фб) је потврђен и послат у основни ланац
00:38 — Блок #214 (983) је потписан и послат другим чворовима на валидацију
00:38 — Блок #214 (еф4) је потписан и послат другим чворовима на валидацију
00:40 — Блок #214 (983) је потврђен и послат у основни ланац
00:41 — Сви чворови су примили информацију из коренског ланца да је блок #214 (9фб) додат и почињу да примењују 11703 трансакције
00:45 — Сви чворови су примили информацију из коренског ланца да је блок #215 (983) додат и почињу да примењују 11900 трансакција
00:51 — Блок #214 (еф4) је потврђен и послат у основни ланац
00:52 — Чвор #1 је узео 51469 трансакција из скупа и формира блок #216 (еа0)
00:56 — Чвор #3 је узео 55102 трансакције из скупа и формира блок #216 (ф75)
00:58 — Демо скрипта је завршила свој рад за чвор #2
00:58 — Блок #216 (еа0) је потписан и послат другим чворовима на валидацију
00:58 — Сви чворови су примили информације из коренског ланца да је блок #216 (еф4) додат и почињу да примењују 27088 трансакција
01:04 — Блок #216 (ф75) је потписан и послат другим чворовима на валидацију
01:14 — Чвор #2 је узео 72912 трансакције из скупа и формира блок #217 (ф85)
01:15 — Демо скрипта је завршила са радом за чворове #1 и #2
01:17 — Блокови #216 (ф75) и #216 (еа0) су потврђени и послати у основни ланац
01:21 — Блок #217 (ф85) је потписан и послат другим чворовима на валидацију
01:26 - Блокови #217 (ф75) и #218 (еа0) се додају у основни ланац и чворови почињу да примењују 51469 и 55102 трансакције, респективно
01:27 — Блок #217 (а85) је потврђен и послат у основни ланац
01:41 — Чвор #1 је узео 36828 трансакција из скупа и формира блок #219 (46ф)
01:41 — Чвор #3 је узео 32998 трансакција из скупа и формира блок #219 (бб3)
01:43 — Сви чворови су примили информације из коренског ланца да је блок #219 (а85) додат и почињу да примењују 72912 трансакција
01:46 — Блок #219 (46ф) је потписан и послат другим чворовима на валидацију
01:46 — Блок #219 (бб3) је потписан и послат другим чворовима на валидацију
01:53 — Чвор #2 је обрадио свих 100к трансакција које су биле у групи
02:37 — Блок #219 (бб3) је потврђен и послат у основни ланац
02:41 — Блок #219 (46ф) је потврђен и послат у основни ланац
02:48 — Блокови #220 (бб3) и #221 (46ф) се додају у основни ланац и чворови почињу да примењују 32998 односно 36828 трансакција
02:54 — Чвор #1 је обрадио свих 100к трансакција које су биле у групи
02:55 — Чвор #3 је обрадио свих 100к трансакција које су биле у групи
04:12 — Сви чворови садрже 300к трансакција и токена, последњи блок #221

Test 2

3 чвора примају по 1кк трансакција. Укупно, свих 9 чворова садржи 3к трансакција и токена.

Почетно стање: последњи блок # 213; 0 трансакција и токена је сачувано у бази података.

00:00 — Покрећу се 3 скрипте које генеришу и шаљу 1кк трансакција свака
02:29 — Слање 1кк трансакција чворовима #1 и #2 је почело
02:33 — Чвор #1 је узео 11668 трансакција из скупа и формира блок #222 (510)
02:35 — Блок #222 (510) је потписан и послат другим чворовима на валидацију
02:37 — Блок #222 (510) је потврђен и послат у основни ланац
02:38 — Чвор #2 је узео 46378 трансакција из скупа и формира блок #222 (а9д)
02:38 — Слање 1кк трансакција чвору #3 је почело
02:41 — Чвор #3 је узео 5504 трансакција из скупа и формира блок #222 (387)
02:42 — Блок #222 (387) је потписан и послат другим чворовима на валидацију
02:44 — Блок #222 (а9д) је потписан и послат другим чворовима на валидацију
02:44 — Блок #222 (387) је потврђен и послат у основни ланац
02:49 — Блок #222 (а9д) потврђен и послат у основни ланац
02:56 - Блокови #222 (510) #223 (387) и #224 (а9д) се додају у основни ланац и чворови почињу да примењују 11668, 5504 и 46378 трансакција респективно
03:09 — Чвор #1 је узео 177170 трансакција из скупа и формира блок #225 (е50)
03:09 — Чвор #3 је узео 119327 трансакција из скупа и формира блок #225 (ццц)
03:10 — Чвор #2 је узео 149772 трансакција из скупа и формира блок #225 (404)
03:26 — Блок #225 (ццц) је потписан и послат другим чворовима на валидацију
03:32 — Блок #225 (404) је потписан и послат другим чворовима на валидацију
03:33 — Блок #225 (е50) је потписан и послат другим чворовима на валидацију
03:53 — Блок #225 (ццц) потврђен и послат у основни ланац
04:03 — Блок #225 (е50) потврђен и послат у основни ланац
04:04 — Блок #225 (404) је потврђен и послат у основни ланац
04:06 — Сви чворови су примили информацију из основног ланца да је блок #225 (ццц) додат и почињу да примењују 119327 трансакција
04:14 — Сви чворови су примили информацију из коренског ланца да је блок #226 (404) додат и почињу да примењују 149772 трансакција
04:16 — Сви чворови су примили информације из коренског ланца да је блок #227 (е50) додат и почињу да примењују 177170 трансакција
04:32 — Чвор #3 је узео 209436 трансакција из скупа и формира блок #228 (1е9)
04:40 — Чвор #2 је узео 212669 трансакција из скупа и формира блок #228 (е38)
04:40 — Чвор #1 је узео 190144 трансакција из скупа и формира блок #228 (861)
05:02 — Блок #228 (1е9) је потписан и послат другим чворовима на валидацију
05:08 — Блок #228 (861) је потписан и послат другим чворовима на валидацију
05:10 — Блок #228 (е38) је потписан и послат другим чворовима на валидацију
06:13 — Блок #228 (1е9) потврђен и послат у основни ланац
06:13 — Блок #228 (861) је потврђен и послат у основни ланац
06:13 — Блок #228 (е38) потврђен и послат у основни ланац
06:39 - Блокови #228 (861) #229 (1е9) и #230 (е38) се додају у коренски ланац и чворови почињу да примењују 190144, 209436 и 212669 трансакција респективно
07:07 — Чвор #1 је узео 199770 трансакција из скупа и формира блок #231 (е04)
07:09 — Чвор #2 је узео 190473 трансакција из скупа и формира блок #231 (36е)
07:09 — Чвор #3 је узео 178807 трансакције из скупа и формира блок #231 (ф43)
07:34 — Блок #231 (е04) је потписан и послат другим чворовима на валидацију
07:37 — Блок #231 (36е) је потписан и послат другим чворовима на валидацију
07:37 — Блок #231 (ф43) је потписан и послат другим чворовима на валидацију
08:49 — Блок #231 (е04) потврђен и послат у основни ланац
08:51 — Блок #231 (ф43) потврђен и послат у основни ланац
08:52 — Блок #231 (36е) потврђен и послат у основни ланац
09:47 - Блокови #231 (е04) #232 (ф43) и #233 (36е) се додају у коренски ланац и чворови почињу да примењују 199770, 178807 и 190473 трансакције респективно
10:16 — Чвор #1 је узео 153075 трансакција из скупа и формира блок #234 (е04)
10:16 — Чвор #2 је узео 168035 трансакција из скупа и формира блок #234 (36е)
10:16 — Чвор #3 је узео 166685 трансакције из скупа и формира блок #234 (ф43)
10:42 — Блок #234 (56д) је потписан и послат другим чворовима на валидацију
11:59 — Блок #234 (1бб) је потврђен и послат у основни ланац
12:02 — Блок #234 (58а) потврђен и послат у основни ланац
12:02 — Блок #234 (56д) потврђен и послат у основни ланац
12:48 - Блокови #234 (1бб) #235 (58а) и #236 (56д) се додају у коренски ланац и чворови почињу да примењују 153075, 168035 и 166685 трансакција респективно
13:14 — Чвор #1 је узео 112226 трансакција из скупа и формира блок #237 (5ц0)
13:16 — Чвор #2 је узео 87550 трансакција из скупа и формира блок #234 (58а)
13:16 — Чвор #3 узео је 99594 трансакција из скупа и формира блок #234 (56д)
13:30 — Блок #237 (5ц0) је потписан и послат другим чворовима на валидацију
13:32 — Блок #237 (58а) је потписан и послат другим чворовима на валидацију
13:34 — Блок #237 (56д) је потписан и послат другим чворовима на валидацију
14:47 — Блок #237 (58а) потврђен и послат у основни ланац
14:53 — Блок #237 (5ц0) није потврђен у наведеном времену
14:53 — Сви чворови су примили информацију из основног ланца да је блок #237 (58а) додат и почињу да примењују 87550 трансакција
14:54 — Блок #237 (56д) потврђен и послат у основни ланац
15:02 — Чвор #1 је узео 181206 трансакција из скупа и формира блок #238 (ц5ф)
15:06 — Сви чворови су примили информацију из коренског ланца да је блок #238 (56д) додат и почињу да примењују 99594 трансакција
15:12 — Чвор #2 узео је 51990 трансакција из скупа и блок образаца #239 (ад8)
15:20 — Блок #239 (ад8) је потписан и послат другим чворовима на валидацију
15:25 — Чвор #3 је узео 46685 трансакција из скупа и формира блок #239 (857)
15:30 — Блок #238 (ц5ф) је потписан и послат другим чворовима на валидацију
15:34 — Блок #239 (857) је потписан и послат другим чворовима на валидацију
16:32 — Блок #239 (857) је потврђен и послат у основни ланац
16:42 — Сви чворови су примили информацију из коренског ланца да је блок #239 (857) додат и почињу да примењују 46685 трансакција
16:42 — Блок #238 (ц5ф) је потврђен и послат у основни ланац
16:42 — Блок #239 (ад8) није потврђен у наведеном времену
16:54 — Чвор #2 је узео 96882 трансакција из скупа и формира блок #240 (е6е)
16:56 — Чвор #3 је узео 39704 трансакције из скупа и формира блок #240 (а47)
17:02 — Блок #240 (а47) је потписан и послат другим чворовима на валидацију
17:02 — Блок #240 (е6е) је потписан и послат другим чворовима на валидацију
17:18 — Сви чворови су примили информацију из основног ланца да је блок #240 (ц5ф) додат и почињу да примењују 181206 трансакција
17:45 — Блок #240 (а47) је потврђен и послат у основни ланац
17:47 — Чвор #1 је узео 54956 трансакција из скупа и формира блок #241 (170)
17:59 — Блок #241 (170) је потписан и послат другим чворовима на валидацију
18:09 — Сви чворови су примили информацију из основног ланца да је блок #241 (а47) додат и почињу да примењују 181206 трансакција
18:20 — Чвор #3 је узео 39104 трансакција из скупа и формира блок #242 (955)
18:24 — Блок #240 (е6е) је потврђен и послат у основни ланац
18:28 — Блок #242 (955) је потписан и послат другим чворовима на валидацију
18:09 — Сви чворови су примили информације из коренског ланца да је блок #242 (е6е) додат и почињу да примењују 96882 трансакција
19:06 — Демо скрипта је завршила свој рад за чвор #1
19:08 — Демо скрипта је завршила свој рад за чвор #2
19:08 — Чвор #2 је узео 48241 трансакција из скупа и формира блок #243 (фде)
19:14 — Блок #243 (фде) је потписан и послат другим чворовима на валидацију
19:18 — Блок #241 (170) није потврђен у наведеном времену
19:28 — Чвор #1 је узео 86967 трансакција из скупа и формира блок #243 (37ц)
19:35 — Блок #242 (955) је потврђен и послат у основни ланац
19:40 — Блок #243 (37ц) је потписан и послат другим чворовима на валидацију
20:05 — Сви чворови су примили информацију из коренског ланца да је блок #243 (955) додат и почињу да примењују 39104 трансакција
20:15 — Блок #243 (фде) је потврђен и послат у основни ланац
20:19 — Чвор #3 је узео 42981 трансакција из скупа и формира блок #244 (9б5)
20:26 — Блок #244 (9б5) је потписан и послат другим чворовима на валидацију
20:28 - сви чворови су примили информацију из коренског ланца да је блок #244 (фде) додат и почињу да примењују 48241 трансакција
20:32 — Чвор #2 је обрадио свих 1к трансакција које су биле у групи
21:05 — Блок #243 (37ц) није потврђен у наведеном времену
21:15 — Чвор #1 је узео 86967 трансакција из скупа и формира блок #245 (37ц)
21:32 — Блок #245 (37ц) је потписан и послат другим чворовима на валидацију
21:42 — Блок #244 (9б5) је потврђен и послат у основни ланац
21:50 — Сви чворови су примили информацију из основног ланца да је блок #245 (9б5) додат и почињу да примењују 42981 трансакција
22:04 — Чвор #3 је узео 45361 трансакција из скупа и формира блок #246 (3ф9)
22:11 — Блок #246 (3ф9) је потписан и послат другим чворовима на валидацију
22:51 — Блок #245 (37ц) није потврђен у наведеном времену
23:01 — Чвор #1 је узео 86967 трансакција из скупа и формира блок #246 (37ц)
23:08 — Демо скрипта је завршила свој рад за чвор #3
23:15 — Блок #246 (37ц) је потписан и послат другим чворовима на валидацију
23:32 — Блок #246 (3ф9) није потврђен у наведеном времену
23:42 — Чвор #3 узео је 52173 трансакција из скупа и формира блок #246 (71д)
23:51 — Блок #246 (71д) је потписан и послат другим чворовима на валидацију
24:38 — Блок #246 (37ц) није потврђен у наведеном времену
25:01 — Чвор #1 је узео 86967 трансакција из скупа и формира блок #246 (37ц)
25:06 — Блок #246 (71д) потврђен и послат у основни ланац
25:12 — Блок #246 (37ц) је потписан и послат другим чворовима на валидацију
25:14 — Сви чворови су примили информацију из коренског ланца да је блок #246 (71д) додат и почињу да примењују 52173 трансакција
25:29 — Чвор #3 је обрадио свих 1к трансакција које су биле у групи
26:40 — Блок #247 (37ц) није потврђен у наведеном времену
26:47 — Чвор #1 је узео 86967 трансакција из скупа и формира блок #247 (37ц)
27:03 — Блок #247 (37ц) је потписан и послат другим чворовима на валидацију
28:29 — Блок #247 (37ц) није потврђен у наведеном времену
28:35 — Чвор #1 је узео 86967 трансакција из скупа и формира блок #247 (37ц)
28:49 — Блок #247 (37ц) је потписан и послат другим чворовима на валидацију
30:13 — Блок #247 (37ц) није потврђен у наведеном времену
30:23 — Чвор #1 је узео 86967 трансакција из скупа и формира блок #247 (37ц)
30:38 — Блок #247 (37ц) је потписан и послат другим чворовима на валидацију
32:00 — Блок #247 (37ц) није потврђен у наведеном времену
32:11 — Чвор #1 је узео 86967 трансакција из скупа и формира блок #247 (37ц)
32:26 — Блок #247 (37ц) је потписан и послат другим чворовима на валидацију
33:49 — Блок #247 (37ц) није потврђен у наведеном времену
33:59 — Чвор #1 је узео 86967 трансакција из скупа и формира блок #247 (37ц)
34:12 — Блок #247 (37ц) је потписан и послат другим чворовима на валидацију
35:34 — Блок #247 (37ц) потврђен и послат у основни ланац
35:54 — Сви чворови су примили информацију из основног ланца да је блок #247 (37ц) додат и почињу да примењују 86967 трансакција
36:11 — Чвор #1 је обрадио свих 1к трансакција које су биле у групи
55:12 - први чвор је обрадио свих 3к трансакција

Јавно тестирање Етхереум решења за приватност и скалабилност на платформама у облаку

Резултати

Откривено је да Азуре виртуелни сервери немају довољно процесорске снаге за обраду тако великог броја трансакција. Али систем се добро носио са главним задатком тестова, а то је да демонстрира рад Пласма Цасх-а са МонгоДБ-ом.

Позивамо вас да посетите ГитХуб пројекат: https://github.com/opporty-com/Plasma-Cash/tree/new-version

Чланак је коаутор Александар Нашиван, виши програмер Цлевер Солутион Инц.

Раније развојни тим Оппорти Већ сам тестирао брзину Пласма Цасх-а. Резултати су представљени у Овај чланак.

Извор: ввв.хабр.цом

Додај коментар