◆ 네트워크에 컨트랙트 배포
▶ 네트워크에 컨트랙트 배포 옵션
● 이더리움 지갑으로 수동 배포
● geth의 대화형 콘솔에서 터미널 명령으로 배포
▶ 배포 과정
● 고급 언어로 작성된 컨트랙트는 EVM 바이트코드로 컴파일되고 배포 트랜잭션을 통해 네트워크에 배포
● 배포 트랜잭션은 컨트랙트 EVM 바이트코드를 포함하고 네트워크에 있는 로컬 전체 노드는 바이트 코드를 실행
● 배포 트랜잭션은 네트워크 전체에 전파되고 채굴 노드는 네트워크 전체에 복제되는 새 블록에 바이트 코드를 포함시킴
● 배포 트랜잭션은 다른 트랜잭션과 비슷하지만 이더나 데이터가 아닌 EVM 바이트코드를 블록체인에 저장
▶ 메타 마스크를 통해 노드 없이 배포하기
● 메타 마스크
● 외부 이더리움 노드에 연결하는 크롬 확장 프로그램입니다.
● 이더리움 소프트웨어를 설치하거나 관리하지 않고도 퍼블릭 네트워크에 컨트랙트를 배포하고 활용할 수 있음
● 스마트 컨트랙트를 지속적으로 개발하지 않거나 개발을 재개할 때마다 지갑 또는 Go 이더리움 클라이언트를 업데이트하고 블록체인을 다시 동기화해야 하는 불편함을 원하지 않을 때 특히 유용
● 메타 마스크 설치: http://mng.bz/8JzB
● 메타 마스크 실행
● 메타 마스크 네트워크 변경 – 네크워크를 눌러서 보기/숨기기를 이용해서 테스트 네트워크를 화면에 출력해서 변경
● 계정 불러오기
● 계정에 이더받기
● faucet.metamask.io/
● Ropsten Ethereum Faucet
● https://faucet.dimensions.network/
● 배포
● Remix IDE 에 코드 작성
pragma solidity ^0.4.0;
contract SimpleCoin {
mapping (address => uint256) public coinBalance;
event Transfer(address indexed from, address indexed to, uint256 value);
constructor(uint256 _initialSupply) public {
coinBalance[msg.sender] = _initialSupply;
}
function transfer(address _to, uint256 _amount) public {
require(coinBalance[msg.sender] > _amount);
require(coinBalance[_to] + _amount >= coinBalance[_to] );
coinBalance[msg.sender] -= _amount;
coinBalance[_to] += _amount;
emit Transfer(msg.sender, _to, _amount);
}
}
● 배포 옵션 변경
'IT 초보코딩의 세계 > 블록체인' 카테고리의 다른 글
블록체인 Solidity(이더리움 가상 머신, 계약 방법, 계약 구성요소 ) 1장 (2) | 2023.08.29 |
---|---|
블록체인 탈중앙화 앱(리믹스 솔리디티를 이용한 Dapp 구현) 3장 (1) | 2023.06.28 |
블록체인 탈중앙화 앱(탈중앙화, Dapp) 3장 (8) | 2023.06.23 |
블록체인이란?(블록체인과 이더리움 아키텍쳐) 2장 (8) | 2023.06.08 |
블록체인이란?(블록체인과 분산원장 기술, 거래과정, 특징) 1장 (8) | 2023.06.07 |
댓글