<<truffle 셋팅, 업로드>> ()


[환경설치]

# npm install -g solc@[version] ## solidity 버전에 맞는 다운로드

[abi, bin 파일 생성]

# solcjs -o ./deploy/ --bin --abi --optimize CustomSolidity.sol --overwrite


[web3j ~.java 파일 생성]

# web3j truffle generate --javaTypes ./build/contracts/CustomSolidity.json -o [project-src]/src/main/java -p [package-name]


[truffle 사용한 solidity 배포] 

-truffle.js 파일에 호스트와 배포정보가 입력되어있어야 한다.


# truffle migrate --reset --network development

# truffle compile --all




'block-chain' 카테고리의 다른 글

docker 를 활용한 private test net 운영  (0) 2019.02.21
Solidity 정리  (0) 2019.01.30
블록체인 정리  (0) 2018.11.02
블록체인 용어 정리  (0) 2018.10.26


SDK 도입과 활용에 대한 이해

  1. 왜 SDK 를 써야 하는가 ?
  2. iframe 을 사용하는 이유는 ?
  3. 부모창 측의 송수신 방법
  4. 자식창 측의 송수신 방법

1. 왜 SDK 를 써야 하는가 ?

CORS (Cross-Origin Resource Sharing) 비교적 최근 브라우져는 보안 상의 이유로 외부 출처의 컨텐츠를 가져오는데 제약을 둔다. 외부 사의 컨텐츠를 사용하는 중계서비스 의 특성상 이는 감수해야 할 이슈이며, 이를 회피하기 위해 외부사는 SDK를 사용하여 본 서버 와 통신을 한다.

2. iframe 을 사용하는 이유는 ?

중계서비스의 특성 상 외부 게임을 내부로 런칭 한다. 테두리에는 중계사, Portal 이 있고, 내부에 컨텐츠 웹게임이 노출되는 형태로 제공한다.

3. 부모창 측의 송수신 방법

부모창의 송수신

$(document).ready(function() {
    //addEventListener 로 자식창에서 발생하는 이벤트를 해당 function 으로 받겠다는 선언을 한다. 
    window.addEventListener('message', _receiveMessage, false);  
});

// 수신 :: 이벤트 발생시 실행시킬 callback function 을 지정한다.
    var _functions = {
        'matchedFunction' : _matchedFunction
    };
    function _receiveMessage(event) {
        var postMessageData = event.data;
        if (!postMessageData) {
            return;
        }
        var targetSrc = document.getElementById("gameIFrame").src;
        if (targetSrc === undefined || targetSrc.indexOf(event.origin) !== 0) {
            return;
        }

        var postMessageDataObject = _parseRequest(postMessageData, event.origin);

        if (!postMessageDataObject.header) {
            return;
        }

        var functionName = postMessageDataObject.header.functionType; // 호출할 function name
        _functions[functionName](postMessageDataObject); // 실행할 function
    }
    function _matchedFunction(postMessageData) {
        var ver = postMessageData.head.version;        
        $.ajax({
            url: "/sdk/" + ver,
            type: 'POST',
            data:JSON.stringify(postMessageData),
            dataType: "json",
            timeout: 5000,
            contentType: "application/json; charset=utf-8"
        }).done(function(response) {            
            document.getElementById("gameIFrame").contentWindow.postMessage(response, postMessageData.body.requestOrigin);
        }).fail(function(err) {
            console.log(err);
        });
    }

 // 송신 :: 서버를 호출해 받은 response 를 자식 iframe 에 전송한다. 
 document.getElementById("gameIFrame").contentWindow.postMessage(response, postMessageData.body.requestOrigin);

4. 자식창측의 송수신 방법

// 우선 sdk 를 import 한다
<script src="/js/sdk/sdk.js"></script>
    // 선언
    var sdk = new SDK();
    // 송신 :: startFunction의 parameter 에 송신할 정보를 넣는다.
    // 수신 :: callbackFunction 에 수신할 정보와 처리할 방법을 넣는다.
    sdk.startFunction(document.getElementById('param1').value, callbackFunction);  
    function callbackFunction(data, err) { 
        if (!err) {
            alert(data);
        }
    };


docker  를 활용한 private test net 운영

[구성]

#{ipaddr} 에 geth-contract-dev docker 구성. 

>sudo docker exec -it geth-contract-dev bash

> ./root/geth/geth-start.sh

[접속]

>geth attach rpc:http://{ipaddr:port}



'block-chain' 카테고리의 다른 글

eth 환경에서 smart contract 를 올려보자 truffle 셋팅, upload  (0) 2019.04.02
Solidity 정리  (0) 2019.01.30
블록체인 정리  (0) 2018.11.02
블록체인 용어 정리  (0) 2018.10.26

+ Recent posts