728x90

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 128

CryptoZombies - Solidity ํŠœํ† ๋ฆฌ์–ผ

์†”๋ฆฌ๋””ํ‹ฐ ๋ณ€์ˆ˜ ๋‹ค๋ฃจ๊ธฐ, ๋ฐฐ์—ด, ์—ฐ์‚ฐ, ํ•จ์ˆ˜์™€ ๊ตฌ์กฐ์ฒด ๋“ฑ๋“ฑ ์ •๋ฆฌ https://thirsty-sugar-3ec.notion.site/CryptoZombies-7b17e3a5f84749f6b70cba0e2ccbbb18?pvs=4 CryptoZombies ์ข€๋น„ ๊ณต์žฅ ๋งŒ๋“ค๊ธฐ 1. ๋น„์–ด์žˆ๋Š” ์Šค๋งˆํŠธ์ปจํŠธ๋ž™ํŠธ ์ƒ์„ฑ thirsty-sugar-3ec.notion.site https://thirsty-sugar-3ec.notion.site/CryptoZombies-0e8421ac7cc14a579c461a6a9e98d2be?pvs=4 CryptoZombies ์ข€๋น„ ๊ณต๊ฒฉ 1. ๋งคํ•‘๊ณผ ์ฃผ์†Œ thirsty-sugar-3ec.notion.site https://thirsty-sugar-3ec.notion.site/Cryptozomb..

WEB3 2023.09.24

web3.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

https://thirsty-sugar-3ec.notion.site/web3-js-254729c0c4e94bd49a26abaab08b0232?pvs=4 web3.js web3.js๋ž€? thirsty-sugar-3ec.notion.site web3.js๋ž€? web3.js๋Š” ์ด๋”๋ฆฌ์›€ ๋„คํŠธ์›Œํฌ์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณต, JSON RPC(Remote Procedure Call, ์›๊ฒฉ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ) ์ŠคํŽ™์„ ๊ตฌํ˜„ํ•œ ์ด๋”๋ฆฌ์›€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ API = JSON RPC ์ŠคํŽ™์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ web3.js์— ๋งก๊ธฐ๊ณ , JSON RPC๊ฐ€ ์•„๋‹Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ Dapp(Decentralized application)์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์› ์ด๋”๋ฆฌ์›€์„ ์‚ฌ์šฉํ•ด dApp์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€, ์†”๋ฆฌ๋””ํ‹ฐ ์–ธ์–ด๋กœ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™..

WEB3 2023.09.24

openzeppelin ์‚ฌ์šฉํ•ด ERC20 ํ† ํฐ ๋งŒ๋“ค๊ธฐ

1. My_Token.sol ์ž‘์„ฑ contracts ํด๋”์— ์ž‘์„ฑ pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract MyToken is ERC20{ uint public INITIAL_SUPPLY = 120000; constructor() public ERC20("My Token","MT"){ _mint(msg.sender, INITIAL_SUPPLY); } // ์„œ๋กœ ๋‹ค๋ฅธ ์•”ํ˜ธํ™”ํ๊ฐ€ ์ƒ๋Œ€ ์ฒด์ธ์— ์ƒ์„ฑ๋˜๊ณ  ๊ตํ™˜๋˜๋Š” ๋ฏผํŒ… ๊ตฌํ˜„ } ERC20.sol ํŒŒ์ผ ๋ถˆ๋Ÿฌ์™€์„œ _mint ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์ƒˆ ํ† ํฐ์„ ์ƒ์„ฑํ•˜๋Š” ์ปจํŠธ๋ž™ํŠธ ๋ฐฐํฌ ์‹œ ๋ฏธ๋ฆฌ ์ •์˜๋œ ์–‘์˜ ํ† ํฐ์„ ๋ฐœํ–‰ํ•˜๊ธฐ ์œ„ํ•ด _mint ํ•จ์ˆ˜ ํ˜ธ์ถœ 2. 3_deploy..

WEB3 2023.09.24

Private Network์— ์Šค๋งˆํŠธ์ปจํŠธ๋ž™ํŠธ ๋ฐฐํฌ

1. openzeppelin ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ** openzeppelin๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: ์Šค๋งˆํŠธ์ปจํŠธ๋ž™ํŠธ ์ฝ”๋“œ๋“ค ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ smartcontract ํด๋” ์ƒ์„ฑ ํ›„ truffle init npm init -y npm install -E openzeppelin-solidity npm install @openzeppelin/contracts 2. smartcontract ํด๋”์—์„œ truffle-config.js ํŒŒ์ผ ์ˆ˜์ • network์™€ compiler ์ˆ˜์ • 3. test.sol ํŒŒ์ผ ์ž‘์„ฑ contract ํด๋” ์•ˆ์— test.sol ํŒŒ์ผ ์ž‘์„ฑ pragma solidity ^0.5.2; // solidity 0.5.2 ๋ฒ„์ „์„ ์‚ฌ์šฉ contract TEST { // contract ์ด๋ฆ„์„ TEST๋กœ ์ง€์ • strin..

WEB3 2023.09.24

์œˆ๋„์šฐ ๋ธ”๋ก์ฒด์ธ Private Network ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์„ฑ (node.js, npm, truffle, ganache, metamask, myetherwallet)

node.js ๋ฐ npm ์„ค์น˜ ํŠธ๋Ÿฌํ”Œ ์„ค์น˜ Ganache ์„ค์น˜ MetaMask ์ง€๊ฐ‘๊ณผ ๋กœ์ปฌ๋„ท ์—ฐ๊ฒฐ ๊ณ„์ • ๊ฐ„ ์†ก๊ธˆ MyEtherWaller ์—ฐ๊ฒฐ 1. node.js ๋ฐ npm ์„ค์น˜ 2. ํŠธ๋Ÿฌํ”Œ ์„ค์น˜ ์Šค๋งˆํŠธ์ปจํŠธ๋ž™ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ, ์šด์˜ ๋“ฑ์„ ์‰ฝ๊ฒŒ ๋„์™€์ฃผ๋Š” ํˆด npm install -g truffle 3. Ganache ์„ค์น˜ Ganache์—์„œ ์ž์ฒด์ ์œผ๋กœ ์ด๋”๋ฆฌ์›€ ๊ฑฐ๋ž˜์ฒ˜๋ฆฌ์™€ ์ฑ„๊ตด ๊ธฐ๋Šฅ ๊ฐ€๋Šฅ ๊ฑฐ๋ž˜ ์ฑ„๊ตด์— ๋Œ€ํ•œ ๋Œ€๊ธฐ์‹œ๊ฐ„์€ ์—†๊ณ , ๊ฑฐ๋ž˜๋Š” ์ƒ์„ฑ๋˜๋Š” ๋Œ€๋กœ ๊ธฐ๋ก๋จ ์ฑ„๊ตด ํ™œ๋™์ด ํ•„์š”์—†์–ด์„œ ์ด๋”๋ฆฌ์›€ ๋ฐ ์Šค๋งˆํŠธ์ปจํŠธ๋ž™ํŠธ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ ์‚ฌ์ „ํ…Œ์ŠคํŠธํˆด๋กœ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ # ganache-cli ์„ค์น˜ npm install -g ganache-cli # ์ด๋”๋ฆฌ์›€ ๋…ธ๋“œ ์‹œ์ž‘ ganache-cli 10๊ฐœ์˜ ๊ณ„์ •์ด ์ƒ์„ฑ..

WEB3 2023.09.24

์ด๋”๋ฆฌ์›€๊ณผ ๋น„ํŠธ์ฝ”์ธ, ์ด๋”๋ฆฌ์›€ ํ† ํฐ ํ‘œ์ค€

์ด๋”๋ฆฌ์›€ vs ๋น„ํŠธ์ฝ”์ธ ์ด๋”๋ฆฌ์›€์€ ๋น„ํŠธ์ฝ”์ธ ๋“ฑ์žฅ ํ›„ 6๋…„ ๋’ค ๋“ฑ์žฅ → ๊ฑฐ๋ž˜ ์ฒ˜๋ฆฌ ์†๋„ ๋น ๋ฅด๊ณ  ์ „๋ ฅ ๋œ ์†Œ๋ชจํ•˜๋Š” ๋“ฑ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ณด์™„๋จ ๋ชฉํ‘œ ๋น„ํŠธ์ฝ”์ธ: ์ •๋ถ€๋‚˜ ๊ธˆ์œต๊ธฐ๊ด€ ๊ฐ™์€ ์ค‘์žฌ์ž ์—†์ด ์ž‘๋™ํ•˜๋Š” ํ™”ํ, ๊ฒฐ์ œ๋‚˜ ์†ก๊ธˆ ๋“ฑ ‘ํ™”ํ’๋กœ์„œ์˜ ๊ธฐ๋Šฅ ์ œ๊ณต ์ด๋”๋ฆฌ์›€: ๋‹จ์ˆœํ•œ ํ™”ํ๊ฐ€ ์•„๋‹ˆ๋ผ ‘์ธํ„ฐ๋„ท ํ™˜๊ฒฝ๊ณผ ๊ธฐ์—…์„ ์œ„ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ’, ๋ธ”๋ก์ฒด์ธ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•ด ๋ˆ„๊ตฌ๋‚˜ ๋‹ค์–‘ํ•œ ํƒˆ์ค‘์•™ํ™” ๋ถ„์‚ฐํ˜• ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์šด์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ‘ํ”Œ๋žซํผ’์„ ์ œ๊ณต ์ด๋”๋ฆฌ์›€์˜ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ ์–ด๋–ค ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜๋ฉด ์•”ํ˜ธํ™”ํ๊ฐ€ ์ด์ฒด๋˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ ์ž๋™ํ™”๋œ ๊ณ„์•ฝ์€ ์ „ ์„ธ๊ณ„ ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์— ๋ถ„์‚ฐ๋ผ ๊ธฐ๋ก๋˜๋ฏ€๋กœ ์œ„,๋ณ€์กฐ ์œ„ํ—˜์—์„œ ๋ฒ—์–ด๋‚จ ๊ณ„์•ฝ๋“ค์„ ๋ณต์žกํ•˜๊ฒŒ ํ™œ์šฉํ•˜๋ฉด ๊ฒŒ์ž„์ด๋‚˜ SNS์™€ ๊ฐ™์€ ์•ฑ์„ ๋งŒ๋“ค์–ด๋‚ด๊ณ  ์šด์˜ํ•  ์ˆ˜ ์žˆ์Œ (๋น„ํŠธ์ฝ”์ธ๊ณผ ๋‹ฌ๋ฆฌ ์ด๋”๋ฆฌ์›€ ๋„คํŠธ..

WEB3 2023.09.24

๋ธ”๋ก์ฒด์ธ ๊ฐœ๋…, ์ข…๋ฅ˜

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

WEB3 2023.09.24
728x90