블록체인, 현수영강사님의 수업 마침표.
시연준비, D-day1

 

7월30일부터 시작하여, 8월 18일 현수영강사님 수업을 마친다.

강사님 수업 덕분에 '블로그 글쓰기' 는 물론 '블록체인 개념' , 솔리디티, 자바스크립트 문법

기초를 다지는데 있어서 많이 배운 것 같아서 스스로도 뿌듯...?(안돼! 아직멀었어ㅠ_ㅠ이제시작이야!) 하고,

너무 습관을 잘 들이고 있는 것 같아서 강사님께 너무 감사하다.  

 

이제 3주가량의 유종의美 를 거둘차례인 총 정리 및 발표준비를 시작해보자.

 

1) 우선 블록체인의 개념들은 Blog에 이미 정리를 해놨다. ok 

2) 이더스캔         ok  

3) DApp             ok

4) Upgrade DApp ok

5) 컨트랙트 취약점 ( 이건 아직 내 실력이 안돼서 우선 pass, 나중에 꼭 정리하자 !)  Not yet.

 

Etherscan -> DApp -> Upgrade DApp 순으로 정리 

 

 


 

 

1. Etherscan 

 

이더스캔을 만들어봤다. 

로고 바로 옆에있는 오리는 원래 gif로써 뛰어다닌다. (동적인 표현을 해주려고, 뒤에 두마리를 더 놔줬다.)

 

ganashe(가나슈)를 사용해서, 고정된 키 값을 넣어서, 안에 이더를 확인하였다.  

 

이더스캔 만들기 전에 워밍업으로 만들었던, 곳에서 트랜잭션을 발생시켜주고,

다시 계정의 이더를 확인해보면

from :0x595944c84628fb14c96a434e2f4fec3315265a8b 에서

to : 0x66Bcfd5f498d33dbf63D8D97E2ceCEeED1C9ECa8 로 1이더가 잘 전송됐는지 확인 할 수있다. 

 

 

그리고 트랜잭션 주소를 조회해보면, hash, blockNumber 등 잘 값이 나오는걸 확인 할 수 있다.  


 

2. DApp 

 

목표 : Rimix & web3.js & 메타마스크를 연결하여 읽기, 쓰기 해보기

 

나의 첫번째 DApp은 테마가 '쇼핑몰'이였다. (전혀 쇼핑몰같지...않다..ㅎ 그냥 사람이 물건 구매한다 라는 걸 표현했다) 

사람 Anna와 Backy 총 2명이있는데,  

각각의 이름 불러오는 것은, getPerson1( ) , getPerson2( ) '읽기'함수로써 트랜잭션이 발생하지않는다.

puchasePerson1( ) , puchasePerson2( ) 는 '쓰기' 함수로써 트랜잭션이 발생하며, 가스비를 지불해야된다.

 

구매를 할 경우 getCount( )를 사용하여 판매총합에 '쓰기'함수로써 수가 늘어나는것을 확인 할 수 있다. 

 


 

3. Upgrade DApp (자유주제) 

 

목표 : 일주일동안(9일~13일) 자유롭게 하고싶은 프로젝트 할 수 있는 기간에

전시회 티켓을 구매하는 DApp 구현

 

11일(수요일) - html UI부분만 구현해놓고, 13일(금요일)돼서야 이더전송인 payable에 대해서 이해했던 나는 

주말동안 또 솔리디티 문법공부를 다잡고, 월요일(16일) 왼쪽에 있는 컨트랙트를 완성하였다.(뿌듯..하기는 이르다.)

그리고 오늘(17일) (업데이트 이전 사진)오른쪽과 같은 비쥬얼을 완성하였다.

 

원래는 모달창으로 구매자의 이름과 나이를 받아오려고했으나, input의 hidden이 뭔지... 

처음에는 자바스크립트도 잊혀지고... 도통 감이 잡히지를않아 강사님이 처음에 공유해주신 예제로 input text로 구현해보았다. (이부분은 휴무기간에 다뤄봐야겠다)

 

여하튼, 주요 기능부분은, 티켓을 구매하고 싶은사람이 이름 & 나이를 입력하면, hidden파라미터인 id와 계정 주소가 함께 컨트랙트로 넘어가서 mapping에 저장된다.

그리고 그 저장된 정보가 버튼 disabled와 함께 구매한 사람의 정보를 읽어오도록 구현하였다. 

 

 

(업데이트 이후 _18일)

 - 티켓을 구매 완료시 , input창이 사라지는 동적인 효과를 업데이트 함. 

   (https://github.com/luckyjek/blockchain/tree/main/miniDApp)

   for문과 배열을 사용하지않은 코드들이라 하나하나 다 추가해주느라 너무 힘들었다. 

   휴가기간에 'for문'과 '배열'을 꼭 공부해서 리팩토링 혹은 다른 DApp을 만들면서

   앞으로는 이러한 코드는 만들면 안되겠다고 다짐했다.   

   +컨트랙트에서 event를 추가해줬었는데, 이부분도 공부해서 넣어봐야겠다. 

   

(업데이트 이전 _17일)

그리고 아래는 테스트를 통해 컨트랙트 주소로 모인 Ether를 확인 할 수 있다. 

컨트랙트 주소 : 0x19F8d1d6D4db97C910b9487a8592e0A36580D031

 


 

18일, 오전(코드 수정 및 마무리 작업) ~ 발표까지 하면서 느낀점 :  

 

오전에 (업데이트 이후) 를 보면 name, age의 Input 부분과 작성한 함수를 또다른 함수안에서 호출하는

부분에 대한 로직의 디테일 을 강사님의 피드백을 통해서 더 자세히 알아갈 수 있었다. 

 

그리고 다시는... 중복되는 코드는 최대한 안만들기위해 노력할 것이다.

따라서 앞으로 내가 공부해야되는 반복문배열을 열심히 공부해야겠다.

 

 

 

 

 

이제부터 시작이다. 

 

 

 

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기