BlockChain

๋ชจ๋“  ์ด๋”๋ฆฌ์›€ ์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•œ ์ด๋”๋ฆฌ์›€ ์ž…๋ฌธ ๋ฐ”์ด๋ธ”: #3. ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•  ๊ฐœ๋ฐœ ํˆด๋“ค

IT's ์ž‡์ธ  2021. 8. 31. 09:00

๐Ÿ“‘  ๋ชฉ์ฐจ

  1. ๊ฒŒ์Šค(Geth)/ํŒจ๋ฆฌํ‹ฐ(Parity) ํด๋ผ์ด์–ธํŠธ
  2. Web3.js/Truffle
  3. ๊ฐ€๋‚˜์Šˆ(Ganache)
  4. ๋ฉ”ํƒ€๋งˆ์Šคํฌ(Metamask)
  5. ์ด๋”์Šค์บ”(Etherscan)
  6. ๋ฆฌ๋ฏน์Šค(Remix)
  7. ๋งˆ๋ฌด๋ฆฌ

 


๐Ÿ“Œ ๊ฒŒ์Šค(Geth)/ํŒจ๋ฆฌํ‹ฐ(Parity) ํด๋ผ์ด์–ธํŠธ

2021.08.30 - [BlockChain] - ๋ชจ๋“  ์ด๋”๋ฆฌ์›€ ์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•œ ์ด๋”๋ฆฌ์›€ ์ž…๋ฌธ ๋ฐ”์ด๋ธ”: #2. ์ค‘์š”ํ•œ ๊ด€๋ จ ๊ฐœ๋…๋“ค

์œ„์˜ ๊ธ€์—์„œ Geth์™€ ํŒจ๋ฆฌํ‹ฐ ๋“ฑ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉด

 

EVM(Ethereum Virtual Machine)์ด ์‹œ์ž‘๋˜๊ณ 

 

EVM์ด ํŠธ๋žœ์žญ์…˜์˜ ๋™๊ธฐํ™”, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ ์‹คํ–‰์„ ์‹œ์ž‘ํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

.

.

.

"Geth"

 

Geth๋Š” ์ด๋”๋ฆฌ์›€ ์žฌ๋‹จ์ด ์ œ๊ณตํ•˜๋Š” ๊ณต์‹ ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด๋กœ์จ, Go ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

Geth๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ๋‚ด์˜ ๋‹ค๋ฅธ ์ด๋”๋ฆฌ์›€ ํด๋ผ์ด์–ธํŠธ(node๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ)์—

 

์—ฐ๊ฒฐํ•˜๋Š” ์ž‘์—…์„ ๋จผ์ € ์‹œ์ž‘ํ•˜๊ณ  ๋ธ”๋ก์ฒด์ธ์˜ ์ „์ฒด ์‚ฌ๋ณธ์„ ๋‚ด๋ ค๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

.

.

.

 

Geth๋Š” ๋ธ”๋ก์ฒด์ธ์˜ ๋ณต์‚ฌ๋ณธ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋Š์ž„์—†์ด ๋‹ค๋ฅธ ๋…ธ๋“œ์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.

 

๋˜ํ•œ ๋ธ”๋ก์„ ์ฑ„๊ตดํ•˜๊ณ , ๋ธ”๋ก์ฒด์ธ์— ํŠธ๋žœ์žญ์…˜์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ธ”๋ก์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฒ€์ฆํ•˜๋ฉฐ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  RPC๋ฅผ ํ†ตํ•ด ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ๋…ธ์ถœํ•˜์—ฌ ์„œ๋ฒ„ ์—ญํ• ์„ ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 

๋ธ”๋ก์ฒด์ธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํด๋ผ์ด์–ธํŠธ(geth console)๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

.

.

.

"Parity"

 

 

Parity๋Š” ํ˜„์žฌ Parity.Inc.๋ผ๋Š” ๊ธฐ์—…์—์„œ ์šด์˜ํ•˜๊ณ  ์žˆ๊ณ 

 

์ด๋”๋ฆฌ์›€ ํ”„๋กœํ† ์ฝœ์˜ ๋˜ ๋‹ค๋ฅธ ๊ตฌํ˜„์ฒด์ด๋ฉฐ, Rust ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์‹ค ์ด๋”๋ฆฌ์›€ ๋„คํŠธ์›Œํฌ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ธธ์€ ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ์—ด๋ ค ์žˆ์œผ๋ฉฐ,

 

C++, ํŒŒ์ด์ฌ ๋ฐ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํด๋ผ์ด์–ธํŠธ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์›ํ•œ๋‹ค๋ฉด ์ด๋”๋ฆฌ์›€ ํ™ฉ์„œ์˜ ์‚ฌ์–‘์„ ๋”ฐ๋ผ ์ž์‹ ์˜ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“Œ Web3.js/Truffle

 

"Web3.js"

 

web3.js๋Š” ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์œ ๋ช…ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

 

์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ

 

์‚ฌ์šฉ์ž๊ฐ€ ํƒˆ์ค‘์•™ํ™” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ด์šฉํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ธ”๋ก์ฒด์ธ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ Ether.js๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

.

.

.

"Truffle"

 

Ruby on Rails, Django ๋“ฑ๊ณผ ๊ฐ™์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ฒ˜๋Ÿผ,

 

ํŠธ๋Ÿฌํ”Œ์€ Dapp ๊ฐœ๋ฐœ์— ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ํ•˜๋‚˜๋กœ์จ

 

๋ธ”๋ก์ฒด์ธ์—์„œ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ปดํŒŒ์ผํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๋ณต์žก์„ฑ์„ ๋งŽ์ด ์ถ”์ƒํ™”ํ•ฉ๋‹ˆ๋‹ค.

 

ํŠธ๋Ÿฌํ”Œ์˜ ๋Œ€์•ˆ์œผ๋กœ Embark๋ผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“Œ ๊ฐ€๋‚˜์Šˆ(Ganache)

 

ํ…Œ์ŠคํŠธ ๋ชฉ์ ์œผ๋กœ PC์— ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ข…์˜ ๊ฐ„์ด ๋ธ”๋ก์ฒด์ธ์ž…๋‹ˆ๋‹ค.

 

๊ฐ„์ด ๋ธ”๋ก์ฒด์ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ์™€ ์—ฐ๊ฒฐํ•  ํ•„์š” ์—†์ด ๋กœ์ปฌ์—์„œ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด, ๊ณ„์•ฝ์„ ์†์‰ฝ๊ฒŒ ๋ฐฐํฌ ๋ฐ ํ…Œ์ŠคํŠธํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐœ๋ฐœ์„ ์œ„ํ•ด geth ๋˜๋Š” ํŒจ๋ฆฌํ‹ฐ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด

 

๊ฐ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 15์ดˆ์”ฉ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋ชฉ์ ์ธ ๊ฐ€๋‚˜์Šˆ(ganache)๋ผ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋ธ”๋ก์ฒด์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ganache-cli ๋˜๋Š” GUI ๋ฒ„์ „์˜ ์ปค๋งจ๋“œ ๋ผ์ธ ๋ฒ„์ „์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐ€๋‚˜์Šˆ์˜ ๋˜ ๋‹ค๋ฅธ ์žฅ์ ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด

 

100๊ฐœ์˜ ์ด๋”๊ฐ€ ๋ฏธ๋ฆฌ ํƒ‘์žฌ๋œ 10๊ฐœ์˜ ํ…Œ์ŠคํŠธ ๊ณ„์ •์„ ํ™•๋ณดํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

npm install ganache-cli
node_modules/.bin/ganache-cli

๐Ÿ“Œ ๋ฉ”ํƒ€๋งˆ์Šคํฌ(Metamask)

 

์ด์ „ ๊ธ€์—์„œ ์ง€๊ฐ‘(Wallet)์— ๋Œ€ํ•ด ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋”๋ฆฌ์›€ ์ง€๊ฐ‘ ์ค‘ ๋ฉ”ํƒ€๋งˆ์Šคํฌ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ์ง€๊ฐ‘ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

 

๋ฉ”ํƒ€๋งˆ์Šคํฌ ์›น์‚ฌ์ดํŠธ์—์„œ ํฌ๋กฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“Œ ์ด๋”์Šค์บ”(Etherscan)

 

์ด๋”์Šค์บ”์€ ์ด๋”์Šค์บ” ์‚ฌ์—์„œ ์„œ๋น„์Šคํ•˜๋Š” ๋ฌด๋ฃŒ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ, ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ์„ ์œ„ํ•œ ํŽธ๋ฆฌํ•œ ํƒ์ƒ‰๊ธฐ์ž…๋‹ˆ๋‹ค.

 

ํผ๋ธ”๋ฆญ ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ์˜ ๋ชจ๋“  ์ฃผ์†Œ, ํŠธ๋žœ์žญ์…˜๊ณผ ๋ธ”๋ก์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ด ์›น์‚ฌ์ดํŠธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์™ผ์ชฝ ๊ทธ๋ฆผ์€ ์ด๋”๋ฆฌ์›€ ๋„คํŠธ์›Œํฌ๋ฅผ ์‹œ๊ฐํ™”ํ•œ ๊ฒƒ์œผ๋กœ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ์ด๋”์Šค์บ”์˜ ์œ„์น˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‹ค์–‘ํ•œ ํผ๋ธ”๋ฆญ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•ด ๋Œ€์‘๋˜๋Š” ๊ฐ๊ฐ์˜ ์ด๋”์Šค์บ” ํŽ˜์ด์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ, ๋ฉ”์ธ๋„ท ๋งํฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://etherscan.io/

 

Ethereum (ETH) Blockchain Explorer

Etherscan allows you to explore and search the Ethereum blockchain for transactions, addresses, tokens, prices and other activities taking place on Ethereum (ETH)

etherscan.io


๐Ÿ“Œ ๋ฆฌ๋ฏน์Šค(Remix)

 

๋ฆฌ๋ฏน์Šค๋Š” ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ € IDE(ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ)์ž…๋‹ˆ๋‹ค.

 

ํŽธ์ง‘๊ธฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋ฟ ์•„๋‹ˆ๋ผ,

 

IDE๋กœ ์ง์ ‘ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ์— ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ปดํŒŒ์ผํ•˜๊ณ , ๋ฐฐํฌํ•˜๊ณ  ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋˜ํ•œ, ๋‹ค์–‘ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ , ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋“ฑ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

.

.

.

๋ฆฌ๋ฏน์Šค๋Š” ์†Œ๊ทœ๋ชจ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์‹ ์†ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๊ธฐ์— ์ข‹์ง€๋งŒ,

 

์ „๋ฌธ์ ์ธ ์Šค๋งˆํŠธ ๊ณ„์•ฝ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ๋Š” Vim, Atom, VSC ๋˜๋Š” Sublime๊ณผ ๊ฐ™์€

 

ํŽธ์ง‘๊ธฐ๋ฅผ ๊ฐœ๋ฐœ์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์Šค๋งˆํŠธ ๊ณ„์•ฝ์˜ ์ปดํŒŒ์ผ ๋ฐ ๋ฐฐํฌ์—๋Š”

 

ํŠธ๋Ÿฌํ”Œ(Truffle) ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.


๊พธ์ค€ํžˆ ๋ธ”๋ก์ฒด์ธ ๊ด€๋ จํ•œ ์ •๋ณด ๋ฐ ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด์„œ

 

์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ๋” ๋ธ”๋กœ๊ทธ์— ์ฃผ๊ธฐ์ ์œผ๋กœ ์—…๋กœ๋“œํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

โฌ‡๏ธ ์ธ์Šคํƒ€๊ทธ๋žจ์œผ๋กœ๋„ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋งŒ๋‚˜๋ณด์‹œ๋ ค๋ฉด ์•„๋ž˜ ๋งํฌ๋กœ ๋†€๋Ÿฌ ์˜ค์„ธ์š”โ˜บ

๏ธ

https://www.instagram.com/dev.chooble/