[๋ธ”๋ก์ฒด์ธ ์‹ค์Šต] ์ด๋”๋ฆฌ์›€ ๊ฐ€์ƒํ™”ํ ๋งŒ๋“ค๊ธฐ

2024. 6. 4. 00:38ยท๐Ÿ—‚๏ธ Project/BlockChain
728x90

 

๋ธ”๋ก์ฒด์ธ ์‹ค์Šต์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „, geth ์„ค์น˜

 

geth = go-Ethereum์˜ ์•ฝ์ž

Ethereum์ด ์ œ๊ณตํ•˜๋Š” ๊ณต์‹ ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด
Ethereum ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”
go์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋จ

 

๊ฐœ์ธ ๊ณ„์ • ๋งŒ๋“ค๊ธฐ

 

# geth --datadir . account new

 

์‹ค์Šต์„ ์œ„ํ•œ ์ง€๊ฐ‘ ์ƒ์„ฑ

  • ์•”ํ˜ธํ™”ํ ์ง€๊ฐ‘์€ ์•”ํ˜ธํ™”ํ ์ž์‚ฐ์„ ๋ณด๊ด€ํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋žจ
  • ๊ฐœ์ธ ํ‚ค์™€ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ณด๊ด€

 

Genesis Block ์ƒ์„ฑ

 

# geth --datadir . init ./genesis.json
๋ธ”๋ก ํ—ค๋” ํ•ญ๋ชฉ ์„ค๋ช…
nonce mixHash์™€ ํ•จ๊ป˜ ํ•ด๋‹น ๋ธ”๋ก์— ์ถฉ๋ถ„ํ•œ ์–‘์˜ ์ž‘์—… ์ฆ๋ช… ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ–ˆ์Œ์„ ์ฆ๋ช…ํ•˜๋Š” ๊ฐ’
mishash nonce์™€ ํ•จ๊ป˜ ํ•ด๋‹น ๋ธ”๋ก์— ์ถฉ๋ถ„ํ•œ ์–‘์˜ ์ž‘์—… ์ฆ๋ช… ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ–ˆ์Œ์„ ์ฆ๋ช…
difficulty ๋ธ”๋ก ์ƒ์„ฑ ๋‚œ์ด๋„
alloc ์ œ๋„ค์‹œ์Šค ๋ธ”๋ก์„ ์ƒ์„ฑํ•  ๋•Œ ํŠน์ • ๊ณ„์ •์— ๋ฏธ๋ฆฌ ์ •ํ•ด์ง„ ์•ก์ˆ˜์˜ ์ด๋”๋ฅผ ์ง€๊ธ‰ํ•ด ๋ธ”๋ก์„ ์ƒ์„ฑ
coinbase ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜๋ ค๊ณ  ์ฑ„๊ตดํ–ˆ์„ ๋•Œ ๋ณด์ƒ์„ ๋ฐ›๋Š” ๊ณ„์ • ์ฃผ์†Œ
timestamp ๋ธ”๋ก์ฒด์ธ์— ์ €์žฅํ•œ ์‹œ๊ฐ„
parentHash ์ด์ „ ๋ธ”๋ก ํ—ค๋”์˜ ํ•ด์‹œ ๊ฐ’
gasaLimit ํ•ด๋‹น ๋ธ”๋ก์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์Šค์˜ ์ตœ๋Œ€ ํฌ๊ธฐ
config ์ œ๋„ค์‹œ์Šค ๋ธ”๋ก์˜ ์„ค์ • ๊ฐ’์„ ์ •์˜
chainId
๋ธ”๋ก์ฒด์ธ์„ ์‹๋ณ„ํ•˜๋Š” ์ •์ˆซ๊ฐ’
homesteadBlock
ํ™ˆ์Šคํ…Œ๋“œ๋ฅผ ์ ์šฉํ•˜๋Š” ํ•˜๋“œ ํฌํฌ ๋ธ”๋ก ๋ฒˆํ˜ธ
eip 155Block
์ด๋”๋ฆฌ์›€ ๊ฐœ์„  ์ œ์•ˆ์˜ 155๋ฒˆ ๋…ผ์˜๋ฅผ ์ ์šฉํ•œ ํ•˜๋“œ ํฌํฌ ๋ธ”๋ก ๋ฒˆํ˜ธ
eip 158Block
์ด๋”๋ฆฌ์›€ ๊ฐœ์„  ์ œ์•ˆ์˜ 158๋ฒˆ ๋…ผ์˜๋ฅผ ์ ์šฉํ•œ ํ•˜๋“œ ํฌํฌ ๋ธ”๋ก ๋ฒˆํ˜ธ

 

 

๋ธ”๋ก ์ฑ„๊ตดํ•˜๊ธฐ

Geth๋Š” ์ด๋”๋ฆฌ์›€ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•œ ํด๋ผ์ด์–ธํŠธ๋กœ, ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์ด๋”๋ฆฌ์›€ ๋„คํŠธ์›Œํฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” Geth ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ •์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค.

# geth –datadir . console

> eth.accounts[0]
> eth.coinbase

 

โ“ geth --datadir . console : geth ์ฝ˜์†” ์‹œ์ž‘

๋จผ์ € Geth ์ฝ˜์†”์„ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค. --datadir ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์‚ฌ์šฉํ•˜์—ฌ Geth ์ฝ˜์†”์„ ์‹คํ–‰ํ•œ๋‹ค.

 

โ“‘ eth.accounts[0] : Geth ์ฝ˜์†”์—์„œ ๊ณ„์ • ํ™•์ธ

์ด ๋ช…๋ น์–ด๋Š” Geth์— ์—ฐ๊ฒฐ๋œ ์ฒซ ๋ฒˆ์งธ ๊ณ„์ •์˜ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. eth.accounts ๋ฐฐ์—ด์€ Geth ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๊ณ„์ •์„ ํฌํ•จํ•œ๋‹ค.

 

โ“’ eth.coinbase : ์ฝ”์ธ๋ฒ ์ด์Šค ๊ณ„์ • ํ™•์ธ

์ด ๋ช…๋ น์–ด๋Š” ์ฝ”์ธ๋ฒ ์ด์Šค ๊ณ„์ •์˜ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฝ”์ธ๋ฒ ์ด์Šค ๊ณ„์ •์€ ๋งˆ์ด๋‹ ๋ณด์ƒ์„ ๋ฐ›๋Š” ๊ธฐ๋ณธ ๊ณ„์ •์ด๋‹ค.

 

 

์ฑ„๊ตด ์‹œ์ž‘

# miner.start()

 

์ฑ„๊ตด ์ค‘์ง€

# miner.stop()

 

 

์ƒํƒœ ํ™•์ธ

์ด๋”๋ฆฌ์›€ ๋งˆ์ด๋‹์€ ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ์—์„œ ์ƒˆ๋กœ์šด ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜๊ณ  ๋ธ”๋ก์ฒด์ธ์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์ด๋‹ค. ๋งˆ์ด๋‹์€ ๋ธ”๋ก์— ํฌํ•จ๋œ ๊ฑฐ๋ž˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์•”ํ˜ธํ™” ํผ์ฆ์„ ํ•ด๊ฒฐํ•˜๋Š” ์ž‘์—…์„ ํฌํ•จํ•œ๋‹ค. ์ด๋”๋ฆฌ์›€ ๋งˆ์ด๋‹์˜ ์ฃผ์š” ๋ชฉํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

  • ํŠธ๋žœ์žญ์…˜ ๊ฒ€์ฆ: ๋„คํŠธ์›Œํฌ ์ƒ์˜ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์„ ํ™•์ธํ•˜๊ณ  ๊ฒ€์ฆํ•œ๋‹ค.
  • ๋ธ”๋ก ์ƒ์„ฑ: ๊ฒ€์ฆ๋œ ํŠธ๋žœ์žญ์…˜์„ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ธ”๋ก์„ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋ธ”๋ก์ฒด์ธ์— ์ถ”๊ฐ€: ์ƒ์„ฑ๋œ ๋ธ”๋ก์„ ๋ธ”๋ก์ฒด์ธ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ๊ธฐ๋กํ•œ๋‹ค.
  • ๋ณด์ƒ: ๋งˆ์ด๋„ˆ๋Š” ์ƒˆ๋กœ์šด ๋ธ”๋ก์„ ์ƒ์„ฑํ•  ๋•Œ ์ด๋”๋ฆฌ์›€(ETH)์œผ๋กœ ๋ณด์ƒ๋ฐ›๋Š”๋‹ค

 

์ƒํƒœ ํ™•์ธ

> eth.mining
> eth.hashrate
> eth.blocknumber

 

โ“ ์ด๋”๋ฆฌ์›€ ํ•ด์‹œ๋ ˆ์ดํŠธ (eth.hashrate)

ํ•ด์‹œ๋ ˆ์ดํŠธ๋Š” ์ด๋”๋ฆฌ์›€ ๋„คํŠธ์›Œํฌ์—์„œ ๋งˆ์ด๋„ˆ๋“ค์ด ์•”ํ˜ธํ™” ํผ์ฆ์„ ํ•ด๊ฒฐํ•˜๋Š” ์†๋„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํ•ด์‹œ๋ ˆ์ดํŠธ๋Š” ๋ณดํ†ต ์ดˆ๋‹น ๊ณ„์‚ฐ๋œ ํ•ด์‹œ์˜ ์ˆ˜๋กœ ์ธก์ •๋˜๋ฉฐ, ๋‹จ์œ„๋Š” H/s (ํ•ด์‹œ/์ดˆ) ๋˜๋Š” ๊ทธ ๋ฐฐ์ˆ˜(GH/s, TH/s ๋“ฑ)๋กœ ํ‘œํ˜„๋œ๋‹ค. ํ•ด์‹œ๋ ˆ์ดํŠธ๋Š” ๋„คํŠธ์›Œํฌ์˜ ๋ณด์•ˆ์„ฑ๊ณผ ๊ด€๋ จ์ด ๊นŠ๋‹ค:

  • ๋†’์€ ํ•ด์‹œ๋ ˆ์ดํŠธ: ๋งŽ์€ ๋งˆ์ด๋„ˆ๋“ค์ด ๋„คํŠธ์›Œํฌ์— ์ฐธ์—ฌํ•˜๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์ด๋Š” ๋„คํŠธ์›Œํฌ์˜ ๋ณด์•ˆ์„ฑ์„ ๋†’์ธ๋‹ค.
  • ๋‚ฎ์€ ํ•ด์‹œ๋ ˆ์ดํŠธ: ๋งˆ์ด๋„ˆ๊ฐ€ ์ ๊ฑฐ๋‚˜ ๋งˆ์ด๋‹ ๋‚œ์ด๋„๊ฐ€ ๋‚ฎ์Œ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Š” ๋„คํŠธ์›Œํฌ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋œ ์•ˆ์ „ํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

โ“‘ ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก ๋ฒˆํ˜ธ (eth.blocknumber)

์ด๋”๋ฆฌ์›€ ๋ธ”๋ก ๋ฒˆํ˜ธ๋Š” ๋ธ”๋ก์ฒด์ธ ๋‚ด์—์„œ ๊ฐ ๋ธ”๋ก์˜ ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณ ์œ ํ•œ ์ˆซ์ž์ด๋‹ค. ๋ธ”๋ก ๋ฒˆํ˜ธ๋Š” ์ œ๋„ค์‹œ์Šค ๋ธ”๋ก(์ฒซ ๋ฒˆ์งธ ๋ธ”๋ก)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๊ฐ ์ƒˆ๋กœ์šด ๋ธ”๋ก์ด ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค 1์”ฉ ์ฆ๊ฐ€ํ•œ๋‹ค. ๋ธ”๋ก ๋ฒˆํ˜ธ๋Š” ์—ฌ๋Ÿฌ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค:

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

 

๋ณด์ƒ ์ž”๊ณ  ํ™•์ธ

> eth.getBalance(eth.coinbase)

> eth.getBalance(eth.accounts[0]
> eth.getBalance(eth.accounts[1]
> eth.getBalance(eth.accounts[2]

 

โ“ ์ด๋”๋ฆฌ์›€ ์ฝ”์ธ๋ฒ ์ด์Šค ์ž”์•ก ํ™•์ธ

์ฝ”์ธ๋ฒ ์ด์Šค ๊ณ„์ •์€ ์ด๋”๋ฆฌ์›€ ๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ปดํ“จํ„ฐ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์ •๋œ ๊ณ„์ •์„ ์˜๋ฏธํ•œ๋‹ค. ์ด ๊ณ„์ •์€ ๋ณดํ†ต ๋งˆ์ด๋‹ ๋ณด์ƒ์„ ๋ฐ›๋Š” ๊ณ„์ •์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

โ“‘ ํŠน์ • ๊ณ„์ •์˜ ์ž”์•ก ํ™•์ธ

์ด๋”๋ฆฌ์›€ ๊ณ„์ •์˜ ์ž”์•ก์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด eth.accounts ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๊ณ„์ •๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฐฐ์—ด์€ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๊ณ„์ •์„ ํฌํ•จํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, eth.accounts[0], eth.accounts[1], eth.accounts[2]๋Š” ์ฒซ ๋ฒˆ์งธ, ๋‘ ๋ฒˆ์งธ, ์„ธ ๋ฒˆ์งธ ๊ณ„์ •์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

 

ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ

ํŠธ๋žœ์žญ์…˜์ด๋ž€

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

 

ํŠธ๋žœ์žญ์…˜์€ '์ฒ˜๋ฆฌ ์š”์ฒญ'๊ณผ '์ฒ˜๋ฆฌ' 2๋‹จ๊ณ„์— ๊ฑธ์ณ ์ฒ˜๋ฆฌ๋œ๋‹ค.

 

 

์ˆ˜์ˆ˜๋ฃŒ ํ™•์ธ

 

> eth.estimateGas({
	from:eth.accounts[0], 
    to:eth.accounts[1], 
    value:web3.toWei(1, "ether")
})

 

์ด ๋ช…๋ น์–ด๋Š” Geth ์ฝ˜์†”์—์„œ ํŠน์ • ํŠธ๋žœ์žญ์…˜์ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ฐ€์Šค๋ฅผ ์†Œ๋น„ํ•  ๊ฒƒ์ธ์ง€ ์˜ˆ์ธกํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. 

 

๊ฐ ํ•„๋“œ ์„ค๋ช…

  • from: ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋‚ด๋Š” ๊ณ„์ •์˜ ์ฃผ์†Œ์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” eth.accounts[0]์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค.
  • to: ํŠธ๋žœ์žญ์…˜์„ ๋ฐ›๋Š” ๊ณ„์ •์˜ ์ฃผ์†Œ์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” eth.accounts[1]์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค.
  • value: ์ „์†กํ•  ์ด๋”์˜ ์–‘์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” web3.toWei(1, "ether")์„ ์‚ฌ์šฉํ•˜์—ฌ 1 ์ด๋”๋ฅผ Wei ๋‹จ์œ„๋กœ ๋ณ€ํ™˜ํ•œ ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค.

์™œ eth.estimateGas๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

eth.estimateGas๋Š” ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ๊ฐ€์Šค ์–‘์„ ์˜ˆ์ธกํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ์ถฉ๋ถ„ํ•œ ๊ฐ€์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ์ด๋Š” ํŠธ๋žœ์žญ์…˜์ด ๊ฐ€์Šค ๋ถ€์กฑ์œผ๋กœ ์‹คํŒจํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.

 

์†ก๊ธˆ ์š”์ฒญ

Geth ์ฝ˜์†”์—์„œ eth.sendTransaction ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋”๋ฆฌ์›€ ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋Š” ๊ณ„์ • eth.accounts[0]์—์„œ eth.accounts[1]๋กœ 1 ์ด๋”๋ฅผ ๋ณด๋‚ด๋Š” ํŠธ๋žœ์žญ์…˜์„ ์ƒ์„ฑํ•˜๋Š” ์˜ˆ์ œ๋‹ค.

> eth.sendTransaction({
	from:eth.accounts[0],
    to:eth.accounts[1],
    value:web3.toWei(1, "ether"),
    gas:30000,
    gasPrice:4
})

 

 

๊ฐ ํ•„๋“œ ์„ค๋ช…

  • from: ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋‚ด๋Š” ๊ณ„์ •์˜ ์ฃผ์†Œ (eth.accounts[0]).
  • to: ํŠธ๋žœ์žญ์…˜์„ ๋ฐ›๋Š” ๊ณ„์ •์˜ ์ฃผ์†Œ (eth.accounts[1]).
  • value: ์ „์†กํ•  ์ด๋”์˜ ์–‘ (1 ์ด๋”๋ฅผ Wei ๋‹จ์œ„๋กœ ๋ณ€ํ™˜ํ•œ ๊ฐ’ web3.toWei(1, "ether")).
  • gas: ํŠธ๋žœ์žญ์…˜์— ์‚ฌ์šฉํ•  ์ตœ๋Œ€ ๊ฐ€์Šค ์–‘ (30000).
  • gasPrice: ๊ฐ€์Šค ๊ฐ€๊ฒฉ (4 Wei).

์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, ์ด๋”๋ฆฌ์›€ ๋„คํŠธ์›Œํฌ์— ํŠธ๋žœ์žญ์…˜์ด ์ „์†ก๋˜๊ณ , ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค. ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๋Š” ํŠธ๋žœ์žญ์…˜์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ๊ฐ’์ด๋‹ค.

 

ํŠธ๋žœ์žญ์…˜ ์ •๋ณด ํ™•์ธ

Geth ์ฝ˜์†”์—์„œ eth.pendingTransactions ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ๋…ธ๋“œ์— ๋Œ€๊ธฐ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ์•„์ง ๋ธ”๋ก์— ํฌํ•จ๋˜์ง€ ์•Š์€ ํŠธ๋žœ์žญ์…˜ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

> eth.pendingTransactions

 

์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ˜„์žฌ ๋Œ€๊ธฐ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์˜ ๋ฐฐ์—ด์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ฐ ํŠธ๋žœ์žญ์…˜ ๊ฐ์ฒด๋Š” ๋‹ค์–‘ํ•œ ํ•„๋“œ๋ฅผ ํฌํ•จํ•œ๋‹ค.

 

๊ฐ ํ•„๋“œ ์„ค๋ช…

  • hash: ํŠธ๋žœ์žญ์…˜์˜ ํ•ด์‹œ ๊ฐ’.
  • from: ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋‚ธ ๊ณ„์ • ์ฃผ์†Œ.
  • to: ํŠธ๋žœ์žญ์…˜์„ ๋ฐ›๋Š” ๊ณ„์ • ์ฃผ์†Œ.
  • value: ์ „์†ก๋œ ์ด๋”์˜ ์–‘ (Wei ๋‹จ์œ„).
  • gas: ํŠธ๋žœ์žญ์…˜์— ํ• ๋‹น๋œ ๊ฐ€์Šค ์–‘.
  • gasPrice: ํŠธ๋žœ์žญ์…˜์— ์„ค์ •๋œ ๊ฐ€์Šค ๊ฐ€๊ฒฉ.
  • nonce: ๊ณ„์ •์—์„œ ๋ณด๋‚ธ ํŠธ๋žœ์žญ์…˜์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ.

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

 

ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ

 

Geth ์ฝ˜์†”์—์„œ web3.fromWei์™€ eth.getBalance ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๊ณ„์ •์˜ ์ด๋”๋ฆฌ์›€ ์ž”์•ก์„ ์ด๋” ๋‹จ์œ„๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋Š” ๊ฐ ๊ณ„์ •์˜ ์ž”์•ก์„ ๊ฐ€์ ธ์™€์„œ Wei ๋‹จ์œ„์—์„œ ์ด๋” ๋‹จ์œ„๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์˜ˆ์ œ๋‹ค.

> web3.fromWei(eth.getBalance(eth.accounts[0], "ether")
> web3.fromWei(eth.getBalance(eth.accounts[1], "ether")

 

account[0]์—์„œ account[1]๋กœ 1 ์ด๋” ์†ก๊ธˆ ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

728x90

'๐Ÿ—‚๏ธ Project > BlockChain' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ธ”๋ก์ฒด์ธ ์‹ค์Šต] ์†”๋ฆฌ๋””ํ‹ฐ ์–ธ์–ด๋กœ ํˆฌํ‘œ ๊ธฐ๋Šฅ ์ปจํŠธ๋ž™ํŠธ ์ž‘์„ฑ  (1) 2024.06.19
[๋ธ”๋ก์ฒด์ธ ์‹ค์Šต] RPC ์„œ๋ฒ„ ์—ฐ๊ฒฐ (์˜ค๋ฅ˜:Account unlock with HTTP access is forbidden!)  (0) 2024.06.04
'๐Ÿ—‚๏ธ Project/BlockChain' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ธ”๋ก์ฒด์ธ ์‹ค์Šต] ์†”๋ฆฌ๋””ํ‹ฐ ์–ธ์–ด๋กœ ํˆฌํ‘œ ๊ธฐ๋Šฅ ์ปจํŠธ๋ž™ํŠธ ์ž‘์„ฑ
  • [๋ธ”๋ก์ฒด์ธ ์‹ค์Šต] RPC ์„œ๋ฒ„ ์—ฐ๊ฒฐ (์˜ค๋ฅ˜:Account unlock with HTTP access is forbidden!)
WISHee
WISHee
IT์™€ ๋ณด์•ˆ์— ๋Œ€ํ•œ ๊ณต๋ถ€ ๊ธฐ๋ก์„ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์•„๊ฐ€๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ๐Ÿ›ก๏ธ๐Ÿ’ป
  • WISHee
    DevwithWish
    WISHee
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸŒณ ROOT (128)
      • โ›“๏ธ ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ (10)
        • ๊ธฐ๋ณธ ๊ฐœ๋… (9)
        • ํŒจํ‚ท ๋ถ„์„ (1)
        • ์นจ์ž… ํƒ์ง€ ๋ฐ ๋ฐฉ์ง€ (0)
      • โš™๏ธ ์‹œ์Šคํ…œ ๋ณด์•ˆ (0)
        • ์šด์˜์ฒด์ œ ๋ณด์•ˆ (0)
        • ์ทจ์•ฝ์  ๋ถ„์„ (0)
        • ๋กœ๊ทธ ๋ถ„์„ (0)
      • ๐ŸŒ ์›น ๋ณด์•ˆ (1)
        • OWASP TOP 10 (1)
        • ์›น ์„œ๋ฒ„ ๋ณด์•ˆ (0)
        • ์›น ์ทจ์•ฝ์  ๋ถ„์„ (0)
      • โ˜๏ธ ํด๋ผ์šฐ๋“œ ๋ณด์•ˆ (3)
        • AWS (3)
      • ๐Ÿ” ์•”ํ˜ธํ™” & ์ธ์ฆ (3)
        • ์•”ํ˜ธํ™” ๊ฐœ๋… (2)
        • TLS,SSL (0)
        • ์ธ์ฆ & ์ ‘๊ทผ์ œ์–ด (1)
      • ๐Ÿšจ ๋ณด์•ˆ ์‹ค๋ฌด (30)
        • ๋ณด์•ˆ ๊ด€์ œ (14)
        • ๋ชจ์˜ ํ•ดํ‚น (12)
        • ์ทจ์•ฝ์  ์ง„๋‹จ (3)
        • ๋””์ง€ํ„ธํฌ๋ Œ์‹ (1)
      • ๐Ÿ“š ISMS & ISO27001 (9)
        • ISMS, ISMS-P ์ธ์ฆ (2)
      • ๐Ÿ“ฐ ๋ณด์•ˆ ๋‰ด์Šค & ํŠธ๋ Œ๋“œ (1)
        • ์ตœ์‹  ๋ณด์•ˆ ์ด์Šˆ (1)
        • ์‚ฌ์ด๋ฒ„ ์œ„ํ˜‘ ์ •๋ณด (0)
        • ๋ณด์•ˆ ์ปจํผ๋Ÿฐ์Šค ๋ฆฌ๋ทฐ (0)
      • ๐Ÿ”ฅ SKShieldusRookies (15)
        • Review (3)
        • PBL (0)
        • ๊ณผ์ œ (4)
        • ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ (8)
        • ์ตœ์ข… ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ—‚๏ธ Project (3)
        • SOAR (0)
        • BlockChain (3)
      • ๐Ÿงฉ Language (23)
        • Java (1)
        • Python (16)
        • Programmers (6)
      • ๐Ÿ‘ฅ ๋ฒ„์ „๊ด€๋ฆฌ & ํ˜‘์—…๋„๊ตฌ (9)
        • Git, GitHub (4)
        • etc (5)
      • ๐Ÿ’œ ์ผ์ƒ (21)
        • Boot Camp (4)
        • Study (6)
        • Travel (8)
        • Study Abroad (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

    • ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค!
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ณด์•ˆ์‹ค์Šต
    Github
    ํŒŒ๋ฆฌ์—ฌํ–‰
    ์™€์ด์–ด์ƒคํฌ
    VSCode
    ๋ชฝ์ƒ๋ฏธ์…ธ
    flask
    ์˜นํ”Œ๋ขฐ๋ฅด
    Python
    ํ•œ๋‹ฌ์—ฌํ–‰
    ์œ ๋Ÿฝ์—ฌํ–‰
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ์นผ๋ฆฌ๋ฆฌ๋ˆ…์Šค
    ํ”„๋ž‘์Šค์—ฌํ–‰
    ํ˜‘์—…๋„๊ตฌ
    sk์‰ด๋”์Šค๋ฃจํ‚ค์ฆˆ
    ์œ ๋Ÿฝํ•œ๋‹ฌ์—ฌํ–‰
    ๋Ÿฐ๋˜์—ฌํ–‰
    ํ•ด์™ธ์—ฌํ–‰
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ๊นƒํ—ˆ๋ธŒ
    ๋ฆฌ๋ˆ…์Šค๋ณด์•ˆ
    ์ •๋ณด๋ณด์•ˆ
    ํŒŒ์ด์ฌ
    ๋ชจ์˜ํ•ดํ‚น
    git
    ํ”Œ๋ผ์Šคํฌ
    slack
    ๋ธ”๋ก์ฒด์ธ์‹ค์Šต
    ์œˆ๋„์šฐ๋ณด์•ˆ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • 160x600
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
WISHee
[๋ธ”๋ก์ฒด์ธ ์‹ค์Šต] ์ด๋”๋ฆฌ์›€ ๊ฐ€์ƒํ™”ํ ๋งŒ๋“ค๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”