Docker로 구성된 이더넷 PET-SHOP TRUFLE BOXES(중 하나)
14304 단어 DAppstruffleTruffleBoxDockerEthereum
그럼 다음 사이트를 모방해 보겠습니다. (다음은 React & Truffle 보도입니다.)
TruffleBox(React & Truffle)를 사용하여 Docker에 dapps(블록체인 응용)의 개발 환경을 구축하다
본 보도에서 저는 더욱 실천적인 교육 모델에 도전하여 애완동물 가게를 열어 보려고 합니다.
ETHEREUM PET SHOP -- YOUR FIRST DAPP
그나저나 이 튜토리얼이 어떤 건지 지금 핫한 딥엘로 번역하면 그렇습니다.
이 강좌에서는 애완동물 가게를 위한 입양 추적 시스템을 만드는 과정을 설명한다.
이 강좌는 이더미와 스마트 구조기의 기본 지식, HTML과 자바스크립트의 지식이 있지만, dapth는 첫 번째 사람을 대상으로 한다.
개발 환경 구축
Docker 환경
참고React & Truffle 보도로 사용된 TruffleBox를 애완동물점으로 변경하는 형식으로 Docker 환경을 준비합니다.
docker-compose.yml
version: '3'
services:
truffle:
build:
context: ./trufflebox/
dockerfile: Dockerfile
volumes:
- ./trufflebox:/usr/src/app
command: sh -c "cd client && yarn start"
ports:
- "8003:3000"
DockerfileFROM node:8-alpine
RUN apk add --update alpine-sdk
RUN apk add --no-cache git python g++ make \
&& npm i -g --unsafe-perm=true --allow-root truffle
WORKDIR /usr/src/app
다음 구조로 이 두 파일을 제작한다.pet-shop
├── docker-compose.yml
└── trufflebox
└── Dockerfile
pet-shop 폴더에서 다음 동작을 실행합니다.$ docker-compose build
Building truffle
Step 1/4 : FROM node:8-alpine
---> 2b8fcdc6230a
Step 2/4 : RUN apk add --update alpine-sdk
---> Using cache
---> 761342077e72
Step 3/4 : RUN apk add --no-cache git python g++ make && npm i -g --unsafe-perm=true --allow-root truffle
---> Using cache
---> 82200b1b0c8f
Step 4/4 : WORKDIR /usr/src/app
---> Using cache
---> 4eb121f5853d
Successfully built 4eb121f5853d
Successfully tagged pet-shop_truffle:latest
$ docker-compose run truffle truffle unbox pet-shop
Creating network "pet-shop_default" with the default driver
You can improve web3's performance when running Node.js versions older than 10.5.0 by installing the (deprecated) scrypt package in your project
This directory is non-empty...
? Proceed anyway? (Y/n)
Starting unbox...
=================
? Proceed anyway? Yes
✔ Preparing to download box
✔ Downloading
npm WARN [email protected] No description
npm WARN [email protected] No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
✔ cleaning up temporary files
✔ Setting up box
Unbox successful, sweet!
Commands:
Compile: truffle compile
Migrate: truffle migrate
Test contracts: truffle test
Run dev server: npm run dev
React & Truffle 보도에서'unbox react'부분으로 이번에는'unbox pet-shop'이다.그러므로
https://www.trufflesuite.com/boxes/pet-shop
를 참고하십시오.
이더넷 네트워크
React & Truffle 기사를 참고하여 Doke 환경에서 로컬 Ganache의 테스트 네트워크로 연결합니다.
먼저 로컬 환경에 연결할 수 있는 IP 주소를 할당합니다.
로컬 IP 주소가 없을 때 설정합니다.(React & Truffle 보도 및 입문 보도 참조)
그런 다음 Ganache의 설정 화면에서 로컬 IP 주소로 시작하도록 지정합니다.
PORT NUMBER는 7545입니다.이거 이따 나와.
이 상태에서 METAMASK를 통해 연결할 수 있는지 확인합니다.
METAMASK는 이 주소, 포트를 통한 연결 설정을 추가했다.
여기에 연결하기 위해truffle-config.구성
방금 실행된 unbox pet-shop은trufflebox 폴더에 파일을 만들었습니다.
자동 제작된truffle-config.js는 다음과 같다.
truffle-config.js(자동 제작)
module.exports = {
// See <http://truffleframework.com/docs/advanced/configuration>
// for more about customizing your Truffle configuration!
networks: {
development: {
host: "127.0.0.1",
port: 7545,
network_id: "*" // Match any network id
},
develop: {
port: 8545
}
}
};
네트워크 이름을 지정하지 않으면truffle는 개발자를 사용합니다.따라서 여기서 설정을 변경합니다.
truffle-config.js(변경)
module.exports = {
// See <http://truffleframework.com/docs/advanced/configuration>
// for more about customizing your Truffle configuration!
networks: {
development: {
host: "10.200.10.1",
port: 7545,
network_id: "*" // Match any network id
},
develop: {
port: 8545
}
}
};
그리고 내 사이즈=Ganache의 deproy.$ docker-compose run truffle truffle migrate
You can improve web3's performance when running Node.js versions older than 10.5.0 by installing the (deprecated) scrypt package in your project
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'development'
> Network id: 5777
> Block gas limit: 0x6691b7
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
> transaction hash: 0xd032d73ed143eeb44062f09d02fa64888d9c133d3addb2ff79ccef63d7a4f1ff
> Blocks: 0 Seconds: 0
> contract address: 0xF88b3D9805da39D094178f2ba0dCc38a0610d214
> block number: 5
> block timestamp: 1585053865
> account: 0xc55F3d6C444ca88f529F3413EDEd85a39e38609C
> balance: 99.98893326
> gas used: 188483
> gas price: 20 gwei
> value sent: 0 ETH
> total cost: 0.00376966 ETH
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.00376966 ETH
Summary
=======
> Total deployments: 1
> Final cost: 0.00376966 ETH
시동을 걸다.$ docker-compose up
Creating pet-shop_truffle_1 ... done
Attaching to pet-shop_truffle_1
truffle_1 | sh: cd: line 1: can't cd to client: No such file or directory
pet-shop_truffle_1 exited with code 2
아이고, 실패했구나.폴더 구성이 다르네요.docker-compose.yml의command를 수정합니다.
docker-compose.yml
version: '3'
services:
truffle:
build:
context: ./trufflebox/
dockerfile: Dockerfile
volumes:
- ./trufflebox:/usr/src/app
command: sh -c "npm run dev"
ports:
- "8003:3000"
$ docker-compose up
Recreating pet-shop_truffle_1 ... done
Attaching to pet-shop_truffle_1
truffle_1 |
truffle_1 | > [email protected] dev /usr/src/app
truffle_1 | > lite-server
truffle_1 |
truffle_1 | ** browser-sync config **
truffle_1 | { injectChanges: false,
truffle_1 | files: [ './**/*.{html,htm,css,js}' ],
truffle_1 | watchOptions: { ignored: 'node_modules' },
truffle_1 | server:
truffle_1 | { baseDir: [ './src', './build/contracts' ],
truffle_1 | middleware: [ [Function], [Function] ] } }
truffle_1 | [Browsersync] Access URLs:
truffle_1 | -----------------------------------
truffle_1 | Local: http://localhost:3000
truffle_1 | External: http://172.22.0.2:3000
truffle_1 | -----------------------------------
truffle_1 | UI: http://localhost:3001
truffle_1 | UI External: http://localhost:3001
truffle_1 | -----------------------------------
truffle_1 | [Browsersync] Serving files from: ./src
truffle_1 | [Browsersync] Serving files from: ./build/contracts
truffle_1 | [Browsersync] Watching files...
truffle_1 | [Browsersync] Couldn't open browser (if you are using BrowserSync in a headless environment, you might want to set the open option to false)
브라우저에서http://localhost:8003/
탭화면 켜!
이로써 PET-SHOP 송로 케이스의 Installation은 Docker 환경에서 형성되었고ETHEREUM PET SHOP -- YOUR FIRST DAPP의 Wrinting the smart contract가 시작되었다.
이쯤에서 끝내고 다음 기사에서 스마트 설정을 만들겠습니다.
Reference
이 문제에 관하여(Docker로 구성된 이더넷 PET-SHOP TRUFLE BOXES(중 하나)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/JQinglong/items/b471d79a105f92001618텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)