Ethereum

    Ethereum/이더리움 - 메타마스크를 통한 스마트 컨트랙트 실행

    이번 포스팅에서는 메타마스크를 사용해서 스마트 컨트랙트를 실행시켜보는 작업을 진행해보고자 한다. 위에 보이는 것과 같이 스마트 컨트랙트에 의해 동작하는 Counter(카운터)를 만들어 볼 예정이다. 화면에 보이는 (+)버튼, (-)버튼을 클릭할 때마다 클라이언트는 메타마스크와 연결된 계정을 사용해 트랜잭션을 발생시키게 되고 스마트 컨트랙트 코드가 실행되어 상태변수의 값이 변경된다. React를 사용해 프론트 화면을 구성할 예정이며 메타마스크는 Ganache 네트워크에 연결하고자 한다. 그리고 스마트 컨트랙트 작성 및 배포는 Truffle을 사용할 것이다. $ # front 디렉토리 $ npx create-react-app front $ # ganache 실행 $ npx ganache-cli $ # tru..

    Ethereum/이더리움 - Truffle (스마트 컨트랙트 개발 프레임워크)

    이번 포스팅에서는 Truffle을 이용해 스마트 컨트랙트를 배포 및 실행하는 방법에 대해 알아보고자 한다. Truffle은 스마트 컨트랙트를 쉽게 배포하고 실행시킬 수 있도록 해주는 스마트 컨트랙트 개발 프레임워크이다. Truffle 이외에도 Hardhat 이라는 프레임워크가 존재하는데 Truffle에서는 web3 라이브러리를 사용하고 Hardhat에서는 ethers 라이브러리를 사용한다. 본 포스팅에서는 Truffle을 이용해 스마트 컨트랙트를 배포하고 실행해보도록 하겠다. 👉 설치 $ npm install truffle $ # 버전 확인 $ npx truffle version truffle 설치를 완료했다면 터미널에 다음과 같이 입력하여 truffle 프레임워크를 생성해주도록 하자. $ npx tru..

    Ethereum/이더리움 - JavaScript로 스마트 컨트랙트 배포 및 실행

    이번 포스팅에서는 JavaScript를 사용해서 스마트 컨트랙트를 배포하고 배포된 스마트 컨트랙트를 실행시키는 방법에 대해 다루고자 한다. keystore 파일에서 개인키 가져오기 JavaScript로 스마트 컨트랙트 컴파일하기 JavaScript로 스마트 컨트랙트 배포하기 1. keystore 파일에서 개인키 가져오기 Geth를 실행시킨 다음 해당 노드에서 계정을 생성하게 될 경우 다음과 같이 keystore 디렉토리 안에 UTC--로 시작하는 파일이 생성된다. keystore 파일 안에는 계정 정보들이 객체 형태로 존재한다. 암호화 되어 있는 계정 정보 파일이라고 볼 수 있으며 단방향 암호화가 아니기 때문에 복호화를 통해 개인키를 얻어내는 것이 가능하다. keythereum 이라는 라이브..

    Ethereum/이더리움 - 스마트 컨트랙트 배포 및 실행

    이번 포스팅에서는 이더리움 네트워크 상에 스마트 컨트랙트(Smart Contract)를 배포하고 배포된 스마트 컨트랙트를 실행시키는 방법에 대해 다뤄보고자 한다. 스마트 컨트랙트 컴파일 스마트 컨트랙트 배포 스마트 컨트랙트 실행 1. 스마트 컨트랙트 컴파일 스마트 컨트랙트를 배포하기 위해서는 우선 배포하고자 하는 소스코드가 존재하여야 한다. 여기서는 Solidity를 사용해 아래와 같은 스마트 컨트랙트를 작성하였다. Solidity와 관련된 문법 및 스마트 컨트랙트 작성과 관련된 내용은 추후 다루도록 하고 지금은 스마트 컨트랙트의 배포와 실행에 초점을 맞춰보고자 한다. /* solidity로 작성된 스마트 컨트랙트 */ // SPDX-License-Identifier: MIT pragma s..

    Ethereum/이더리움 - private 네트워크 RPC 설정하기

    이번 포스팅에서는 블록체인 익스플로러(Blockchain Explorer)를 만들기 위해 프라이빗 블록체인 네트워크에서 RPC를 설정하는 방법에 대해 알아보고자 한다. 블록체인 익스플로러는 기본적으로 특정 블록체인 네트워크에 대한 검색 엔진이다. 대표적인 예로 Blockchain.com 사이트에서 제공하는 explorer가 있는데 사용자는 해당 사이트에서 특정 블록체인 및 지갑 주소의 거래와 관련된 다양한 정보들을 조회할 수 있다. 우선 geth를 사용해 프라이빗 네트워크를 구축한 다음 web3 라이브러리를 사용해 해당 네트워크 상의 블록 정보들을 조회할 수 있도록 만들어 볼 예정이다. 블록체인 익스플로러 사이트를 만들어보기 위한 기본적인 설정 작업이라고 생각하면 될 것 같다. puppeth..