๊ณต๊ฐœ ํ…Œ์ŠคํŠธ: ์ด๋”๋ฆฌ์›€์˜ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ๋ฐ ํ™•์žฅ์„ฑ์„ ์œ„ํ•œ ์†”๋ฃจ์…˜

๋ธ”๋ก ์ฒด์ธ ์ธ๊ฐ„ ์‚ถ์˜ ๋งŽ์€ ์˜์—ญ์„ ๊ฐœ์„ ํ•  ๊ฒƒ์„ ์•ฝ์†ํ•˜๋Š” ํ˜์‹ ์ ์ธ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ํ”„๋กœ์„ธ์Šค์™€ ์ œํ’ˆ์„ ๋””์ง€ํ„ธ ๊ณต๊ฐ„์œผ๋กœ ์ „์†กํ•˜๊ณ , ๊ธˆ์œต ๊ฑฐ๋ž˜์˜ ์†๋„์™€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๋ฉฐ, ๋ถ„์‚ฐ ๋„คํŠธ์›Œํฌ์—์„œ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„๋Œ€์ ์ธ DAPP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ธ”๋ก์ฒด์ธ์˜ ๋งŽ์€ ์ด์ ๊ณผ ๋‹ค์–‘ํ•œ ์ ์šฉ์„ ๊ณ ๋ คํ•  ๋•Œ, ์ด ์œ ๋งํ•œ ๊ธฐ์ˆ ์ด ์•„์ง ๋ชจ๋“  ์‚ฐ์—…์— ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์ด ๋†€๋ž๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ํ˜„๋Œ€์˜ ๋ถ„์‚ฐํ˜• ๋ธ”๋ก์ฒด์ธ์—๋Š” ํ™•์žฅ์„ฑ์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋”๋ฆฌ์›€์€ ์ดˆ๋‹น ์•ฝ 20๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์ด๋Š” ์˜ค๋Š˜๋‚ ์˜ ์—ญ๋™์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ์—๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๋ธ”๋ก์ฒด์ธ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์—…์€ ํ•ดํ‚น ๋ฐ ๋„คํŠธ์›Œํฌ ์žฅ์• ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ ์ˆ˜์ค€์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ์ด๋”๋ฆฌ์›€์„ ํฌ๊ธฐํ•˜๋Š” ๊ฒƒ์„ ์ฃผ์ €ํ•ฉ๋‹ˆ๋‹ค.

๋ธ”๋ก์ฒด์ธ์˜ ๋ถ„์‚ฐํ™”, ๋ณด์•ˆ ๋ฐ ํ™•์žฅ์„ฑ์„ ๋ณด์žฅํ•˜์—ฌ ํ™•์žฅ์„ฑ ํŠธ๋ฆด๋ ˆ๋งˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœํŒ€ Opporty ์Šค๋งˆํŠธ ๊ณ„์•ฝ๊ณผ Node.js ๊ธฐ๋ฐ˜ ํ”„๋ผ์ด๋น— ๋„คํŠธ์›Œํฌ๋กœ ๊ตฌ์„ฑ๋œ ๋ณด์กฐ ์ฒด์ธ์ธ Plasma Cash๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฒด์ธ์€ ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ๋ฃจํŠธ ์ฒด์ธ(Ethereum)์œผ๋กœ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

๊ณต๊ฐœ ํ…Œ์ŠคํŠธ: ์ด๋”๋ฆฌ์›€์˜ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ๋ฐ ํ™•์žฅ์„ฑ์„ ์œ„ํ•œ ์†”๋ฃจ์…˜

ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ์˜ ์ฃผ์š” ํ”„๋กœ์„ธ์Šค

1. ์‚ฌ์šฉ์ž๋Š” ์Šค๋งˆํŠธ ๊ณ„์•ฝ ๊ธฐ๋Šฅ '์˜ˆ๊ธˆ'์„ ํ˜ธ์ถœํ•˜์—ฌ ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ํ† ํฐ์— ์ž…๊ธˆํ•˜๋ ค๋Š” ETH ๊ธˆ์•ก์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์Šค๋งˆํŠธ ๊ณ„์•ฝ ๊ธฐ๋Šฅ์€ ํ† ํฐ์„ ์ƒ์„ฑํ•˜๊ณ  ์ด์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

2. ์Šค๋งˆํŠธ ๊ณ„์•ฝ ์ด๋ฒคํŠธ์— ๊ฐ€์ž…ํ•œ ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ๋…ธ๋“œ๋Š” ์˜ˆ๊ธˆ ์ƒ์„ฑ์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ํ† ํฐ ์ƒ์„ฑ์— ๋Œ€ํ•œ ํŠธ๋žœ์žญ์…˜์„ ํ’€์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

3. ์ฃผ๊ธฐ์ ์œผ๋กœ ํŠน์ˆ˜ ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ๋…ธ๋“œ๋Š” ํ’€์—์„œ ๋ชจ๋“  ๊ฑฐ๋ž˜(์ตœ๋Œ€ 1๋งŒ ๊ฐœ)๋ฅผ ๊ฐ€์ ธ์™€ ๋ธ”๋ก์„ ํ˜•์„ฑํ•˜๊ณ  ๋จธํด ํŠธ๋ฆฌ์™€ ๊ทธ์— ๋”ฐ๋ฅธ ํ•ด์‹œ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ธ”๋ก์€ ๊ฒ€์ฆ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ๋Š” Merkle ํ•ด์‹œ๊ฐ€ ์œ ํšจํ•œ์ง€, ๊ฑฐ๋ž˜๊ฐ€ ์œ ํšจํ•œ์ง€(์˜ˆ: ํ† ํฐ ๋ณด๋‚ธ ์‚ฌ๋žŒ์ด ์†Œ์œ ์ž์ธ์ง€ ์—ฌ๋ถ€) ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ธ”๋ก์„ ํ™•์ธํ•œ ํ›„ ๋…ธ๋“œ๋Š” ์Šค๋งˆํŠธ ๊ณ„์•ฝ์˜ 'submitBlock' ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•˜์—ฌ ๋ธ”๋ก ๋ฒˆํ˜ธ์™€ Merkle ํ•ด์‹œ๋ฅผ ์—ฃ์ง€ ์ฒด์ธ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์Šค๋งˆํŠธ ๊ณ„์•ฝ์€ ๋ธ”๋ก ์ถ”๊ฐ€์— ์„ฑ๊ณตํ–ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์ด ํ’€์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

4. ๋ธ”๋ก ์ œ์ถœ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•œ ๋…ธ๋“œ๋Š” ๋ธ”๋ก์— ์ถ”๊ฐ€๋œ ํŠธ๋žœ์žญ์…˜์„ ์ ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

5. ์–ด๋Š ์‹œ์ ์—์„œ ํ† ํฐ์˜ ์†Œ์œ ์ž(๋˜๋Š” ๋น„์†Œ์œ ์ž)๊ฐ€ ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ์—์„œ ํ† ํฐ์„ ์ธ์ถœํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ทธ๋Š” `startExit` ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ† ํฐ์˜ ๋งˆ์ง€๋ง‰ 2๊ฐœ ๊ฑฐ๋ž˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ž์‹ ์ด ํ† ํฐ ์†Œ์œ ์ž์ž„์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Merkle ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์Šค๋งˆํŠธ ๊ณ„์•ฝ์€ ๋ธ”๋ก์— ํŠธ๋žœ์žญ์…˜์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  XNUMX์ฃผ ํ›„์— ์ถœ๊ธˆ์„ ์œ„ํ•ด ํ† ํฐ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

6. ํ† ํฐ ์ถœ๊ธˆ ์ž‘์—…์ด ์œ„๋ฐ˜์œผ๋กœ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ(์ถœ๊ธˆ ์ ˆ์ฐจ๊ฐ€ ์‹œ์ž‘๋œ ํ›„ ํ† ํฐ์ด ์‚ฌ์šฉ๋˜์—ˆ๊ฑฐ๋‚˜ ์ถœ๊ธˆ ์ „์— ์ด๋ฏธ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ† ํฐ์ด์—ˆ๋˜ ๊ฒฝ์šฐ), ํ† ํฐ ์†Œ์œ ์ž๋Š” XNUMX์ฃผ ์ด๋‚ด์— ์ถœ๊ธˆ์„ ๋ฐ˜๋ฐ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฐœ ํ…Œ์ŠคํŠธ: ์ด๋”๋ฆฌ์›€์˜ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ๋ฐ ํ™•์žฅ์„ฑ์„ ์œ„ํ•œ ์†”๋ฃจ์…˜

๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

1. ๋ฃจํŠธ ์ฒด์ธ์€ ํ•˜์œ„ ์ฒด์ธ ๋‚ด์—์„œ ์ƒ์„ฑ๋˜๊ณ  ์ „๋‹ฌ๋˜๋Š” ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ์— ETH๋ฅผ ์ž…๊ธˆํ•˜๊ณ  ์ธ์ถœํ•œ ์‚ฌ๋žŒ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๊ณต๊ฐœ๋ฉ๋‹ˆ๋‹ค.

2. ํ•˜์œ„ ์ฒด์ธ์€ zk-SNARK๋ฅผ ์‚ฌ์šฉํ•œ ์ต๋ช… ๊ฑฐ๋ž˜๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์ˆ  ์Šคํƒ

  • NodeJS
  • Redis
  • ์—๋œจ ๋ฆฌ์›€
  • ํ† ์–‘

ํ…Œ์ŠคํŠธ

ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์‹œ์Šคํ…œ ์†๋„๋ฅผ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์ดˆ๋‹น ์ตœ๋Œ€ 35๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ํ’€์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
  • ์ตœ๋Œ€ 1๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๋ธ”๋ก์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋Š” ๋‹ค์Œ 3๊ฐœ ์„œ๋ฒ„์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1. Intel Core i7-6700 ์ฟผ๋“œ ์ฝ”์–ด Skylake ํฌํ•จ NVMe SSD โ€“ 512GB, 64GB DDR4 RAM
3๊ฐœ์˜ ๊ฒ€์ฆ ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ๋…ธ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2. AMD Ryzen 7 1700X ์˜ฅํƒ€ ์ฝ”์–ด โ€œSummit Ridgeโ€(Zen), SATA SSD โ€“ 500GB, 64GB DDR4 RAM
Ropsten ํ…Œ์ŠคํŠธ๋„ท ETH ๋…ธ๋“œ๊ฐ€ ์ƒ์Šนํ–ˆ์Šต๋‹ˆ๋‹ค.
3๊ฐœ์˜ ๊ฒ€์ฆ ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ๋…ธ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

3. Intel Core i9-9900K Octa-Core ํฌํ•จ. NVMe SSD โ€“ 1TB, 64GB DDR4 RAM
ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ์ œ์ถœ ๋…ธ๋“œ 1๊ฐœ๋ฅผ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค.
3๊ฐœ์˜ ๊ฒ€์ฆ ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ๋…ธ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ๋„คํŠธ์›Œํฌ์— ๊ฑฐ๋ž˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ณ„ : ๊ฐœ์ธ ๋„คํŠธ์›Œํฌ์— 10๊ฐœ์˜ ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ๋…ธ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ 1

๋ธ”๋ก๋‹น ๊ฑฐ๋ž˜ ํ•œ๋„๋Š” 1๋งŒ ๊ฐœ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1๋งŒ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด 2๊ฐœ์˜ ๋ธ”๋ก์œผ๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค(์‹œ์Šคํ…œ์ด ํŠธ๋žœ์žญ์…˜์˜ ์ผ๋ถ€๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์ด ์ „์†ก๋˜๋Š” ๋™์•ˆ ์ œ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์—).


์ดˆ๊ธฐ ์ƒํƒœ: ๋งˆ์ง€๋ง‰ ๋ธ”๋ก #7; 1๋ฐฑ๋งŒ ๊ฐœ์˜ ๊ฑฐ๋ž˜์™€ ํ† ํฐ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

00:00 โ€” ํŠธ๋žœ์žญ์…˜ ์ƒ์„ฑ ์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘
01:37 - 1๋งŒ ๊ฑด์˜ ํŠธ๋žœ์žญ์…˜์ด ์ƒ์„ฑ๋˜๊ณ  ๋…ธ๋“œ๋กœ ์ „์†ก์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
01:46 โ€” ์ œ์ถœ ๋…ธ๋“œ๋Š” ํ’€์—์„œ 240๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ ๋ธ”๋ก #8์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ 320์ดˆ ์•ˆ์— 10๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ํ’€์— ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
01:58 โ€” ๋ธ”๋ก #8์ด ์„œ๋ช…๋˜๊ณ  ๊ฒ€์ฆ์„ ์œ„ํ•ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
02:03 โ€” ๋ธ”๋ก #8์ด ๊ฒ€์ฆ๋˜๊ณ  ์Šค๋งˆํŠธ ๊ณ„์•ฝ์˜ 'submitBlock' ๊ธฐ๋Šฅ์ด Merkle ํ•ด์‹œ ๋ฐ ๋ธ”๋ก ๋ฒˆํ˜ธ๋กœ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
02:10 โ€” ๋ฐ๋ชจ ์Šคํฌ๋ฆฝํŠธ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์–ด 1์ดˆ ๋งŒ์— 32๋งŒ ๊ฑด์˜ ๊ฑฐ๋ž˜๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
02:33 - ๋…ธ๋“œ๋Š” ๋ธ”๋ก #8์ด ๋ฃจํŠธ ์ฒด์ธ์— ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋Š” ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ 240๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
02:40 - ์ด๋ฏธ ๋ธ”๋ก #240์— ์žˆ๋Š” 8๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ํ’€์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
02:56 โ€” ์ œ์ถœ ๋…ธ๋“œ๋Š” ํ’€์—์„œ ๋‚˜๋จธ์ง€ 760๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ Merkle ํ•ด์‹œ ๊ณ„์‚ฐ ๋ฐ ์„œ๋ช… ๋ธ”๋ก #9๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
03:20 - ๋ชจ๋“  ๋…ธ๋“œ์—๋Š” 1๋งŒ ๊ฐœ์˜ 240๊ฐœ ํŠธ๋žœ์žญ์…˜๊ณผ ํ† ํฐ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
03:35 โ€” ๋ธ”๋ก #9๊ฐ€ ์„œ๋ช…๋˜์–ด ๊ฒ€์ฆ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
03:41 - ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
04:40 โ€” ๋ธ”๋ก #9 ๊ฒ€์ฆ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
04:54 โ€” ์ œ์ถœ ๋…ธ๋“œ๋Š” ํ’€์—์„œ ๋‚˜๋จธ์ง€ 760๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ Merkle ํ•ด์‹œ ๊ณ„์‚ฐ ๋ฐ ์„œ๋ช… ๋ธ”๋ก #9๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
05:32 โ€” ๋ธ”๋ก #9๊ฐ€ ์„œ๋ช…๋˜์–ด ๊ฒ€์ฆ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
05:53 โ€” ๋ธ”๋ก #9๊ฐ€ ๊ฒ€์ฆ๋˜์–ด ๋ฃจํŠธ ์ฒด์ธ์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
06:17 - ๋…ธ๋“œ๋Š” ๋ธ”๋ก #9๊ฐ€ ๋ฃจํŠธ ์ฒด์ธ์— ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋Š” ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ 760๊ฑด์˜ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
06:47 โ€” ํ’€์—์„œ ๋ธ”๋ก #9์— ์žˆ๋Š” ํŠธ๋žœ์žญ์…˜์ด ์ง€์›Œ์กŒ์Šต๋‹ˆ๋‹ค.
09:06 - ๋ชจ๋“  ๋…ธ๋“œ์—๋Š” 2๋ฐฑ๋งŒ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜๊ณผ ํ† ํฐ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ 2

๋ธ”๋ก๋‹น 350๊ฐœ์˜ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ 3๊ฐœ์˜ ๋ธ”๋ก์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.


์ดˆ๊ธฐ ์ƒํƒœ: ๋งˆ์ง€๋ง‰ ๋ธ”๋ก #9; 2๋ฐฑ๋งŒ ๊ฐœ์˜ ๊ฑฐ๋ž˜์™€ ํ† ํฐ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

00:00 โ€” ํŠธ๋žœ์žญ์…˜ ์ƒ์„ฑ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ด๋ฏธ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
00:44 - 1๋งŒ ๊ฑด์˜ ํŠธ๋žœ์žญ์…˜์ด ์ƒ์„ฑ๋˜๊ณ  ๋…ธ๋“œ๋กœ ์ „์†ก์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
00:56 โ€” ์ œ์ถœ ๋…ธ๋“œ๋Š” ํ’€์—์„œ 320๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ ๋ธ”๋ก #10์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ 320์ดˆ ์•ˆ์— 10๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ํ’€์— ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
01:12 โ€” ๋ธ”๋ก #10์ด ์„œ๋ช…๋˜์–ด ๊ฒ€์ฆ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
01:18 โ€” ๋ฐ๋ชจ ์Šคํฌ๋ฆฝํŠธ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์–ด 1์ดˆ ๋งŒ์— 34๋งŒ ๊ฑด์˜ ๊ฑฐ๋ž˜๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
01:20 โ€” ๋ธ”๋ก #10์ด ๊ฒ€์ฆ๋˜์–ด ๋ฃจํŠธ ์ฒด์ธ์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
01:51 - ๋ชจ๋“  ๋…ธ๋“œ๋Š” ๋ฃจํŠธ ์ฒด์ธ์œผ๋กœ๋ถ€ํ„ฐ ๋ธ”๋ก #10์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋Š” ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  320๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ์ ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
02:01 - ๋ธ”๋ก #320์— ์ถ”๊ฐ€๋œ 10๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ํ’€์ด ์ง€์›Œ์กŒ์Šต๋‹ˆ๋‹ค.
02:15 โ€” ์ œ์ถœ ๋…ธ๋“œ๊ฐ€ ํ’€์—์„œ 350๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ ๋ธ”๋ก #11์„ ํ˜•์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
02:34 โ€” ๋ธ”๋ก #11์ด ์„œ๋ช…๋˜์–ด ๊ฒ€์ฆ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
02:51 โ€” ๋ธ”๋ก #11์ด ๊ฒ€์ฆ๋˜์–ด ๋ฃจํŠธ ์ฒด์ธ์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
02:55 โ€” ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๊ฐ€ ๋ธ”๋ก #10์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
10:59 โ€” ๋ธ”๋ก #9 ์ œ์ถœ์— ๋Œ€ํ•œ ํŠธ๋žœ์žญ์…˜์€ ๋ฃจํŠธ ์ฒด์ธ์—์„œ ๋งค์šฐ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์ง€๋งŒ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉฐ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ›๊ณ  350๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
11:05 - ๋ธ”๋ก #320์— ์ถ”๊ฐ€๋œ 11๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ํ’€์ด ์ง€์›Œ์กŒ์Šต๋‹ˆ๋‹ค.
12:10 - ๋ชจ๋“  ๋…ธ๋“œ์—๋Š” 1๋ฐฑ๋งŒ ๊ฐœ์˜ 670๊ฐœ ํŠธ๋žœ์žญ์…˜๊ณผ ํ† ํฐ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
12:17 โ€” ์ œ์ถœ ๋…ธ๋“œ๊ฐ€ ํ’€์—์„œ 330๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ ๋ธ”๋ก #12๋ฅผ ํ˜•์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
12:32 โ€” ๋ธ”๋ก #12์ด ์„œ๋ช…๋˜์–ด ๊ฒ€์ฆ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
12:39 โ€” ๋ธ”๋ก #12์ด ๊ฒ€์ฆ๋˜์–ด ๋ฃจํŠธ ์ฒด์ธ์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
13:44 - ๋ชจ๋“  ๋…ธ๋“œ๋Š” ๋ฃจํŠธ ์ฒด์ธ์œผ๋กœ๋ถ€ํ„ฐ ๋ธ”๋ก #12๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋Š” ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  330๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ์ ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
14:50 - ๋ชจ๋“  ๋…ธ๋“œ์—๋Š” 2๋ฐฑ๋งŒ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜๊ณผ ํ† ํฐ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ 3

์ฒซ ๋ฒˆ์งธ์™€ ๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„์—์„œ๋Š” ํ•˜๋‚˜์˜ ๊ฒ€์ฆ ๋…ธ๋“œ๊ฐ€ ์ œ์ถœ ๋…ธ๋“œ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


์ดˆ๊ธฐ ์ƒํƒœ: ๋งˆ์ง€๋ง‰ ๋ธ”๋ก #84; ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ํŠธ๋žœ์žญ์…˜ ๋ฐ ํ† ํฐ 0๊ฐœ

00:00 โ€” ๊ฐ๊ฐ 3๋งŒ ๊ฑด์˜ ๊ฑฐ๋ž˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ณด๋‚ด๋Š” 1๊ฐœ์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
01:38 โ€” 1๋ฐฑ๋งŒ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ œ์ถœ ๋…ธ๋“œ #3์œผ๋กœ ์ „์†ก์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
01:50 โ€” ์ œ์ถœ ๋…ธ๋“œ #3์ด ํ’€์—์„œ 330๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ ๋ธ”๋ก #85(f21)๋ฅผ ํ˜•์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ 350์ดˆ ๋งŒ์— 10๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ํ’€์— ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
01:53 โ€” 1๋ฐฑ๋งŒ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ œ์ถœ ๋…ธ๋“œ #1์œผ๋กœ ์ „์†ก์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
01:50 โ€” ์ œ์ถœ ๋…ธ๋“œ #3์ด ํ’€์—์„œ 330๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ ๋ธ”๋ก #85(f21)๋ฅผ ํ˜•์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ 350์ดˆ ๋งŒ์— 10๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ํ’€์— ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
02:01 โ€” ์ œ์ถœ ๋…ธ๋“œ #1์ด ํ’€์—์„œ 250๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ ๋ธ”๋ก #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 โ€” ์„œ๋ฒ„ #2 ์Šคํฌ๋ฆฝํŠธ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์–ด 1์ดˆ ๋งŒ์— 47๋งŒ ๊ฑด์˜ ํŠธ๋žœ์žญ์…˜์ด ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
03:38 - ๋ชจ๋“  ๋…ธ๋“œ๋Š” ๋ฃจํŠธ์ฒด์ธ์œผ๋กœ๋ถ€ํ„ฐ ๋ธ”๋ก #85(f21), #86(65e), #87(256)์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋Š” ์ •๋ณด๋ฅผ ๋ฐ›์•„ 330k, 250k, 111855 ํŠธ๋žœ์žญ์…˜์„ ์ ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
03:49 - ๋ธ”๋ก #330(f250), #111855(85e), #21(86)์— ์ถ”๊ฐ€๋œ 65k, 87k, 256๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์—์„œ ํ’€์ด ์ง€์›Œ์กŒ์Šต๋‹ˆ๋‹ค.
03:59 โ€” ์ œ์ถœ ๋…ธ๋“œ #1์€ ํ’€์—์„œ 888145๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ ๋ธ”๋ก #88(214)์„ ํ˜•์„ฑํ•˜๊ณ , ์ œ์ถœ ๋…ธ๋“œ #2๋Š” ํ’€์—์„œ 750๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™€ ๋ธ”๋ก #88(50a)์„ ํ˜•์„ฑํ–ˆ์œผ๋ฉฐ, ์ œ์ถœ ๋…ธ๋“œ #3์€ ํ’€์—์„œ 670๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ํ’€ ๋ฐ ์–‘์‹ ๋ธ”๋ก #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๋งŒ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜๊ณผ ํ† ํฐ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ์• ๋ฌผ

ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋™์•ˆ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์œผ๋ฉฐ, ์ด๋ฅผ ์ ์ฐจ ํ•ด๊ฒฐํ•˜๊ณ  ํ•ด๊ฒฐ ์ค‘์ž…๋‹ˆ๋‹ค.

1. ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ์˜ ์ƒํ˜ธ ์ž‘์šฉ์— ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ’€์— ํŠธ๋žœ์žญ์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋ธ”๋ก ์ œ์ถœ ๋ฐ ๊ฒ€์ฆ ์ž‘์—…์„ ์ฐจ๋‹จํ–ˆ๊ณ , ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์˜€๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ์ €ํ•˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ ์ „์†ก ๋น„์šฉ์„ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ์—„์ฒญ๋‚œ ์ˆ˜์˜ ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ ์ฆ‰์‹œ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

3. ๋†’์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””์— ์–ด๋–ป๊ฒŒ ์ €์žฅํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

4. 1๋งŒ ๊ฑด์˜ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ธ”๋ก์˜ ํฌ๊ธฐ๊ฐ€ ์•ฝ 100MB๋ฅผ ์ฐจ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋…ธ๋“œ ๊ฐ„ ๋„คํŠธ์›Œํฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ• ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

5. ๋‹จ์ผ ์Šค๋ ˆ๋“œ ๋ชจ๋“œ์—์„œ ์ž‘์—…ํ•˜๋ฉด ๊ธด ๊ณ„์‚ฐ์ด ๋ฐœ์ƒํ•  ๋•Œ(์˜ˆ: Merkle ํŠธ๋ฆฌ ๊ตฌ์ถ• ๋ฐ ํ•ด๋‹น ํ•ด์‹œ ๊ณ„์‚ฐ) ๋…ธ๋“œ ๊ฐ„์˜ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง‘๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๊นŒ?

ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ๋…ธ๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์€ ํŠธ๋žœ์žญ์…˜ ์ˆ˜๋ฝ, ๋ธ”๋ก ์ œ์ถœ ๋ฐ ๊ฒ€์ฆ, ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ API ์ œ๊ณต ๋“ฑ ๋ชจ๋“  ์ž‘์—…์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ข…์˜ ๊ฒฐํ•ฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. NodeJS๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ ์Šค๋ ˆ๋“œ์ด๋ฏ€๋กœ ๋ฌด๊ฑฐ์šด Merkle ํŠธ๋ฆฌ ๊ณ„์‚ฐ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ํŠธ๋žœ์žญ์…˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ์ฐจ๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

1. ๊ฐ๊ฐ ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฌ๋Ÿฌ NodeJS ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

2. Worker_threads๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ฝ”๋“œ ์ผ๋ถ€ ์‹คํ–‰์„ ์Šค๋ ˆ๋“œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋‘ ์˜ต์…˜์„ ๋™์‹œ์— ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” 3๊ฐœ์˜ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์ง€๋งŒ ๋™์‹œ์— ๋™๊ธฐ์ ์œผ๋กœ

1. ํ’€์— ํŠธ๋žœ์žญ์…˜์„ ๋ฐ›์•„๋“ค์ด๊ณ  ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜๋Š” ์ œ์ถœ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.

2. ๋…ธ๋“œ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒ€์ฆ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.

3. API ๋…ธ๋“œ - ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ cli๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Unix ์†Œ์ผ“์„ ํ†ตํ•ด ๊ฐ ๋…ธ๋“œ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋จธํด ํŠธ๋ฆฌ ๊ณ„์‚ฐ๊ณผ ๊ฐ™์€ ๋ฌด๊ฑฐ์šด ์ž‘์—…์„ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค.

์ด๋กœ์จ ๋ชจ๋“  ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ ๊ธฐ๋Šฅ์ด ๋™์‹œ์— ์žฅ์•  ์—†์ด ์ •์ƒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์ด ์ž‘๋™ํ•˜์ž ์šฐ๋ฆฌ๋Š” ์†๋„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ์ดˆ๋‹น 5๊ฑด์˜ ํŠธ๋žœ์žญ์…˜๊ณผ ๋ธ”๋ก๋‹น ์ตœ๋Œ€ 000๊ฑด์˜ ํŠธ๋žœ์žญ์…˜์ด๋ผ๋Š” ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์ด ์ž˜๋ชป ๊ตฌํ˜„๋˜์—ˆ๋Š”์ง€ ์•Œ์•„๋‚ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ์„ , ์‹œ์Šคํ…œ์˜ ์ตœ๋Œ€ ์„ฑ๋Šฅ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ํ”Œ๋ผ์ฆˆ๋งˆ ์บ์‹œ์™€์˜ ํ†ต์‹  ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด์ „์— Plasma Cash ๋…ธ๋“œ๊ฐ€ ์œ ๋‹‰์Šค ์†Œ์ผ“ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์ผ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. 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๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ  80๊ฐœ์˜ ํŒŒ์ดํ”„๋ผ์ด๋‹ ๋ชจ๋“œ์—์„œ ์ดˆ๋‹น ์ตœ๋Œ€ 1๊ฐœ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณ ์„ฑ๋Šฅ์„ ์œ„ํ•ด Redis๋ฅผ ๋”์šฑ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • Unix ์†Œ์ผ“ ์—ฐ๊ฒฐ์ด ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒํƒœ๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด ๋ณต์ œ๋ณธ์„ ์„ค์ •ํ•˜๊ณ  ๋ณ„๋„์˜ Redis์—์„œ ๋””์Šคํฌ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Redis์—์„œ ํ’€์€ ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ๋กœ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์„ ํ•˜๋‚˜์”ฉ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด์‹œ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜์œผ๋‚˜ ์ „์ฒด ๋ชฉ๋ก์„ ์–ธ๋กœ๋“œํ•  ๋•Œ ์†๋„๊ฐ€ ๋Š๋ ค์กŒ์Šต๋‹ˆ๋‹ค.

ํ‘œ์ค€ NodeJS๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Redis ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ดˆ๋‹น 18๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์†๋„๊ฐ€ 9๋ฐฐ๋‚˜ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

๋ฒค์น˜๋งˆํฌ ๊ฒฐ๊ณผ ๊ฐ€๋Šฅ์„ฑ์ด ํ™•์‹คํžˆ 5๋ฐฐ ๋” ํฌ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์ตœ์ ํ™”๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ioredis๋กœ ๋ณ€๊ฒฝํ–ˆ๊ณ  ์ดˆ๋‹น 25k์˜ ์„ฑ๋Šฅ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. `hset` ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์„ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” Redis์—์„œ ๋งŽ์€ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์„ ์ผ๊ด„ ์ฒ˜๋ฆฌ๋กœ ๊ฒฐํ•ฉํ•˜๊ณ  `hmset` ๋ช…๋ น ํ•˜๋‚˜๋กœ ์ „์†กํ•˜๋Š” ์•„์ด๋””์–ด๊ฐ€ ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์ดˆ๋‹น 32k์ž…๋‹ˆ๋‹ค.

์•„๋ž˜์— ์„ค๋ช…ํ•  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ ์šฐ๋ฆฌ๋Š” `Buffer`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์—…ํ•˜๊ณ , ์•Œ๊ณ  ๋ณด๋‹ˆ ์“ฐ๊ธฐ ์ „์— ์ด๋ฅผ ํ…์ŠคํŠธ(`buffer.toString('hex')`)๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ. ๋”ฐ๋ผ์„œ ์†๋„๋Š” ์ดˆ๋‹น 35k๋กœ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ์ถ”๊ฐ€ ์ตœ์ ํ™”๋ฅผ ์ค‘๋‹จํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

1. ์‹œ์Šคํ…œ์€ ํ•ด์‹œ, ์„œ๋ช… ๋“ฑ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” '๋ฒ„ํผ'์— ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

2. ์„œ๋น„์Šค ๊ฐ„์— ์ „์†ก๋  ๋•Œ ์ด์ง„ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒŒ๋Š” ํ…์ŠคํŠธ๋ณด๋‹ค ๊ฐ€๋ณ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 1๋งŒ ๊ฑด์˜ ํŠธ๋žœ์žญ์…˜์ด ํฌํ•จ๋œ ๋ธ”๋ก์„ ๋ณด๋‚ผ ๋•Œ ํ…์ŠคํŠธ์˜ ๋ฐ์ดํ„ฐ๋Š” 300MB ์ด์ƒ์„ ์ฐจ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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)`์„ ์‚ฌ์šฉํ•˜์—ฌ Redis์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์ „๋‹ฌํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ `Buffer`๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ.

๋˜ํ•œ ์„œ๋น„์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•œ 2๊ฐœ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

โ€” Unix ์†Œ์ผ“์„ ํ†ตํ•œ ํ”Œ๋ผ์ฆˆ๋งˆ ๋…ธ๋“œ์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ

  ```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;
  • 'ํŽ˜์ด๋กœ๋“œ' โ€” ์ ์ ˆํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ์ „๋‹ฌ๋˜์–ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ
  • `๋ฉ”์‹œ์ง€ ID` โ€” ์‘๋‹ต์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์‹œ์ง€ ID์ž…๋‹ˆ๋‹ค.

โ€” ๋…ธ๋“œ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ

  ```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;
  • `๋ฒ„์ „ํ”„๋กœํ† ์ฝœ` โ€” ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „. ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๋…ธ๋“œ๊ฐ€ ๋„คํŠธ์›Œํฌ์—์„œ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • `์‹œํ€€์Šค` - ๋ฉ”์‹œ์ง€ ์‹๋ณ„์ž
  • `countChunk` ะธ `์ฒญํฌ๋ฒˆํ˜ธ` ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”์‹œ์ง€๋ฅผ ๋ถ„ํ• ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • '๊ธธ์ด' ะธ 'ํŽ˜์ด๋กœ๋“œ' ๊ธธ์ด์™€ ๋ฐ์ดํ„ฐ ์ž์ฒด.

๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์ž…๋ ฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ข… ์‹œ์Šคํ…œ์€ Ethereum์˜ 'rlp' ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ์šฐ๋ฆฌ๋Š” ์•ž์œผ๋กœ ํ•  ๊ณ„ํš์ธ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„์ง ์ด๋ฅผ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์†๋„์— ๋„๋‹ฌํ–ˆ๋‹ค๋ฉด 35 000 ์ดˆ๋‹น ํŠธ๋žœ์žญ์…˜์„ ์ตœ์ ์˜ ์‹œ๊ฐ„์— ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋žต์ ์ธ ๋ธ”๋ก ํ˜•์„ฑ ์‹œ๊ฐ„์€ 30์ดˆ ์ •๋„ ์†Œ์š”๋˜๋ฏ€๋กœ ๋ธ”๋ก์— ํฌํ•จ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. + 1 000 000 ๊ฑฐ๋ž˜๋Š” ๋” ๋งŽ์ด ๋ณด๋‚ด๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 100 MB์˜ ๋ฐ์ดํ„ฐ.

์ฒ˜์Œ์—๋Š” `ethereumjs-devp2p` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…ธ๋“œ ๊ฐ„ ํ†ต์‹ ์„ ํ–ˆ์ง€๋งŒ ๋„ˆ๋ฌด ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” `ws` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์›น์†Œ์ผ“์„ ํ†ตํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์„ ๋ณด๋‚ผ ๋•Œ๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ, ๋ฉ์–ด๋ฆฌ๋กœ ๋‚˜๋ˆ„์–ด์„œ ์ง€๊ธˆ์€ ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Merkle ํŠธ๋ฆฌ๋ฅผ ํ˜•์„ฑํ•˜๊ณ  ํ•ด์‹œ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. + 1 000 000 ๊ฑฐ๋ž˜์— ํ•„์š”ํ•œ ์‚ฌํ•ญ 10 ์ดˆ ์—ฐ์† ๊ณ„์‚ฐ. ์ด ์‹œ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ๋…ธ๋“œ์™€์˜ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง‘๋‹ˆ๋‹ค. ์ด ๊ณ„์‚ฐ์„ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ๋กœ ์˜ฎ๊ธฐ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก  :

์‚ฌ์‹ค, ์šฐ๋ฆฌ์˜ ์—ฐ๊ตฌ ๊ฒฐ๊ณผ๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์ด ์•„๋‹ˆ์ง€๋งŒ, ์–ด๋–ค ์ด์œ ์—์„œ์ธ์ง€ ๋งŽ์€ ์ „๋ฌธ๊ฐ€๋“ค์€ ๊ฐœ๋ฐœํ•  ๋•Œ ์ด๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

  • ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€์‹  ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์‚ฐ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋†€๋ฆฌ์Šค๋Š” ์ƒ์‚ฐ์ ์ธ NodeJS ์‹œ์Šคํ…œ์˜ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ณด๋‹ค ๋‚˜์ฉ๋‹ˆ๋‹ค.
  • ๊ณผ๋„ํ•œ ๊ณ„์‚ฐ์— `worker_threads`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠนํžˆ i/o ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‹œ์Šคํ…œ ์‘๋‹ต์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
  • ์œ ๋‹‰์Šค ์†Œ์ผ“์€ http ์š”์ฒญ๋ณด๋‹ค ๋” ์•ˆ์ •์ ์ด๊ณ  ๋น ๋ฆ…๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ์ „์†กํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์›น์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒญํฌ๋กœ ๋‚˜๋ˆ„์–ด ์ „์†กํ•˜๊ณ , ๋„์ฐฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์Œ ํ•˜๋‚˜์˜ ๋ฉ”์‹œ์ง€๋กœ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์„ ๋ฐฉ๋ฌธํ•˜๋„๋ก ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค GitHub์˜ ํ”„๋กœ์ ํŠธ: https://github.com/opporty-com/Plasma-Cash/tree/new-version

ํ•ด๋‹น ๊ธฐ์‚ฌ๋Š” ๊ณต๋™ ์ง‘ํ•„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•Œ๋ ‰์‚ฐ๋” ๋‚˜์‹œ๋ฐ˜, ์ˆ˜์„ ๊ฐœ๋ฐœ์ž ํด๋ ˆ๋ฒ„์†”๋ฃจ์…˜(์ฃผ).

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€