티스토리 뷰

(2021.04.28 본인 네이버 블로그에서 작성한 글 옮겨옴)

 

졸업 작품 만들기 전에 프로그램 익히려고 만들어 본 상품관리 dApp !

[참고] https://developer-mac.tistory.com/85?category=313482

 

[이더리움 dApp] 이더리움으로 간단한 상품관리 dApp 만들기

-- 수정 19.11.18 -- Github 소스코드 약간의 오류를 수정하였습니다. 이더리움의 꽃은 바로 스마트컨트랙트를 이용한 dApp입니다. 비트코인과 다르게 이더리움의 스마트 컨트랙트는 강력한 차별점으

developer-mac.tistory.com

 

*감사합니다*

!!우분투 안에 크롬 다운받음!!

[참고] https://somjang.tistory.com/entry/Ubuntu%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90%EC%84%9C-Google-Chrome-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

[Ubuntu]우분투에서 Google Chrome 설치하기!

1. 크롬 설치파일 다운로드 받기 먼저 현재 기본으로 설치되어있는 파이어폭스 브라우저를 켜줍니다. show Applications에서 Firefox Webbrowser 선택 url 창에 https://www.google.com/chrome/ 이라고 타이핑..

somjang.tistory.com


1. githuub에서 코드를 다운받아서

remix에 복붙한다.

https://github.com/dongw00/product_dApp

 

GitHub - dongw00/product_dApp: 공산품 관리 이더리움 dApp

공산품 관리 이더리움 dApp. Contribute to dongw00/product_dApp development by creating an account on GitHub.

github.com

초록색 코드 버튼 누르면 압축파일 다운로드가 있다 !

나는 우분투에서 진행하기 때문에

윈도우에서 다운받고 우분투로 옮겨왔다.

solidity 파일 속에 있는

smartcontract.sol 파일을 열면 되는데 ..

이게 위에 사이트에서는 비주얼 코드를 이용해서 열었는데

내 환경에서는 그게 없기 때문에 메모장으로 열어서 ,,,,,,,

remix로 복붙해왔다 ^~^

소스 코드 가져온 모습

2. nohup geth —networkid 4649 —nodiscover —maxpeers 0 —datadir /home/ubuntu/data_testnet —mine —minerthreads 1 —rpc 2>> /home/ubuntu/data_testnet/geth.log &

3. geth --networkid 4649 --datadir /home/ubuntu/data_testnet --nodiscover -port 30303 --rpc --rpcport "8545" --rpcaddr "0.0.0.0" --rpccorsdomain "*" --rpcapi "eth, net, web3, miner, debug, personal, rpc" console --allow-insecure-unlock --rpc.allow-unprotected-txs (geth 콘솔창 들어가짐)

위의 명령어들을 입력한 후

4. personal.unlockAccount(eth.accounts[0])

2~3번 명령어 입력 후 Create(배포) 실행을 하면

이런 에러가 remix 명령창에 뜬다.

계정이 막혀있다고 풀어달라는 뜻이라서

나는 애초에 2~3번 명령어 후에

4번 명령어까지 실행해서 계정 잠금해제를 하고

뒷 부분을 이어갔다.

이렇게 계정 잠금 해제

5. github에서 다운받았던 소스코드는 버전이 0.4.22~0.5.2 였나,,? 그랬는데

솔리디티 컴파일을 위해 사이트에서 하라는 대로 0.5.1 컴파일러를 선택했으나 되지 않았다.

그래서 기존 소스파일을 조금 고쳐서 ^0.4.22로 하고 0.4.22 컴파일러를 선택!

 

이렇게 버전을 바꿔주었음 !

6. 컴파일 성공

어디 블로그에서 보니까 노란색은 상관하지 말라고 ,, 그러던데 맞나욥?

7. run에서 web3 선택후 http://192.168.30.132:8545 로 ip를 바꾸면

geth과 remix가 연결되어 계정 정보를 받아온다.

첨엔 이것도 오래걸렸다구 ㅠ.ㅠ

배포 준비 완료 !!!

8. create 누르면

명령창에 creation of Productcontract pending... 메시지가 출력되고 geth에서도 트랜잭션을 받는다.

 

9. geth에서 마이닝 시작

뚝...딱...뚝.....딱........ ⚒️

10. 정상적으로 마이닝 되면

(좀 오래 기다려야했음 아니 좀 많이 오래 ㅡㅡ)

 

remix에서 트랜잭션이 정상적으로 블록에 담겼다는 메시지가 뜬다.

11. 그럼 배포한 스마트 컨트랙트 주소와 우리가 실습하려는 dapp을 연결하기 위해 블록의 주소를 복사한다.

문서모양 누르면 복사된다

12. app 문서를 열고

http://192.168.30.132:8545 로 바꾸고

컨트랙트 주소를 복사한것으로 바꾼 후 저장한다.

192.168.30.132는 내 우분투 ip

-> hostname -I 였나 명령어 치면 볼 수 있따

13. github에서 다운받은 파일에서 index.html 파일을 열고 들어가서 (우분투 안의 크롬)

주소와 각종 내용을 입력하면

아무것도 안뜸 ^^

이때 remix에 들어가도 에러가 안뜨고,,

혹시나 해서 geth 터미널 창에 갔더니

또잠금

계정 또 잠겨있다고 열어달래서

> personal.unlockAccount(eth.accounts[0])

입력해줬다.

그 후, 다시 index.html 가서

제품 등록하기를 눌러주면 !

으아아아아ㅏ아아아아앙아ㅏㄱ!!!!!!!!!!!!!!!!!!!!!!!!

트랜잭션이 정상적으로 전송되었다는 메시지가 뜬다.

 

역시 나는 짱이다 ,,,,,,,,,,,,,,,

역시 나는 최고다 ,,,,,,,,,,,,,,,,

역시 나는 멋지다 ,,,,,,,,,,,,,

내일은 가나슈와 메타마스크 실습을 해보겠습니다 !

댓글