Ethereum 기반 블록체인을 구축할 수 있는 Kaleido를 만져 보았다

가이 우물



Ethereum 기반 블록체인을 구축할 수 있는 AWS의 서비스입니다.
현재는 무료로 시도할 수 있습니다.

튜토리얼



※AWS 계정 필요

Kaleido 소개



아래 링크에서 "Continue to Subscrbe"를 수행합니다.
htps : // 아 ws. 아마존. 코 m / 마르 tp ぁ 세 ​​/ p / B07 CSLDS7R

이후는 화면에 따라, Kaleido의 계정 작성등을 실시해 주세요.

블록체인 구축



Create Environment
이름, 공급자, 합의를 지정합니다. 이번에는 Sample, Quorum, Raft를 지정했습니다.


컨센서스 알고리즘에 대해서는 아래가 상세합니다.
Raft는 블록 생성 시간이 짧고 일반적인 네트워크에서의 평균 블록 생성 시간은 1초 미만이다.
ぇtps : // 이오 / 콘센스 s-A l 고리 thms- Poa-i bft-r-r ft /

MAINNET ANCHOR
이대로 FINISH합니다.


노드 만들기



노드의 이름을 설정합니다.


App Credential 만들기



노드 생성 화면에서 Generate additional credential을 선택합니다.


NAME 설정


사용자 이름과 암호가 발급되므로 메모


truffle에서 배포까지



truffle 설치


npm install -g truffle

프로젝트 폴더 만들기


mkdir truffleProject && cd truffleProject

프로젝트 초기화


npm init 때의 entry point는 truffle.js를 설정했습니다.
truffle init 
npm init

계약 작성



이후에는 Visual Studio Code를 사용하여 작업했습니다.
contract 폴더에서 SimpleStorage.sol을 만들고 다음 코드를 작성합니다.

SimpleStorage.sol
pragma solidity ^0.4.23;

contract SimpleStorage {
    uint public storedData;

    constructor(uint initVal) public {
        storedData = initVal;
    }

    function set(uint x) public {
        storedData = x;
    }

    function get() view public returns (uint retVal) {
        return storedData;
    }
}

마이그레이션 파일 작성



migrations 폴더에서 2_deploy_simplestorage.js를 만들고 다음 코드를 작성합니다.

2_deploy_simplestorage.js
const SimpleStorage = artifacts.require("SimpleStorage");

module.exports = function (deployer) {
  deployer.deploy(SimpleStorage, 123);
};

Web3 설치



※1.0계에서는 truffle.js로 에러가 발생해, 동작하지 않았습니다.
npm install [email protected] --save

네트워크 설정



truffle.js를 다시 씁니다.

truffle.js
var Web3 = require('web3');

const endpoint = "";
const user = "";
const pass = "";

module.exports = {
  networks: {
    sample_node: {
      provider: new Web3.providers.HttpProvider(endpoint, 0, user, pass),
      network_id: "*", // Match any network id
      gasPrice: 0,
      gas: 4500000
    },
  }
};


endpoint는 작성한 노드의 Details에 대한 "RPC ENDPOINT"를 입력합니다.
user와 pass는 방금 만든 credential의 값을 입력합니다.

sh 만들기



RAFT 컨센서스를 실행하는 Quorum 네트워크는 truffle에서 배포가 느리므로 셸을 만들어 해결합니다.

프로젝트 바로 아래에 truffle_migrate.sh를 만듭니다.

truffle_migrate.sh
#!/bin/bash
truffle migrate --network sample_node --reset > /dev/null &
sleep 1
set -x
truffle migrate --network sample_node --reset


계약 배포


chmod +x truffle_migrate.sh
./truffle_migrate.sh

계약이 배포되었는지 확인



KALEIDO Block Explorer에서 확인할 수 있습니다.



계약을 만져보세요


truffle console --network sample_node

저장된 값 확인
SimpleStorage.deployed().then(function(instance){return instance.get()});
> BigNumber { s: 1, e: 2, c: [ 123 ] }

상태 변수 업데이트
SimpleStorage.deployed().then(function(instance){return instance.set(234)});

다시 저장된 값 확인
SimpleStorage.deployed().then(function(instance){return instance.get()});
> BigNumber { s: 1, e: 2, c: [ 234 ] }

요약



Kaleido를 사용하여 자체 블록체인을 만들 수 있었습니다.
Raft는 정말로 빨랐기 때문에 사용해 보려고 생각했습니다.

참고



KALEIDO - Docs
h tp // // 안녕하세요. 아니. 이오 / 도 cs / 도 cs / 칭찬 /
Connecting with Truffle
h tp : // / 안녕하세요. 아니. 이오/도 cs/도 cs/t 루 fぇ/

좋은 웹페이지 즐겨찾기