이더리움

    Ethereum/이더리움 - Solidity(솔리디티) function payable

    이번 포스팅에서는 스마트 컨트랙트 함수에서 사용되는 payable 속성에 대해 알아보고자 한다. Solidity 언어는 코인(coin) 혹은 토큰(token)이라는 가상화폐를 다루는 언어이다. 다른 언어들은 프로그램을 만들기 위한 언어로 탄생했지만 Solidity는 가상화폐라는 돈을 다루기 위한 언어로 탄생했기 때문에 다른 언어와는 다르게 payable이라는 키워드가 존재한다. Solidity 언어에서 payable 키워드는 이더리움 플랫폼 위에서 이더(ether)를 전송하는 스마트 컨트랙트를 작성하기 위해 반드시 사용돼야 하는 키워드이다. 즉, payable을 작성한 함수에서만 이더(ether)를 보낼 수 있고 payable을 작성하지 않은 함수에서는 이더(ether)를 보낼 수 없다. 코드를 살펴보면..

    Ethereum/이더리움 - 스마트 컨트랙트 이벤트 등록 및 백엔드에서 트랜잭션 생성하기

    이번 포스팅에서는 스마트 컨트랙트 안에 이벤트를 등록하는 방법에 대해 다루고자 한다. 이전 포스팅에서 작업한 카운터(Counter) 컨트랙트에 이벤트를 등록하는 방향으로 작업을 진행해 보겠다. 그리고 프론트에서 트랜잭션을 생성하는 것이 아닌 백엔드에서 트랜잭션 객체를 생성하고 프론트에 전달하는 방향으로 코드를 리팩토링하고자 한다. 이전 글) 2022.07.13 - [Ethereum] - Ethereum/이더리움 - 메타마스크를 통한 스마트 컨트랙트 실행 Ethereum/이더리움 - 메타마스크를 통한 스마트 컨트랙트 실행 이번 포스팅에서는 메타마스크를 사용해서 스마트 컨트랙트를 실행시켜보는 작업을 진행해보고자 한다. 위에 보이는 것과 같이 스마트 컨트랙트에 의해 동작하는 Counter(카운터)를 만들어 볼..

    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 이라는 라이브..