[๋ธ”๋ก์ฒด์ธ ์‹ค์Šต] ์†”๋ฆฌ๋””ํ‹ฐ ์–ธ์–ด๋กœ ํˆฌํ‘œ ๊ธฐ๋Šฅ ์ปจํŠธ๋ž™ํŠธ ์ž‘์„ฑ
ยท
๐Ÿ—‚๏ธ Project/BlockChain
์ด solidity ์ฝ”๋“œ๋Š” ๊ฐ„๋‹จํ•œ ํˆฌํ‘œ ์ปจํŠธ๋ž™ํŠธ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.์—ฌ๊ธฐ์„œ๋Š” ํ›„๋ณด์ž ๋ชฉ๋ก์„ ๊ด€๋ฆฌํ•˜๊ณ , ๊ฐ ํ›„๋ณด์ž์— ๋Œ€ํ•œ ๋“ํ‘œ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค  ์ „์ฒด ์ฝ”๋“œpragma solidity ^0.4.23;contract Voting{ bytes32[] public candidateList; //์ปจํŠธ๋ž™ํŠธ๊ฐ€ ๋ฐฐํฌ๋  ๋•Œ ๋”ฑ ํ•œ๋ฒˆ๋งŒ ์ดˆ๊ธฐํ™”๋จ constructor(bytes32[] candidateNames) public { candidateList = candidateNames; } //ํ›„๋ณด์ž ๋ชฉ๋ก์˜ ๊ฐ ํ›„๋ณด์— ๋Œ€ํ•ด์„œ ๋“ํ‘œ์ˆ˜๋ฅผ ๊ณ„์† ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ด€๋ฐฐ์—ด ์ƒ์„ฑ -> ๋งคํ•‘ mapping (bytes32 => unit8) public votesRece..
[๋ธ”๋ก์ฒด์ธ ์‹ค์Šต] RPC ์„œ๋ฒ„ ์—ฐ๊ฒฐ (์˜ค๋ฅ˜:Account unlock with HTTP access is forbidden!)
ยท
๐Ÿ—‚๏ธ Project/BlockChain
๋ธ”๋ก์ฒด์ธ์—์„œ์˜ RPC ์„œ๋ฒ„  ๋ธ”๋ก์ฒด์ธ ์ปจํ…์ŠคํŠธ์—์„œ RPC ์„œ๋ฒ„๋Š” ๋ธ”๋ก์ฒด์ธ ๋…ธ๋“œ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋Š” ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์— ํŠธ๋žœ์žญ์…˜์„ ์ „์†กํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ์—์„œ๋Š” geth์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ RPC ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ API๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด๋”๋ฆฌ์›€์—์„œ์˜ RPC ์„œ๋ฒ„ ์„ค์ • ์ด๋”๋ฆฌ์›€ ํด๋ผ์ด์–ธํŠธ์ธ Geth๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ RPC ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. Geth๋Š” ๋‹ค์–‘ํ•œ RPC API๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. # geth --datadir . --unlock 0,1,2 --rpc --rpcaddr "0.0.0.0" --rpcport 8545 -โ€“rpcapi "admin,db,eth,debug,miner,net,..
[๋ธ”๋ก์ฒด์ธ ์‹ค์Šต] ์ด๋”๋ฆฌ์›€ ๊ฐ€์ƒํ™”ํ ๋งŒ๋“ค๊ธฐ
ยท
๐Ÿ—‚๏ธ Project/BlockChain
๋ธ”๋ก์ฒด์ธ ์‹ค์Šต์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „, geth ์„ค์น˜ geth = go-Ethereum์˜ ์•ฝ์žEthereum์ด ์ œ๊ณตํ•˜๋Š” ๊ณต์‹ ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ดEthereum ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”go์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋จ ๊ฐœ์ธ ๊ณ„์ • ๋งŒ๋“ค๊ธฐ # geth --datadir . account new ์‹ค์Šต์„ ์œ„ํ•œ ์ง€๊ฐ‘ ์ƒ์„ฑ์•”ํ˜ธํ™”ํ ์ง€๊ฐ‘์€ ์•”ํ˜ธํ™”ํ ์ž์‚ฐ์„ ๋ณด๊ด€ํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋žจ๊ฐœ์ธ ํ‚ค์™€ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ณด๊ด€ Genesis Block ์ƒ์„ฑ # geth --datadir . init ./genesis.json๋ธ”๋ก ํ—ค๋” ํ•ญ๋ชฉ์„ค๋ช…noncemixHash์™€ ํ•จ๊ป˜ ํ•ด๋‹น ๋ธ”๋ก์— ์ถฉ๋ถ„ํ•œ ์–‘์˜ ์ž‘์—… ์ฆ๋ช… ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ–ˆ์Œ์„ ์ฆ๋ช…ํ•˜๋Š” ๊ฐ’mishashnonce์™€ ํ•จ๊ป˜ ํ•ด๋‹น ๋ธ”๋ก์— ์ถฉ๋ถ„ํ•œ ์–‘์˜ ์ž‘์—… ์ฆ๋ช… ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ–ˆ์Œ์„ ์ฆ๋ช…difficulty๋ธ”๋ก ์ƒ์„ฑ ..