이 글은 truffle, solidity를 활용한 스마트 계약 개발환경 구축 및 구현 방법을 간략히 설명한다.
머리말
일반적으로 계약은 다자간 요구사항들을 만족하는 컨센서스(합의) 절차와 가치 교환 알고리즘이 포함된 프로그램이다. 다음 그림은 이를 잘 보여준다.
일반적인 계약 구조
스마트 계약 개발 언어들
여기서는 솔리디티 언어를 사용해 간단한 스마트 계약 프로그램을 개발하고, 이를 배포해 본다.
개발환경 설치
다음과 같이 개발환경을 설치한다.
sudo npm install -g truffle
truffle init
다음과 같이 솔리디티 언어로 코딩한다. 자세한 내용은 여기를 참고한다.
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.7.0 <0.9.0;
contract Hero{
address owner;
string hero;
constructor(string memory _hero)
{
owner=msg.sender;
hero=_hero;
}
function setHero(string memory _hero)public
{
require(msg.sender==owner,"Not the owner");
hero =_hero;
}
function getHero() public view returns(string memory)
{
return hero;
}
}
truffle-config.json 파일을 다음과 같이 생성한다.
module.exports = {
compilers: {
solc: {
version: "0.8.1",
}
},
};
다음과 같이 컴파일한다.
truffle compile
chmod +x ganache-2.5.4-linux-x86_64.AppImage
해당 파일을 실행하고, 퀵스타트 버튼을 클릭한다. 10개의 월렛이 리스트될 것이다.
module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 7545,
network_id: "*"
}
},
compilers: {
solc: {
version: "0.8.1",
}
},
};
레퍼런스
댓글 없음:
댓글 쓰기