<<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' 카테고리의 다른 글

eth 환경에서 smart contract 를 올려보자 truffle 셋팅, upload  (0) 2019.04.02
docker 를 활용한 private test net 운영  (0) 2019.02.21
Solidity 정리  (0) 2019.01.30
블록체인 정리  (0) 2018.11.02
블록체인 용어 정리  (0) 2018.10.26
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.


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);
        }
    };


블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

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
docker 를 활용한 private test net 운영  (0) 2019.02.21
Solidity 정리  (0) 2019.01.30
블록체인 정리  (0) 2018.11.02
블록체인 용어 정리  (0) 2018.10.26
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.