Blockchain 3

Hardhat

1. intro hardhat은 컨트랙트를 컴파일, 배포, 테스트 할 수 있는 truffle과 비슷한 종류의 툴이다. ts를 사용할 수도 있고, depolyment script를 작성하기도 편할 뿐더러, console.log 기능을 지원해 개발 과정에서 디버깅을 훨씬 편하게 해줄 수 있기 때문에 truffle에 비해 편리한 점이 있다. 2. install, setup npm install --save-dev hardhat (공식 개발자 문서에서는 wsl2 환경에서 사용하는 것을 추천하고 있다.) npx hardhat 콘솔에서 다음과 같이 입력해 hardhat을 실행하면 시작화면이 출력된다. 여기에서 첫 번째 옵션 (create a JS project)를 선택하고 엔터를 치면 루트 디렉토리 안에 컨트랙트 ..

Blockchain 2022.11.02

#4 block 생성

지금까지 공부한 ts 문법을 이용해 block을 생성해보자. merkleRoot를 만들어주는 라이브러리 merkle은 ts 전용으로도 존재하므로 이를 먼저 설치한다. merkleRoot에 대해서는 https://liferesetbutton.tistory.com/59?category=944752로. npm i merkle npm i --save-dev @types/merkle // 둘 모두 설치해야 문제없이 작동한다. 1. Block, BlockHeader 셋업 Block class를 우선 선언을 해주되, 전역으로 사용할 수 있도록 @types 폴더에 파일을 만들어 선언한다. /* @types/Block.d.ts */ declare interface IBlockHeader { version : string..

Blockchain 2022.06.12

#2 typescript

1. typesrcipt javascript와 비슷한데, 이보다는 조금 strict한 문법을 제공한다고 볼 수 있다. 대표적으로 우리가 변수를 선언할 때 JS에서는 데이터의 종류를 따로 지정하지 않고 자유롭게 쓸 수 있었지만 (배열인지 숫자인지 문자열인지 등..) TS에서는 변수 선언시 데이터 종류(type)을 반드시 함께 선언해주어야한다. 우리가 class 문법을 이용해 객체 (이제부턴 보통 블럭) 를 사용할 때, 그 class안에 있을 요소와 그 데이터 타입을 지정해 class를 선언해주면 앞으로 해당 class에 속하는 객체를 생성 할 때, 선언시 지정된 속성, 데이터 타입과 다를 경우 그 사실을 알려줄 것이다. 우선 ts 파일을 하나 만들고, 이를 js로 변환하는 가장 간단한 작업을 하는 것부터 ..

Blockchain 2022.06.11