blockchain ααΊααΆαα αα αααα·ααααΆα αααααααα·αααααΈααααααααΆααΆααΉαααααΎα±αααααααΎαα‘αΎαααΌααα·αααααΆα αααΎαααααΈαα·αααα»αααα ααΆαααααααααΎαααΆα αα·αααα·ααααα·αααα αααα»αααα ααΈααΈαα ααΆααΆααΌαααααΏα αα·αααΆαααΏααΆααααααααα·ααααα·ααΆαα α·ααααααααα» ααΆαααααααααΆαα αααΆααααααα½ααα α αΎαααα’αα»ααααΆαα±ααα’ααααααααΎααααααα·ααΈ DAPP ααααΎααααααααΎαα·α αα αααααΆααααΆααααα αααα»ααααααΆααα·ααααααΆαα
αααααα½αααΆαα’αααααααααααααΆα αααΎα αα·ααααααα·ααΈα αααα»ααα blockchain ααΆα’αΆα α αΆααααΌα ααΆαα½αα±ααααααΆααααα’αΎαααααα αα αααα·ααααΆααααααααααααα·αααΆααααΆαααΆααα ααααααααα§ααααΆα ααααααΆααα’αααα α‘αΎαα αααα αΆααΊααΆ blockchains αα·ααααααΆαααααΎαααααααααααΆαααααΎααΆαααααααΆαα Ethereum ααααΎαααΆααααα αα 20 ααααα·ααααα·ααΆααααα»ααα½ααα·ααΆααΈ ααααα·ααααααααααΆααααΎααααΈααααααααααΌαααΆαααα’αΆααΈααααααααααΆαααΆαααααΆααααα αα α»αααααααααα αααααΉαααΉααααααααααα»αα αα»ααααααααΎαα αα αααα·ααααΆ blockchain ααααΆααααααΎααααα»αααΆαααααααα αα Ethereum αααααΆαααααααα·ααααααααααΆαααΆαααΆαααΈααΆααα½α α αΌα αα·αααΆααααΆααααααααΆαα
ααΎααααΈααΆααΆααΆαααΌααα·ααααααΆα αα»ααααα·ααΆα αα·αααΆαααααΎααΆαααααααΆααα
αααα»α blockchain ααΌα
ααααααΆααααααααΆα Scalability Trilemma αααα»αα’αα·αααααα
ααααΎαααΆαααααΆααααα αααα»α Plasma Cash
1. α’αααααααΎααααΆααα α αα»αααΆααα·α αα αααααΆααααΆαααααΆ 'ααΆαααΆααααααΆαα' ααααααα αΌααα αααα»αααΆααΌαααα·ααΆα ETH αααααΆααα ααααΆααα αΌααα αααα»αααααΆααααααΆααΆα αααααΆααααααΆααααΆα αα»αααΆααα·α αα αααααΆααααΆααααααααΎααααααΆαααααΆαα αα·ααααααΎαααααΉαααα·ααΆαααα’αααΈααΆα
2. ααααΆααααΆα αααααΆααααααΆααααΆαααααΆαααΆαααααΉαααα·ααΆααααα·α αα αααααΆααααΆαααααα½αααΆαααααΉαααα·ααΆαααα’αααΈααΆααααααΎαααααΆαααααααΎ αα·αααααααααααα·ααααα·ααΆαα’αααΈααΆααααααΎααα·αα·ααααααααΆαα αααα»αα’αΆαα
3. ααΆαααΆαααααα ααααΆααααααΆααααΆααΆα αααααΆαααα·αααααααααα·ααααα·ααΆαααΆααα’ααααΈα’αΆα (αα αΌαααα 1 ααΆα) α αΎααααααΎααααα»αααΈαα½αααΆ ααααΆαααααΆα Merkle α αΎαααΆαααα αααααΆα αααα»ααααααααΌαααΆααααααΌααα ααααΆαααααααααααααααΆααααΆααααααααααΆααα ααααΆαααα·αα·αααααΎαααΆααΎααααααααΆαα Merkle ααΆααα»ααααΆααααα¬αα αα·αααΆααΎααααα·ααααα·ααΆαααΆααα»ααααΆααααα¬αα (α§ααΆα ααα ααΆααΎα’αααααααΎαααααΆαααααΆααααΊααΆααα αΆααααααααΆαα)α αααααΆααααΈαααααααααΆαααααα»α αααααααΆααα α αα»αααΆα 'submitBlock' αααα·α αα αααααΆααααΆααα ααααααααΆαα»αααααααα»α αα·α Merkle hash αα αααααααααΆαααααα αα·α αα αααααΆααααΆααααααααΎαααααΉαααα·ααΆαααααααααα αΆαααΈααΆααααααααααα»ααααααααααα ααααα·ααααα·ααΆαααααΌαααΆαααα ααααΈα’αΆαα
4. ααααΆαααααααα½αααααΉαααα·ααΆαααααΆααααααΎαααα»αα αΆααααααΎαα’αα»ααααααααα·ααααα·ααΆααααααααΌαααΆααααααααα αααα»αα
5. αα α ααα»α αααα ααα αΆαα (α¬αα·ααααααα αΆαα) αααααααΆαααααΆααα ααααααΆα ααααΈ Plasma Cash α ααΎααααΈααααΎααΌα αααααΆααααΆαα α αα»αααΆα 'startExit' ααααααα αΌαααααααΆαα’αααΈααααα·ααααα·ααΆα 2 α α»αααααααα ααΎαααααΆαααααΆαα ααααααααΆααααΆααΆααααΆααα αΆαααα·αα·ααααααααΆα αα·α αα αααααΆααααΆααααααααααΎαααααΆ Merkle αα·αα·αααααΎαααααααΆαααααααα·ααααα·ααΆααα αααα»ααααα»α αα·αααααΎαααααΆαααααΆαααααααΆααααΆαααααααΆαααααααΉαααΎαα‘αΎααααα»αααααααααΈααααααΆα αα
6. ααααα·αααΎααααα·ααααα·ααΆααααααααΆαααααΆααααΆαααΎαα‘αΎαααΆαα½αααΉαααΆααααααααααΆα (αα·αα·ααααααααΆααααΌαααΆαα αααΆααααααΆααααΈααΈαα·αα·ααΈααααααΆααααΆαα αΆααααααΎα α¬αααααΆαααααΆααααΊααΆααααα’αααααααααα»αααΆαααααααΆαα) ααα αΆαααα·αα·ααααααααΆα’αΆα ααα·αααααΆαααααααααα»αααααααααΈααααααΆα αα
ααΆαα―αααααααΌαααΆααααααα ααΆαααΈααα·ααΈ
1. αααααααααΆααα«ααα·αααΉαα’αααΈααΆααα’ααα’αααΈααααα·ααααα·ααΆααααααααΌαααΆααααααΎα αα·ααααααΌααααααα αααα»ααααααααααΆαααα»ααΆαα ααααααΆαα’αααΈα’ααααααααΆααααααΆαα αα·ααα ETH ααΈ Plasma Cash αα ααααΆααΆααΆαααα
2. αααααααααΆαααα»ααΆαα’αα»ααααΆαα±ααααααα·ααααα·ααΆαα’ααΆαα·ααααααααΎ zk-SNARKs α
ααααα αα αααα·ααααΆ
- NodeJS
- Redis
- α’αααΎααααΌα
- Sild
ααΆααααα
ααααααααααααα»αα’αα·αααα Plasma Cash ααΎαααΆαααΆαααααααααΏααααααααααα α αΎαααα½αααΆαααααααααΌα ααΆααααααα
- αα αΌαααα 35 ααααα·ααααα·ααΆααααα»ααα½ααα·ααΆααΈααααΌαααΆααααααααα αααα»αα’αΆαα
- ααααα·ααααα·ααΆααα αΌαααα 1 α’αΆα ααααΌαααΆααααααΆαα»ααααα»ααααα»ααα½αα
ααΆαααααΎαααααααααΌαααΆαααααΎα‘αΎααα ααΎαααΆαααΈαααα ααα½α 3 ααΆααααααα
1. Intel Core i7-6700 Quad-Core Skylake αα½ααααα
αΌαα NVMe SSD - 512 GB, RAM 64 GB DDR4
ααααΆααααΆα
αααααΆααααααΆααααΆαααααΆααα»ααααΆαα
ααα½α 3 ααααΌαααΆαααΎαα‘αΎαα
2. AMD Ryzen 7 1700X Octa-Core βSummit Ridgeβ (Zen), SATA SSD β 500 GB, RAM 64 GB DDR4
ααααΆαα Ropsten testnet ETH ααααΌαααΆαααΎαα‘αΎαα
ααααΆααααΆα
αααααΆααααααΆααααΆαααααΆααα»ααααΆαα
ααα½α 3 ααααΌαααΆαααΎαα‘αΎαα
3. Intel Core i9-9900K Octa-Core αα½ααααα
αΌαα NVMe SSD - 1 TB, RAM 64 GB DDR4
1 ααααΆαααααααΌαααΆα
αααααΆααααααΆααααΆααααΌαααΆαααΎαα‘αΎαα
ααααΆααααΆα
αααααΆααααααΆααααΆαααααΆααα»ααααΆαα
ααα½α 3 ααααΌαααΆαααΎαα‘αΎαα
ααΆαααααΎαααααααααΌαααΆαα
αΆααααααΎαααΎααααΈααααααααααα·ααααα·ααΆααα
ααΆαααααααΆα Plasma Cash α
ααα»α: ααααΆααααΆα αααααΆααααααΆααααΆα ααα½α 10 αα αααα»ααααααΆαα―αααα
ααααα α‘
ααΆααααααααα 1 ααΆαααααα·ααααα·ααΆααααα»ααα½ααααα»αα ααΌα αααα 1 ααΆαααααα·ααααα·ααΆαααααΆααα αΌααα αααα»α 2 αααα»α (α αΆααααΆααααΈαααααααααααααααααααΎααααΈαααααααααααααα·ααααα·ααΆααα·αααΆααααααΎααααααααααα½ααααααα»αααααΌαααΆαααααΎ) α
ααααΆαααΆαααααΌαα αααα»αα α»αααααα #7; ααααα·ααααα·ααΆα αα·ααααααΆαααααΆααα ααα½α 1 ααΆαααααΌαααΆααααααΆαα»ααααα»αααΌαααααΆααα·ααααααα
00:00 - ααΆαα
αΆααααααΎαααααΆααααααΎαααααααΈαααααα·ααααα·ααΆα
01:37 - ααααα·ααααα·ααΆα 1 ααΆαααααΌαααΆααααααΎαα‘αΎα α αΎαααΆαααααΎαα
ααΆααααααΆααααΆαα
αΆααααααΎα
01: 46 - ααΆααααααΎααααΆααααΆαααααααα·ααααα·ααΆα 240k ααΈα’αΆααα·ααααααααααα»αααα 8 α ααΎαααααΎααααααΆααααα·ααααα·ααΆα 320k ααααΌαααΆααααααααα
αααα»αα’αΆααααα»ααααααα 10 αα·ααΆααΈ
01:58 β αααα»α #8 ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαααααΆαααα»ααααΆα
02:03 β αααα»αααα 8 ααααΌαααΆαααααΎα±ααααΆααα»ααααΆαα αΎααα»αααΆα 'submitBlock' αααα·α
αα
αααααΆααααΆαααααααΌαααΆαα α
ααΆαα½αααααααααΆ Merkle αα·αααααααα»α
02:10 - ααααααΈαααΆαααααααΆααααα
ααααααΎαααΆα αααααΆααααααΌαααααα·ααααα·ααΆα 1 ααΆααααα»ααααααα 32 αα·ααΆααΈ
02:33 - ααααΆααα
αΆααααααΎαααα½αααΆαααααααΆαααΆαααα»α #8 ααααΌαααΆααααααααα
αααααααααΆααα«α α αΎαα
αΆααααααΎαααααΎααααα·ααααα·ααΆα 240k
02:40 - ααααα·ααααα·ααΆα 240k ααααΌαααΆαααα
ααααΈα’αΆα ααααααα·ααα
αααα»ααααα»α #8 αα½α
α αΎα
02: 56 - ααΆααααααΎααααΆααααΆαααααααα·ααααα·ααΆα 760k ααααα
αααααΈα’αΆα α αΎαα
αΆααααααΎαααααΆ Merkle hash αα·αααΆαα
α»αα αααααααΆαααα»α #9
03:20 - ααααΆααααΆααα’ααααΆαααααα·ααααα·ααΆα αα·ααααααΆαααααΆαα 1 ααΆα 240k
03:35 β αααα»α #9 ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαααααΆαααα»ααααΆααα
ααΆααααααΆααααααααααα
03:41 - ααα α»ααααααΆαααΆαααΎαα‘αΎα
04:40 - ααΆααααα
αΆααααααΆαααααα»α #9 αα»ααααΆαααΆααα»αααααα
04: 54 - ααΆααααααΎααααΆααααΆαααααααα·ααααα·ααΆα 760k ααααα
αααααΈα’αΆα α αΎαα
αΆααααααΎαααααΆ Merkle hash αα·αααΆαα
α»αα αααααααΆαααα»α #9
05:32 β αααα»α #9 ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαααααΆαααα»ααααΆααα
ααΆααααααΆααααααααααα
05: 53 - αααα»α # 9 ααααΌαααΆαααααΎα±ααααΆααα»ααααΆαα αΎαααααΌαααΆααααααΌααα
αααααααααΆααα«α
06:17 - ααααΆααα
αΆααααααΎαααα½αααΆαααααααΆαααααααα»α #9 ααααΌαααΆααααααααα
αααααααααΆααα«α α αΎαα
αΆααααααΎαααααΎααααα·ααααα·ααΆα 760k
06: 47 - α’αΆαααΆααααα’αΆαααααα·ααααα·ααΆααααααΆααα
αααα»ααααα»α #9
09:06 - ααααΆααααΆααα’ααααΆαααααα·ααααα·ααΆα αα·ααααααΆαααααΆααα
ααα½α 2 ααΆα
ααααα α‘
ααΆααααααααα 350k αααα»ααα½ααααα»αα ααΆααααααααΎαααΆα 3 αααα»αα
ααααΆαααΆαααααΌαα αααα»αα α»αααααα #9; ααααα·ααααα·ααΆα αα·ααααααΆαααααΆααα ααα½α 2 ααΆαααααΌαααΆααααααΆαα»ααααα»αααΌαααααΆααα·αααααα
00:00 β ααααααΈαααααΆααααααα·ααααα·ααΆαααααΌαααΆαααΆααα±ααααααΎαααΆααα½α
α αΎα
00:44 - ααααα·ααααα·ααΆα 1 ααΆαααααΌαααΆααααααΎαα‘αΎα α αΎαααΆαααααΎαα
ααΆααααααΆααααΆαα
αΆααααααΎα
00: 56 - ααΆααααααΎααααΆααααΆαααααααα·ααααα·ααΆα 320k ααΈα’αΆααα·ααααααααααα»αααα 10 α ααΎαααααΎααααααΆααααα·ααααα·ααΆα 320k ααααΌαααΆααααααααα
αααα»αα’αΆααααα»ααααααα 10 αα·ααΆααΈ
01:12 β αααα»α #10 ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
01:18 - ααααααΈαααΆαααααααΆααααα
ααααααΎαααΆα αααααΆααααααΌαααααα·ααααα·ααΆα 1 ααΆααααα»ααααααα 34 αα·ααΆααΈ
01:20 - αααα»α #10 ααααΌαααΆαααααΎα±ααααΆααα»ααααΆαα αΎαααααΌαααΆααααααΌααα
αααααααααΆααα«α
01:51 - ααααΆααααΆααα’ααααΆαααα½αααααααΆαααΈαααααααααΆααα«αααααααα»α #10 ααααΌαααΆααααααα α αΎαα
αΆααααααΎαα’αα»ααααααααα·ααααα·ααΆα 320k
02:01 - α’αΆαααΆαααααααααααΆααααααα·ααααα·ααΆα 320k αααααααΌαααΆααααααααα
αααα»α #10
02:15 - ααΆααααααΎααααΆααααΆαααααααα·ααααα·ααΆα 350k ααΈα’αΆααα·ααααααααααα»αααα 11
02:34 β αααα»α #11 ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
αααα 02:51 - αααα»αααα 11 ααααΌαααΆαααααΎαα»ααααΆα αα·ααααααΌααα
αααααααααΆααα«α
02:55 - ααααΆααα
α»ααααααααΆααααα
ααααααα·ααααα·ααΆαααΈαααα»α #10
10:59 - ααααα·ααααα·ααΆαααΆαα½αααΉαααΆααααααΌααααα»α #9 α
αααΆααααααΌαααΆαααα
αααα»ααααααααααΆααα«αααα»ααααααΆααααΌαααΆααααα
ααα αΎαααααΆααααΆααα’ααααΆαααα½αααααααΆαα’αααΈααΆα αΎαα
αΆααααααΎαααααΎααααα·ααααα·ααΆα 350k α
11:05 - α’αΆαααΆαααααααααααΆααααααα·ααααα·ααΆα 320k αααααααΌαααΆααααααααα
αααα»α #11
12:10 - ααααΆααααΆααα’ααααΆαααααα·ααααα·ααΆα αα·ααααααΆαααααΆαα 1 ααΆα 670k
12:17 - ααΆααααααΎααααΆααααΆαααααααα·ααααα·ααΆα 330k ααΈα’αΆααα·ααααααααααα»α #12
12:32 β αααα»α #12 ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
12:39 - αααα»α #12 ααααΌαααΆαααααΎα±ααααΆααα»ααααΆαα αΎαααααΌαααΆααααααΌααα
αααααααααΆααα«α
13:44 - ααααΆααααΆααα’ααααΆαααα½αααααααΆαααΈαααααααααΆααα«αααααααα»α #12 ααααΌαααΆααααααα α αΎαα
αΆααααααΎαα’αα»ααααααααα·ααααα·ααΆα 330k
14:50 - ααααΆααααΆααα’ααααΆαααααα·ααααα·ααΆα αα·ααααααΆαααααΆααα
ααα½α 2 ααΆα
ααααα α‘
αα αααα»ααααΆαααΈαααααΈαα½α αα·αααΈααΈα ααααΆαααααααΆααα»ααααΆααα½αααααΌαααΆααααα½ααααααααΆαααααααΌαα
ααααΆαααΆαααααΌαα αααα»αα α»αααααα #84; 0 ααααα·ααααα·ααΆα αα·ααααααΆαααααΆαααααααΆααααααΆαα»ααααα»αααΌαααααΆααα·αααααα
00:00 β ααααααΈα 3 ααααΌαααΆαααΆααα±ααααααΎαααΆα ααααααααΎα αα·αααααΎ 1 ααΆαααααα·ααααα·ααΆαααΈαα½αα
01:38 β ααααα·ααααα·ααΆαα
ααα½α 1 ααΆαααααΌαααΆααααααΎαα‘αΎα α αΎαααΆαααααΎαα
ααΆααααααΎααα 3 ααΆαα
αΆααααααΎα
01:50 β ααΆααααααΎααααΆαα #3 ααΆαααααααα·ααααα·ααΆα 330k ααΈα’αΆα αα·ααααααααααα»α #85 (f21)α ααΎαααααΎααααααΆααααα·ααααα·ααΆα 350k ααααΌαααΆααααααααα
αααα»αα’αΆααααα»ααααααα 10 αα·ααΆααΈ
01:53 β ααααα·ααααα·ααΆαα
ααα½α 1 ααΆαααααΌαααΆααααααΎαα‘αΎα α αΎαααΆαααααΎαα
ααΆααααααΎααα 1 ααΆαα
αΆααααααΎα
01:50 β ααΆααααααΎααααΆαα #3 ααΆαααααααα·ααααα·ααΆα 330k ααΈα’αΆα αα·ααααααααααα»α #85 (f21)α ααΎαααααΎααααααΆααααα·ααααα·ααΆα 350k ααααΌαααΆααααααααα
αααα»αα’αΆααααα»ααααααα 10 αα·ααΆααΈ
02:01 - ααΆααααααΎααααΆαα #1 ααΆαααααααα·ααααα·ααΆα 250k ααΈα’αΆα αα·ααααααααααα»α #85 (65e)
02:06 β αααα»α #85 (f21) ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
02:08 - ααααααΈαααΆααααααααααΆαααΈααα # 3 αααααΆαααααΎααααα·ααααα·ααΆα 1 ααΆααααα»ααααααα 30 αα·ααΆααΈααΆααααα
ααααααΎαααΆα
02:14 β αααα»α #85 (f21) ααααΌαβααΆαβααααΎβα±ααβααΆαβαα»ααααΆα αα·αβααΆαβααααΎβαα
βααααβαααααΆααβα«α
02:19 β αααα»α #85 (65e) ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
02:22 β ααααα·ααααα·ααΆαα
ααα½α 1 ααΆαααααΌαααΆααααααΎαα‘αΎα α αΎαααΆαααααΎαα
ααΆααααααΎααα 2 ααΆαα
αΆααααααΎα
02:27 β αααα»α #85 (65e) ααααΎβα±ααβααΆαβαα»ααααΆα αα·αβααΆαβααααΎβαα
βααααβαααααΆααβα«α
02:29 - ααΆααααααΎααααΆαα #2 ααΆαααααααα·ααααα·ααΆα 111855 ααΈα’αΆα αα·ααααααααααα»α #85 (256) α
02:36 β αααα»α #85 (256) ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
02:36 - ααααααΈαααΆααααααααααΆαααΈααα # 1 αααααΆαααααΎααααα·ααααα·ααΆα 1 ααΆααααα»ααααααα 42.5 αα·ααΆααΈααΆααααα
ααααααΎαααΆα
02:38 β αααα»α #85 (256) ααααΌαβααΆαβααααΎβα±ααβααΆαβαα»ααααΆα αα·αβααΆαβααααΎβαα
βααααβαααααΆααβα«α
αααα 03:08 β ααααααΈα server #2 ααΆααααα
ααααααΎαααΆα ααααααααΌαααααα·ααααα·ααΆα 1 ααΆααααα»ααααααα 47 αα·ααΆααΈ
α α£:α£α¨ - ααααΆααααΆααα’ααααΆαααα½αααααααΆαααΈαααααααααΆααα«ααααααΆααΆαα #03 (f38), #85(21e), #86(65) ααααΌαααΆααααααα α αΎαα
αΆααααααΎαα’αα»ααααααααα·ααααα·ααΆα 87k, 256k, 330
03:49 - α’αΆααααααααΌαααΆαααααααα
330k, 250k, 111855 ααααα·ααααα·ααΆααααααααΌαααΆααααααααα
αααα»α #85 (f21), #86(65e), #87(256)
03:59 - ααΆααααααΎααααΆαα #1 ααΆαααααααα·ααααα·ααΆα 888145 ααΈα’αΆα α αΎααααααααααα»α #88 (214) ααΆααααααΆαα #2 ααΆαααααααα·ααααα·ααΆα 750k ααΈα’αΆα α αΎααααααααααα»α #88 (50a) ααΆααααααΆαα #3 ααααααα·ααααα·ααΆα 670k ααΈ α’αΆαα ααααΉα αα·ααααααααααα»α #88 (d3b)
04:44 β αααα»α #88 (d3b) ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
04:58 β αααα»α #88 (214) ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
05:11 β αααα»α #88 (50a) ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
05:11 β αααα»α #85 (d3b) ααααΌαβααΆαβααααΎβα±ααβααΆαβαα»ααααΆα αα·αβααΆαβααααΎβαα
βααααβαααααΆααβα«α
05:36 β αααα»α #85 (214) ααααΌαβααΆαβααααΎβα±ααβααΆαβαα»ααααΆα αα·αβααΆαβααααΎβαα
βααααβαααααΆααβα«α
05:43 - ααααΆααααΆααα’ααααΆαααα½αααααααΆαααΈαααααααααΆααα«ααααααΆααΆαα #88 (d3b), #89(214) ααααΌαααΆααααααα α αΎααααα»αα
αΆααααααΎαα’αα»ααααααααα·ααααα·ααΆα 670k, 750k
06:50 β αααααΆαβααΆαβααααΆααααααβαααΆααα αααα»α #85 (50a) αα·αβααααΌαβααΆαβαααααΆαα
06:55 - ααΆααααααΎααααΆαα #2 ααΆαααααααα·ααααα·ααΆα 888145 ααΈα’αΆα αα·ααααααααααα»α #90 (50a)
08:14 β αααα»α #90 (50a) ααααΌαααΆαα
α»αα αααααααΆ αα·αααααΎαα
ααΆααααααΆαααααααααααααααΆαααα»ααααΆα
09:04 β αααα»α #90 (50a) ααααΌαααΆαααααΎβα±ααβααΆαβαα»ααααΆα αα·αβααααΌαβααΆαβαααααΌαβαα
βααααβαααααΆααβα«α
11:23 - ααααΆααααΆααα’ααααΆαααα½αααααααΆαααΈαααααααααΆααα«αααααααα»α #90 (50a) ααααΌαααΆααααααα α αΎαα
αΆααααααΎαα’αα»ααααααααα·ααααα·ααΆα 888145 α αααα»ααααααΆαα½αααααΆααα αααΆαααΈααα #3 ααΆαα’αα»ααααααααα·ααααα·ααΆααα½α
α αΎαααΈαααα»α #88 (d3b), #89(214)
12:11 - α’αΆαααΆααα’ααααΊααα
13:41 β ααααΆααααΆααα’αααααααΆαααΈααα #3 ααΆαααααα·ααααα·ααΆα αα·ααααααΆαααααΆααα
ααα½α 3 ααΆα
14:35 β ααααΆααααΆααα’αααααααΆαααΈααα #1 ααΆαααααα·ααααα·ααΆα αα·ααααααΆαααααΆααα
ααα½α 3 ααΆα
19:24 β ααααΆααααΆααα’αααααααΆαααΈααα #2 ααΆαααααα·ααααα·ααΆα αα·ααααααΆαααααΆααα
ααα½α 3 ααΆα
α§ααααα
ααα‘α»αααααααααΎα Plasma Cash ααΎαααΆααα½αααααααααα αΆααΌα ααΆαααααα αααααΎααααααααΆααααααΎαα α αΎααααα»ααααααααΆαα
1. αααααααααα»αα’αααααααααααα»αααΆαααααααααααααααα α§ααΆα ααα αα»αααΆαααααΆαααααααααααα·ααααα·ααΆααα α’αΆαααΆαααΆααΆααααΆαααΆαααααΆαααΆααααααΎ αα·αααααΎα±αααααα»αααΆααα»ααααΆα α αΎααααα»ααα αα·α αααααΆαα±ααααααΏαααααΆααα α»αα
2. ααΆαα·αα αααΆααααααΆααα’αααΈααααααααΎα ααα½αααααααααααα·ααααα·ααΆααααααααααααΆαααααααααΆαα αααΆαααΎααΆαααααααα·ααααααα
3. ααΆαα·αα αααΆααα’αααΈαααα αα·ααααααααααααααΌααααααΆαα»ααα·ααααααααΎααααΈααα½αααΆααααααααααααα
4. ααΆαα·αα αααΆααα’αααΈαααααααα ααααααΆααααΆαααααΆαααα αααααΆαααα ααααααα»ααααααΆαααααα·ααααα·ααΆα 1 ααΆαααααΌαα αααΆαααααααα αα 100 ααααΆααα
5. ααΆαααααΎααΆααα αααα»ααααααααααααα½ααααααααΆααααααΆαααααΆαααααΆαααα ααααααααΆαααααΆαααααααΎαα‘αΎα (α§ααΆα ααα ααΆαααΆαααααααααΆα Merkle αα·αααΆαααααΆαααααΆααααααΆ)α
ααΎβααΎαβααΆαβαααααααΆαβαααα αΆβααΆααβα’ααβαααβαααβααααβααΆ?
ααααααααΌααα Plasma Cash node ααΊααΆααααααααααααααα’αΆα ααααΎα’αααΈαααααααααΆααααα»αααααααα½αα ααα½αααααααα·ααααα·ααΆα ααΆααααααΎ αα·αααααΎα±αααααα»αααΆααα»ααααΆα αα·αααααα API αααααΆααααΆαα αΌαααααΎαα·ααααααα αααααΆα NodeJS ααΆαααΎααααα½ααααα αα»αααΆαααααΆαααααΆα Merkle αααααααΆαααΆααΆαααα»αααΆαααααααααααα·ααααα·ααΆαα ααΎαααΆαααΎααααααΎαααΈααααααΆαααααααααΆααααα αΆαααα
1. α αΆααααααΎαααααΎαααΆα NodeJS ααΆα αααΎα αααααΈαα½ααααααΎαααΆααα»αααΆαααΆααααΆααα
2. ααααΎ worker_threads α αΎαααααΆααααΈααΆαααααα·ααααα·αααααααααααΌααα ααΆαααααααα‘αΆαα
ααΆαααααα ααΎαααΆαααααΎαααααΎαααΆααααΈααααα»ααααααααΆαααααΆα ααΎαααΆααααα ααααααΆαααα½ααα ααΆ 3 ααααααααα’αΆα ααααΎααΆααααα‘ααααΈααααΆ ααα»αααααα αααααΆαα½αααααΆααααΎααααΆααααα
1. ααααΆαααααααΌα αααααα½αααααααα·ααααα·ααΆαα αΌααα αααα»αα’αΆα αα·ααααααΎααααα»αα
2. ααααΆαααααααΆααα»ααααΆαααααα·αα·αααααΎααα»ααααΆαααααααΆααα
3. ααααΆαα API - ααααα API αααααΆααα αΌαααααΎαα·ααααααα
αααα»αααααΈααα α’αααα’αΆα ααααΆαααα ααααΆααααΈαα½ααααΆαααααααα unix αααααααΎ cli α
ααΎαααΆαααααΆααααααΌαααααα·ααααα·ααΆααααααα ααΌα ααΆααΆαααααΆαααααΆα Merkle αα ααΆαααααααα‘αΆαααΆα ααααα‘ααα
ααΌα ααααα αΎα ααΎααααααα ααΆαααΌαααααα·ααααα·ααΆαααααααΆαααα»αααΆα Plasma Cash ααΆααα’αααααα»ααααααααΆαααααΆ αα·ααααααααΆαααΆααααΆαααα
αα ααααααααααααααααααΎαααΆαααΆα ααΎαααΆαα αΆααααααΎαααΆαααααααααΏα α αΎαααΆα’αα»αα ααΆαααα½ααααααααα·ααααα α·αααα ααααα·ααααα·ααΆα 5 αααα»ααα½ααα·ααΆααΈ αα·ααα αΌαααα 000 ααααα·ααααα·ααΆααααα»ααα½ααααα»αα αααα»αβααααΌαβααβαααααβαααβααΈβα’αααΈβαααβααααΌαβααΆαβα’αα»ααααβαα·αβααααΉαααααΌαα
ααΎααααΈα αΆααααααΎα ααΎαααΆαα αΆααααααΎαααΆαααααααααααΆαααααΆαααααΆααααααααΆαα½α Plasma Cash ααΎααααΈααααααααααΈαααααααΆαααααααααα»αααααααααααα ααΎαααΆαααααααα»ααααααΆααααΆαα Plasma Cash αααααααΌαα ααα»α αααααΆαααααα unix α ααααΌαααΆααα’ααααΎα’αααααα ααααα» json ααααΌαααΆαααααΎαααααααΎ `JSON.parse()` αα·α `JSON.stringify()`α
```json
{
"action": "sendTransaction",
"payload":{
"prevHash": "0x8a88cc4217745fd0b4eb161f6923235da10593be66b841d47da86b9cd95d93e0",
"prevBlock": 41,
"tokenId": "57570139642005649136210751546585740989890521125187435281313126554130572876445",
"newOwner": "0x200eabe5b26e547446ae5821622892291632d4f4",
"type": "pay",
"data": "",
"signature": "0xd1107d0c6df15e01e168e631a386363c72206cb75b233f8f3cf883134854967e1cd9b3306cc5c0ce58f0a7397ae9b2487501b56695fe3a3c90ec0f61c7ea4a721c"
}
}
```
ααΎαααΆαααΆααααααΏααααααααααα»αααααα α αΎαααΆαααααΎα ~ 130k αααα»ααα½ααα·ααΆααΈα ααΎαααΆαααααΆααΆααααα½ααα»αααΆααααααααΆααααααΆααααααΎααΆαααΆαα½α json ααα»ααααααααΎαααΆααα·αααΆααααααΎαα‘αΎαααα αααΆαααΈα V8 ααααΌαααααααΌαααΆαααααΎα±αααααααΎαα‘αΎααααΆαααα’αααααΆααααααα·ααααα·ααΆαααΆαααααα
ααΎαααΆαααααΎααΆαααΆαα½αααααα·ααααα·ααΆα αααααΆαααααΆαα αα·ααααα»αααΆααααααααΆααα αα ααααααααΎαααααΆαααααααα ααΆαααααααααΆαααααΆααα α»α 2 αα ααααααα αΆαααΆ OOP αα·αααααΉαααΎαααα αααα»αβααααΌαβαααααβα’αααΈαβααΆααα’ααβα‘αΎαβαα·αβααΆαβαα·ααΈβαααβααΆαβαα»αααΆαβαα»αααααΆαα
ααΆααααααααΆαα αααα»αααΌαααααΆααα·αααααα
ααααΌα Redis ααααΌαααΆαααααΎαααΎααααααΆααααΆααααααΆαα»ααα·ααααααααΆαααααααααΆααααααΆαααα·αααΆααααα»ααααααααααααααΌαααΆαααααααΎαα ααΆααααα»αααααααααααΉα ααααΎααΆαααΆαα½αααΆααΆααααααΆ αααα»αα ααΎαααΆαααΆααααααΎαααΆα redis-benchmark α αΎαααα½αααΆαααααα·ααααα·ααΆα ~80k αααα»ααα½ααα·ααΆααΈαααα»α 1 pipelining modeα
αααααΆααααααΎαααΆαααααα ααΎαααΆαααααααα½α Redis α±ααααΆααααααα’α·αααα’ααα
- ααΆααααααΆααααααααΌααΈαααααΌαααΆααααααΎαα‘αΎαα
- ααΎαααΆααα·αααΆααααααΆαα»αααααΆαααΆααα ααΆα (αααααΆααααΆαα’αΆα ααΏααΆααααΆα α’αααα’αΆα αααα αααΆαα αααα αα·ααααααΆαα»ααα ααΆααααα»α Redis ααΆα ααααα‘αα)α
αα αααα»α Redis ααααα»αααΊααΆααΆααΆα hash ααΈαααααααΎαααααΌαααΆαααΎααααΈα’αΆα ααΆαααααααα·ααααα·ααΆαααΆααα’αααα αααα»ααααα½ααα½α α αΎααα»αααααα·ααααα·ααΆααααααα½ααα ααΎαααΆαααααΆααΆαααααΎαααααΈααααααΆ ααα»ααααααΆααΊαααΆαααααααααααΈααΆααααΌαα
αα αααααααΎαααααααΆα NodeJS αααααΆααα Redis αααααα ααΆαααΌαααααα·ααααα·ααΆα 18k αααα»ααα½ααα·ααΆααΈα ααααΏαααααΆααα α»α α© ααα
α αΆααααΆααααΈααααααααααααα αΆαααΎαααΈααααααΆαααΊα αααΆααααΆα 5 αα ααΎαααΆαα αΆααααααΎααααααΎαααααα·αααααΆαα ααΎαααΆαααααΆααααααΌααααααΆααααα ααΆ ioredis α αΎαααα½αααΆαααααΎαααΆα 25k αααα»ααα½ααα·ααΆααΈα ααΎαααΆαααααααααααα·ααααα·ααΆααααααα½αααααααααΎααΆααααααααΆ 'hset' α ααΌα αααα ααΎαβαααα»αβαααααΎαβαααα½αβααΆβα αααΎαβαα βαααα»α Redisα αααα·ααααααΆααααααΎαα‘αΎαααΎααααΈαααα αΌαααααΆααΌαααααα·ααααα·ααΆααα ααΆααααα»α α αΎαααααΎααΆαααααααΎααΆααααααααΆαα½α 'hmset' α ααααααααΊ 32k αααα»ααα½ααα·ααΆααΈα
αααααΆααα ααα»αααα½αα ααα½α αααααΎαααΉααααααΆααααΆαααααα ααΎαααααΎααΆαααΆαα½ααα·αααααααααααααΎ `Buffer` α αΎαααΌα αααααΆααααααΆ ααααα·αααΎα’ααααααααααααΆαα ααΆα’ααααα (`buffer.toString('hex')`) αα»ααααααααα α’αααα’αΆα ααα½αααΆααααααα ααΆαααααααα ααΌα ααααααααΏαααααΌαααΆαααΎαα‘αΎαααα 35k αααα»ααα½ααα·ααΆααΈα αα αααααα ααΎαααΆααααααα α α·αααααα’αΆαααΆααααααΎαααααα·αααααΆααααααααααα
ααΎαααααΌαααααΌααα αα·ααΈααΆααααααααααααααΈα αααααΆαα
1. αααααααααααα αααΎαααααααΆαααααΆ α αααααααΆ ααΆααΎαα α αΎααααααΆααααΆ ααΆααααΌαααΆααα·αααααααα αααα»α `buffer α
2. αα αααααααΎαααΆαααααΆαααα αα·αααααααααααΈαααΆααααααααα·α ααΆαα’αααααα α§ααΆα ααα αα αααααααΎαααα»ααααααΆαααααα·ααααα·ααΆα 1 ααΆα αα·αααααααααα»αα’αααααα’αΆα ααααΎαααΈ 300 ααααΆααα
3. ααΆαααααΆααααααΌααα·ααααααα₯αααααααααααΆαααααααααΎαααΆαα
ααΌα ααααα αΎα ααΎαααΆαααααΆααΌαααααΆααααα·ααΈααΆααααααααααααααΈαααααΆαααααα½αααααααΎααααααΆααααΆααααααΆαα»α αα·ααααααΌααα·αααααα αααααααΌαααΆααααααΎαα‘αΎααα ααΎααΌαααααΆααααααααΆααα "αα·αααααααααααΈα" ααα’ααα αΆαααα
ααΆαααααα ααΎαααα½αααΆααα ααΆαααααααααα·ααααααααΌα ααΆααααααα
-ααααα·ααααα·ααΆα
```json
{
prevHash: BD.types.buffer(20),
prevBlock: BD.types.uint24le,
tokenId: BD.types.string(null),
type: BD.types.uint8,
newOwner: BD.types.buffer(20),
dataLength: BD.types.uint24le,
data: BD.types.buffer(({current}) => current.dataLength),
signature: BD.types.buffer(65),
hash: BD.types.buffer(32),
blockNumber: BD.types.uint24le,
timestamp: BD.types.uint48le,
}
```
- αα·αα·ααααααααΆ
```json
{
id: BD.types.string(null),
owner: BD.types.buffer(20),
block: BD.types.uint24le,
amount: BD.types.string(null),
}
```
- αααα»α
```json
{
number: BD.types.uint24le,
merkleRootHash: BD.types.buffer(32),
signature: BD.types.buffer(65),
countTx: BD.types.uint24le,
transactions: BD.types.array(Transaction.Protocol, ({current}) => current.countTx),
timestamp: BD.types.uint48le,
}
```
ααΆαα½αααΉαααΆααααααααΆααααααΆ `BD.encode(block, Protocol).slice();` αα·α `BD.decode(buffer, Protocol)` ααΎαααααααααα·αααααααα ααΆ `buffer` αααααΆαααααααΆαα»ααααα»α Redis α¬αααααΌααααααα ααΆαα node αααααααα αα·αααΆααα αα·αααααααααα‘αααααα·αα
ααΎαααααΆααα·ααΈααΆααααααααααααααΈααααααΆααααααααα·αααααααααΆαααααΆααααα
- αα·ααΈααΆααααααΆααα’ααααααααααΆαα½αααααΆααααααΆααααΆααΆααααααααααΌααΈα
```json
{
type: BD.types.uint8,
messageId: BD.types.uint24le,
error: BD.types.uint8,
length: BD.types.uint24le,
payload: BD.types.buffer(({node}) => node.length)
}
```
αααααΆαααααα:
- `αααααα` - αααααααΆααααααααΌαα’αα»αααα α§ααΆα ααα 1 β sendTransaction 2 β getTransaction;
- `ααααα»α` - αα·αααααααααααααΌααααααΌααα ααΆαααα»αααΆαααααααα
- `messageId` - ααααααααΆααααΆαααΎααααΈα±ααααΆαααααΎαααα’αΆα ααααΌαααΆααααααα’ααααααααΆαα
- αα·ααΈααΆααααααΆααα’αααααααααααΆαααααΆαα
```json
{
code: BD.types.uint8,
versionProtocol: BD.types.uint24le,
seq: BD.types.uint8,
countChunk: BD.types.uint24le,
chunkNumber: BD.types.uint24le,
length: BD.types.uint24le,
payload: BD.types.buffer(({node}) => node.length)
}
```
αααααΆαααααα:
- `αααααΌα` β αααααΌαααΆα α§ααΆα ααα 6 β PREPARE_NEW_BLOCK, 7 β BLOCK_VALID, 8 β BLOCK_COMMIT;
- `αααααα·ααΈααΆα` - αααααα·ααΈααΆα α αΆααααΆααααΈααααΆαααααααΆαααααααααααααααΆα’αΆα ααααΌαααΆαααΎαα‘αΎααα ααΎαααααΆα α αΎααα½αααΆα’αΆα ααααΎααΆααα»αααααΆα
- `seq` - ααΆααααααα’ααααααααΆαααΆα;
- `ααΆααααααΆαα` ΠΈ `αααααααΆαα` α αΆαααΆα ααααααΆαααααααααΆααα;
- `αααααα` ΠΈ `ααααα»α` αααααααα·ααα·αααααααααα½αα―αα
αααααΆαααΎαααΆααααα αΌααα·ααααααααΆαα»α ααααααααα α»ααααααααΊααΏαααΆααααααΆααα 'rlp' αααα Ethereum α ααΆα’αα»αα ααΎααα·αααΆααα’αΆα ααα·αααααΆααα αααααΆαα αΆαααΆα αααααΌααααα αααα·α αα αααααΆααααΆααα αααααΎααααααααΉαααααΎααΆαααααΆααα»αα
ααααα·αααΎααΎαα’αΆα ααΆααααααααΏα 35 ααααΌαααΈ 000th ααααα·ααααα·ααΆααααα»ααα½ααα·ααΆααΈ ααΎαααααααΌαααααΎαααΆααα½αααΆαααα»ααααααααΆααααα’αααααΎααααααα αααααΆααααααααΆαααααΎααααα»ααααα αΆαααααα ααα αααΆαααα 30 αα·ααΆααΈ ααΎαααααΌααααα αΌααααα»ααααα»α 1 000 000 ααααα·ααααα·ααΆα αααααΆααααααΆ ααααΎααααααααα 100 MB ααβαα·αααααα
ααααΌαα‘αΎα ααΎαααΆαααααΎαααααΆααα 'ethereumjs-devp2p' ααΎααααΈααααΆαααααααααΆαααααΆαα ααα»ααααααΆαα·αα’αΆα ααααααααααα·ααααααααΆαα αααΎααααααα ααΆαααααα ααΎαααΆαααααΎαααααΆααα `ws` αα·αααααααα ααΆααααααααααΆαααααΎαα·αααααααααααΈαααΆαααα websocket α ααΆααΆααα·αααΆαα ααΎααααα½αααααααααα αΆαα αααααααΎαααα αααα·αααααααα ααα»ααααααΎαααΆααααα ααααΆαα ααΆααααΆαα α αΎαα₯α‘αΌαααααααα αΆααΆαααααααΆαααΆαααα α αΎαα
αααααααΎααααααΆα Merkle αα·αααααΆαααααΆ 1 000 000 ααααα·ααααα·ααΆαααΆαααΆαα’αααΈ 10 αα·ααΆααΈααααΆαααααΆααΆαααααααααΆααα αααα»αα’αα‘α»ααααααα ααΆααααααΆααααΆαα½αααααΆααααΆααα’ααα’αΆα αααααααΆαα ααΆααααΌαααΆααααααα α α·αααααααΆααααΈααΆαααααΆααααα αααααααα‘αΆαααΆα ααααα‘ααα
ααα ααααΈααααα·ααααΆα:
ααΆααΆααα·α ααΆαααααΎαααααααΎααα·ααααααΆααΏαααααΈαα ααα»αααααααααΆααα ααα»αααα½αα ααα½α α’αααααααΆαααΆα αααΎαααααα α’αααΈαα½ααααα ααααααα»αα’αα·ααααα
- ααΆαααααΎααααΆαααααααα·ααΈ Functional Programming αααα½αα±αα Object-Oriented Programming αα½ααααααΎαααα·αααΆαα
- monolith ααΊα’αΆαααααααΆαααααΆααααααααααααΆαααααααααΆαααααααααα NodeJS αααααΆαααα·αααΆαα
- ααΆαααααΎααααΆαα 'worker_threads' αααααΆααααΆαααααΆαααααααααΎα’αααααααΎαα‘αΎαααΌαααΆαααααΎααααααααααααααα ααΆαα·ααααα ααααααααααΆαααΆαα½αααααα·ααααα·ααΆα i/o α
- αααα unix ααΆααααααααΆα αα·αααΏαααΆαααααΎ http α
- ααααα·αααΎα’αααααααΌαααΆαααααααα·ααααααααααΆααααααΆααααΆαααΏα ααΆααΆααΆααααααΎααααα»αααΆαααααΎααααΆαα websockets αα·ααααααΌααα·αααααααααααΈα ααααααα ααααΆααααΆαα αααα’αΆα ααααΌαααΆααααααΌαααααααααα·αααΎαα½ααααα·αααααα α αΎααααααΆαααααααα αΌαααααΆααΆααΆααααα½αα
ααΎαααΌαα’ααααΎαα’αααα±ααααααααααΆ GitHub ααααααα
α’ααααααααααααΌαααΆααα αα·ααααααα α’αΆα‘α·α
ααΆααααΊ ααΆαααΈαααΆαα, α’αααα’αα·ααααααααΆααααααα
ααααα: www.habr.com