https://www.youtube.com/watch?v=yDe9hf-Oay8
Infura๋ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์ ์ ๊ทผ์ ๋์์ค๋ค.
์ด๋ป๊ฒ ๋ค๋ฅธ ๋ธ๋ก๋ค์ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์ฐ๊ฒฐ์ํฌ ์ ์์๊น? (๋ฉ์ธ๋ท์ด๋ ํ ์คํธ๋ท์ด๋ )
๊ทธ๋ฐ๋ฐ ๋ธ๋ก์ฒด์ธ์ ์ฐ๊ฒฐ์ํค๊ธฐ์ํด ๋์ ์ปดํจํฐ์ ๋ชจ๋ ๋ธ๋ก์ฒด์ธ์ ๋ค ๋ค์ด ๋ฐ์์ผํ๋๋ฐ ๊ทธ๋ฌ๊ธฐ์๋ ์๊ฐ์ด ๋๋ฌด๋ง์ด ๊ฑธ๋ฆฐ๋ค. ์ฉ๋๋ ๋ถ์กฑํ๋ค
Infura๋ง ์๋ค๋ฉด ์ด๋ค ๋ค์ด๋ก๋์์ด ๋ธ๋ก์ฒด์ธ๊ณผ interactํ ์ ์๋ค.
=> smart contract๋ฅผ deployํ ์ ์๋ค.
๋ก๊ทธ์ธ์ ํ๊ณ ๋ค์ด๊ฐ๋ฉด apiํค๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ ๋คํธ์ํฌ์ ์ ๊ทผํ ์ ์๋ url๋ ์ ๊ณต๋๋ค.
truffle๊ณผ ์ฌ์ฉํด๋ณด์
์ค๋งํธ ์ปจํธ๋ํธ๋ฅผ ์ํํ๋ ํ๋ ์์ํฌ๋ค.
์ค์น๋ฒ
npm install truffle -g
์งํ
=> trufflevideo์ truffle์ ์ค์นํด๋ณด์๋ค.
truffle ํ๋ ์์ํฌ ํ๊ฒฝ์ ๊ตฌ์ถํด๋ณด์
truffle init
contracts/Migrations.sol๋ ์ฐ๋ฆฌ์ deployment scripts๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ป๊ฒ deployํ ์ง ์ฐ๋ฆฌ์ ์ปจํธ๋ํธ๋ค์ ์ด๊ธฐํํ ์ง ์ ํ์๋ค.
์๋ก์ด Contract๋ฅผ ๋ง๋ค์ด๋ณด์
HelloWorld๋ผ๋ sol ํ์ผ์ ๋ง๋ค๊ณ ์์๊ฐ์ด ์ ๋ ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ปดํ์ผ ํ๋ค.
truffle compile
๊ทธ๋ฌ๋ฉด build/contracts์ ์ปดํ์ผ๋ jsonํ์ผ์ด ์์ฑ๋๋ค.
migration ํ์ผ์ ๋ง๋ค๊ณ ์คํ์์ผ๋ณด์
truffle develop
truffle migrate
๊ทธ๋ฌ๋ฉด ์ปจํธ๋ํธ ํ์ผ๋ค์ด ์ปดํ์ผ๋๊ณ migrate๋๋ค.
migrate๊น์ง ํ๋ฉด ๋ค์์ฒ๋ผ ๋ฌ๋ค.
truffle(develop)> truffle migrate
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'develop'
> Network id: 5777
> Block gas limit: 6721975 (0x6691b7)
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
> transaction hash: 0x0e4f63f423c838c4fc0daae0ff5c87cce94b815883e93b6859ed5cc5cba47c98
> Blocks: 0 Seconds: 0
> contract address: 0x0b7318Df18faC915fbE5Ad563B117CC72d163572
> block number: 1
> block timestamp: 1650541209
> account: 0x2f511E573f1935E2c4BD176047B6D486cCFe481E
> balance: 99.99915573025
> gas used: 250154 (0x3d12a)
> gas price: 3.375 gwei
> value sent: 0 ETH
> total cost: 0.00084426975 ETH
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.00084426975 ETH
2_hello_world_migration.js
==========================
Deploying 'HelloWorld'
----------------------
> transaction hash: 0xf7ddec6bc90b5e1bec99cc521c2ff85ab2541da57d405a604673b4829be82d95
> Blocks: 0 Seconds: 0
> contract address: 0x790cb9be3F8a0772E2790164a5a3a2279CeDC8e9
> block number: 3
> block timestamp: 1650541209
> account: 0x2f511E573f1935E2c4BD176047B6D486cCFe481E
> balance: 99.998576167601162051
> gas used: 135055 (0x20f8f)
> gas price: 3.178366198 gwei
> value sent: 0 ETH
> total cost: 0.00042925424687089 ETH
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.00042925424687089 ETH
Summary
=======
> Total deployments: 2
> Final cost: 0.00127352399687089 ETH
truffle(develop)> let instance = await HelloWorld.deployed()
truffle(develop)> instance.hello()
'hello world'
์ ์๋ ๋จ์ ํ์ธ ํ ์ ์๋ค.
npm install truffle-hdwallet-provider
student.sol๊ณผ 2_student_migration.js๋ฅผ ๋ง๋ ๋ค.
truffle.js์ ๋ค์ ์ฝ๋๋ฅผ ์ถ๊ฐํด๋ณด์
๋ค์ ๋ช
๋ น์ด๋ก migrate ํด์ฃผ๋ฉด ๋