나도 dApp 개발해보자 (3) - 스마트 컨트랙트 맛보기 > 개발 기획

체인톡 (ChainTalk.io) - 이더리움 커뮤니티

블록체인 소개자료4
암호화폐 비판에 대한 반론
dapp 개발 예제로 배우기 사이트 (한글)42

1  이더리움  비트코인  and  블록체인  Dapp  ico  xyA0 

 

개발 기획

나도 dApp 개발 | 나도 dApp 개발해보자 (3) - 스마트 컨트랙트 맛보기

페이지 정보

작성자 atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물  (50.♡.129.♡) 작성일17-03-18 06:57 조회23,310회 댓글115건

본문

나도 dApp 개발해보자 (3) - 스마트 컨트랙트 맛보기



 


 

코딩 인생 40년. 이름은 김증자. 

코딩에 작은 역할은 있을지 몰라도 

중요치 않은 역할이란 없습니다.

 

 

무언가 이루어 보겠다는 강렬한 의지라는 

신발에 몸을 내 맡기고

 

 

무아지경에 빠졌을 때 비로소 희열이라는 열매를 딴다는

그 증~신(-정신), 그것이 바로 코딩의 증~신인 것입니다.

 

 

dApp 은 기본적으로 스마트 컨트랙트 + 사용자 인터페이스 입니다.

사용자 인터페이스를 만들기 위해서 HTML/CSS/Javascript 을 사용합니다. 

그리고 비지니스 로직과 데이타를 저장하기 위해서 스마트 컨트랙트를 사용합니다. 

스마트 컨트랙트야말로 중앙서버 중심의 인터넷 어플리이션 개발 모델과 

비교해서 가장 다른 부분입니다.

 

 

그래서 일단 이 스마트 컨트랙트가 

어떻게 생겼는지 감부터 잡아봅시다. 

 

 

 

제일 단순하지만 로직과 데이타가 다 들어 있는 컨트랙트 하나를 골랐습니다. 

솔리디티 메뉴얼에 제일 처음 나오는 컨트랙트입니다.

블록체인에 어떤 정수값을 저장해 두었다가 

이를 다시 불러올 수 있도록 하는 컨트랙트입니다.

 

 

 

pragma solidity ^0.4.0; 

 

contract SimpleStorage {

    uint storedData;

 

    function set(uint x) {

        storedData = x;

    }

 

    function get() constant returns (uint) {

        return storedData;

    }

}

위의 내용은 아래 링크에서 파일로 다운 받을 수 있습니다.




하나씩 쪼개서 살펴봅시다.

pragma solidity ^0.4.0; 

pragma 라는 것은 

컴파일러가 어떤 언어와 버전을 기준해 

컴파일해야 할 지 알려주는 부분입니다. 

 

 

(* 컴파일 : 인간의 프로그래밍언어를 

컴퓨터가 이해할 수 있는 바이트코드로 번역해주는 것  

이 경우에는 인간이 코딩한 솔리디티 코드를 

바이트코드로 번역해주는 것을 의미합니다.)

 


pragma 뒤에 나와있는 solidity ^0.4.0;

은 solidity 버전을 말하며 

이 버전을 기준으로  

아래에 있는 코드를 컴파일하라고 

명령하는 것입니다. 

 

 

solidity 는 이더리움 스마트 컨트랙트를 

쉽게 코딩하기 위해서 만들어진 상위 언어입니다. 

 

 

솔리디티 이외에도 몇 가지 다른 언어가 더 있지만, 

현재 가장 많이 쓰이고 있습니다.

 

 

솔리디티는 자바스크립트와 유사한 형식을 가지고 있지만, 

가장 특징적인 것은 자바스크립트와는 달리 정적으로 고정된 언어 

(statically typed language) 라는 점입니다. 

이게 무슨 말이냐... 

변수를 선언할 때 그 변수가 어떠한 타입인지  

미리 설정해야 된다는 것입니다. 

다른 말로 하면 컴파일 타임에서 변수의 타입이 알려진다는 것이죠. 

이 점에 대해서는 이후에 좀 더 자세히 설명하겠습니다.

 

 

(* 변수란 : 코딩은 많은 함수들로 이루어져있습니다. 

변수란 이 함수에 쓰여지는 요소들을 말합니다. 

쉽게 이야기해서 2x+7=y  이라는 함수식에서 

숫자를 입력할 수 있는 x 와 y 가 바로 변수들입니다.

그런데 수학과는 달리 정적 프로그래밍 언어에서는 변수의 타입(TYPE, 형태)도  

지정을 해줘야 합니다. 

변수에는 숫자도 있고 문자도 있고 

숫자도 실수도 있고 정수도 있는데 

바로 이 종류들을 변수의 타입(TYPE, 형태) 이라고 합니다.

Solidity 의 경우에는 변수가 어떤 형태인지

그 형태를 지정을 해줘야 한다는 것입니다.)

 

 

  

하나의 컨트랙트는 다음과 같이 컨트랙 선언문에 의해 정의됩니다.

 

( * 선언문이란 이 컨트랙트가 어떤 내용의 컨트랙트인지 

컴퓨터한테 알려준다는 이야기입니다. 

이런이런 내용이다라고 컴퓨터한테 선언한다는거죠. 

그래서 이 선언문 {   } 안에 쓰여있는 내용대로 

컴퓨터보고 실행하라는 이야기입니다.)

 

 

 

contract SimpleStorage {

 

}

 

즉, 위의 코드는 

SimpleStorage 라는 이름의 컨트랙트을 선언하고 

그 컨트랙트의 내용은 "{ .... }" 안에 정의된다는 

의미입니다.

 

 

 

    uint storedData; 

 

블록체인 위에 storedData 라는 

어떤 상태 또는 값을 저장하기 위한

변수를 선언합니다.

 

 

storedData 앞에 있는 uint 는 

이 storedData 값이 

unsigned (부호없는) integer(정수값) 이라는 것이고, 

이것을 줄여서 uint 가 되는 것입니다. 

즉, storeData 라는 변수에는 부호없는 정수값만 

들어가야 한다는 이야기입니다. 형태(TYPE)를 

정해주는 것이죠. 

그리고, 그 변수의 크기는 256 비트로 

정해져 있습니다.

 

 

 

이와 같이 모든 변수를 선언할 때 

항상 그것의 타입을 선언해야 하는 언어를 

'정적으로 타입된 언어'라고 부릅니다. 

 

 

변수의 타입이 정해져 있으니 

다른 타입의 값을 거기에 집어 넣게되면 

오류를 발생됩니다.

 

 

 

예를 들어

 

storedData = 100;

 

이라고 하는 것은 맞지만, 

 

storedData = "백"

 

이라고 하는 것은 오류입니다. 

 

 

storedData는 

부호없는 정수값(uint)으로 선언된 변수이므로

"백"과 같은 문자열을 입력할 수는 없습니다.

 

 

여기서 한가지 더 주목해야 할 점은 

storedData 라는 변수가 컨트랙트의 메인 {...} 안에 

바로 들어와 있다는 것입니다.

 

 

이렇게 메인 {  } 에 선언되어 있는 변수는  

해당 컨트랙트 안에서는 어디서나 가져다 

써먹을 수가 있습니다. 전역변수 (Global Variable)라고 부르죠.

 

 

 

    function set(uint x) {

        storedData = x;

    }

 

첫번째 함수가 나왔습니다. 

 


 

function 은 함수라는 뜻입니다. 

function 옆에 있는 set 은 이 함수의 이름을 의미합니다. 

set 의 (  ) 안에는 사용자로부터 입력받을 x 값이 

타입과 함께 선언되어있습니다. 

 

 

이 컨트랙트 프로그램이 실행되면 

사용자는 이 set 함수에 uint 형태의 x 값을 

입력하게 될 것입니다. 

 

 

x 값에는 uint 형태의 숫자들 

예를 들어 100, 200, 320 이런 값들을 

사용자들이 입력하게 될 것입니다. 

 

 

함수 set 은 이 입력된 값 x 를 받아서 

{   } 안에 있는 storeData 에 

저장할 것입니다. 

(그리고 storeData 변수는 앞에서  

이미 선언되었기 때문에 

여기에 바로 갔다 쓰는 겁니다.) 

 

 

마지막으로 다시 한번 

정리하겠습니다. 

 

 

set(uint x) 에서 (uint x) 부분은 

사용자로부터 x 라는 값을 받는데, 

그 타입은 uint 라는 것이지요. 

이것은 앞에서도 말씀드렸듯이 

256비트 크기의 부호없는 정수여야 합니다 . 

 

 

함수 set 은  

이렇게 사용자로부터 받은 x값을 

변수 storedData 에 집어 넣습니다. 

 

 

storedData = x; 

 

 

이 부분에서 "=" 는 무엇과 무엇이 같다는 의미가 아니고 

"=" 의 오른 쪽 값을 왼 쪽에 변수에 집어 넣으라는 뜻이라고

이해하면 됩니다. 

 

  

이렇게 storedData 에 x 값을 집어 넣기만 하면, 

이 값은 블록체인에 기록(저장)되게 됩니다.

 

 

자 블록체인에 값을 저장했습니다. 

신나죠?

 

 

그 다음에는 

이렇게 입력한 값을 가지고 

뭘 하려고 할 겁니다. .

 

그것이 바로 다음 부분입니다. 

 

 

 

바로 전역변수 storedData 의 입력된 값을 

불러 오기 위한 함수입니다.

  

    function get() constant returns (uint) {

        return storedData;

    }

 

 

앞부분을 자세히 따져보면 

 


 

 

 

앞에서 사용자가 입력한 값을 저장할 때 

사용한 set 함수와 거의 비슷합니다만

 

  

첫번째 차이점은 get 옆의 ( ) 안에 

입력값이 없습니다. 

 

 

만일 사용자가 여러 값을 입력하여 

값을 입력할 변수가 여러개 필요한 경우에는 

그 중에서 어느 값을 가져올지 지정할 수도 있지만 

 

 

우리가 다루고 있는 이 예제에서는 

사용자가 입력 할 변수값이 storedData 하나 뿐이므로  

굳이 입력값을 쓸 필요 없이 get 옆의 ( ) 를 빈 상태로로 해서 

 

 


 

로 선언했습니다. 

 

 

또 다른 차이점은 이번에는 함수 이름 get (  )  

옆에 constant returns 라는게 보입니다. 

returns 라고 하는 것은 

값을 돌려받겠다고 선언하는 것입니다. 

 

 

즉, 이 컨트랙트 안에서는

앞으로 set 함수에서 사용자가 입력하여 저장된 값에 대해  

어떤 처리를 할 것인데 그 처리를 한 다음에 나올 결과값을 

get 함수를 이용해 돌려달라고 선언하는 겁니다. 

 

 

get 함수에서는 그 값을 돌려받을 자리 

- 곧, 변수를 만들어줘야(선언해줘야) 합니다.

 

 

그 변수는 바로 returns 옆의 (   ) 안에 

선언되어 있습니다. 

 

 


 

여기서는 돌려받을 값을 

uint 로 선언했습니다.  

 

 

약간 이상한 것은 타입만 선언하고 

변수명은 생략되었습니다. 

 

 

이 예제처럼 리턴할 변수가 하나이고 

특별히 그 이름을 지정해서 사용해야 할 필요가 없을 때는 

이렇게 생략할 수 있습니다.

 

 

만일 리턴할 변수가 여러 개여서, 

지정해서 사용해야 할 필요가 있을 때는

아래와 같이 됩니다. 

 

  

    function get() constant returns (uint x) {

        x = storedData;

        return x;

    }

보시다시피 위에서는 returns (   ) 안에 uint x 라고 

변수이름 x 까지 선언이 되어있습니다.

 

 

다시 정리하자면 

 

1. set 함수에서는 사용자가 값을 저장함 

 

2. get 함수에서는 사용자가 저장한 값을 

컨트랙트안에서 처리한 후에 나온 결과 값을  

돌려줌  

 

 

그럼, 

결과값을 누구한테 돌려주느냐?

바로, 이 함수를 이를 호출한 주체에게 되돌려 주는 겁니다.

 

 

이로써 우리는 하나의 완전한 컨트랙트를 완성했습니다.

블록체인에 하나의 값을 저장하고 그것을 다시 불러올 수 있는 루틴을 만들었고, 

그렇게 저장된 값은 블록체인에 계속 남게 됩니다.

 

 

그렇다면 스마트 컨트랙트가 하나 만들어졌는데, 이것을 도대체 어떻게 사용할 수 있을까요?

 

 

첫번째로 해야 할 일은 이 컨트랙트를 

블록체인 위에 퍼블리싱하는 것입니다. 

 

 

블록체인위에 올라가야 모두가 이것을 불러서 

사용할 것 아니겠습니까?

 

 

컨트랙트를 블록체인 위에 올리는 방법은 

여러 가지가 있습니다만, 

그 중에서 제일 쉬운 방법 하나를 시도해보겠습니다.

 

 

우선 해야할 일은 블록체인에 접속할 수 있는 노드가 있어야 합니다. 

노드를 생성하기 위해서는 메타마스크라는 지갑을 사용합니다. 

 

 

메타마스크는 크롬 브라우저용 이더리움 지갑입니다. 

자세한 인스톨 방법은 다음을 참고하세요.

 

http://www.chaintalk.io/archive/study/527 

 

 

만일 이미 미스트, 패러티 등의 노드 등을 가지고 있는 분들은 

그냥 그것을 사용해도 됩니다.

 

 

메타마스크를 깔고 테스트넷(Ropsten)에 연결되면 이렇게 나옵니다. 

지갑에서 "!" 아이콘을 클릭하면 테스트넷의 익스플로러 화면이 열릴 겁니다.

메타마스크 처음 깔면 테스트넷에서 쓸 2 이더가 나옵니다.

 

 

 

 

testnet.jpg (2350×1498) 

 

 

이제 이 크롬 브라우저에서 여러분이 작성한 컨트랙트 코드를 컴파일하고 

블록체인에 올릴 수 있도록, 온라인 컴파일러 사용해 보겠습니다.

 

 

 

이름은 Remix 이고 사이트는

https://ethereum.github.io/browser-solidity/ 

입니다.

 

 

처음 방문하면 이미 다른 샘플 컨트랙트이 열릴 겁니다. 

이건 그냥 두고, 새로 탭을 하나 더 열어서 위의 코드를 넣어보세요.

 

 

 

 

 

 

 

 

컴파일러 버전을 0.4.0 에 맞추고, 

Enable Optimization, Auto Compile 을 체크해 놓으면 

위의 이미지와 같은 상태가 될 겁니다.

 

 

 

그런데 왜 컴파일을 할까요?

앞에서도 설명드렸지만 다시 정리하자면 

솔리디티로 만든 코드는 인간이 이해하기 쉬운 형태이지, 컴

퓨터가 이해하는 언어는 아닙니다. 

이 언어를 바이트코드로 전환해야 비로소 컴퓨터가 이해하게 됩니다. 

블록체인에 올릴 내용은 솔리디티가 아니라 바이트코드입니다.

 

 

위의 솔리디티 코드가 바이트코드로 컴파일 되면 

다음과 같이 나옵니다.

 

 

 

606060405260438060106000396000f3606060405260e060020a600035046360fe47b1811460265780636d4ce63c146032575b6002565b34600257600435600055005b346002576000546060908152602090f3 

 

솔리디티 코드보다 매우 짧은 숫자로 전환되었습니다.

 

 

이렇게 바이트 코드로 올려진 것을 

다시 개별 컴퓨터가 받아서 실행하게 되는데, 

 

 

이 바이트 코드가 실제 돌아가는 환경은 

EVM 이라는 이더리움 가상머신에서 입니다. 

 

 

EVM 에서는 바이트코드가 다시 opcodes 단위로 

해석되어 처리됩니다. 

 

(* opcode : 보통 기계어에서 연산을 가리키는 부분의 코드 )

 

 

이 opcodes 의 리스트는 다음과 같습니다.

 

PUSH1 0x60 PUSH1 0x40 MSTORE PUSH1 0x43 DUP1 PUSH1 0x10 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN PUSH1 0x60 PUSH1 0x40 MSTORE PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x60FE47B1 DUP2 EQ PUSH1 0x26 JUMPI DUP1 PUSH4 0x6D4CE63C EQ PUSH1 0x32 JUMPI JUMPDEST PUSH1 0x2 JUMP JUMPDEST CALLVALUE PUSH1 0x2 JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x0 SSTORE STOP JUMPDEST CALLVALUE PUSH1 0x2 JUMPI PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN  

 

지금 이 opcodes 들을 바로 이해할 필요는 없습니다. 

그냥 이런 정도의 내용들이 뒤에서 작동하는구나 하는 정도로 

파악하고 넘어갑시다.

 

 

 

컴파일은 되었고, 이 바이트 코드를 

블록체인으로 올리는 것도 간단합니다.

 

 

그냥 빨간 색의 "create" 을 버턴을 누르면 됩니다. 

 

 

 

 

 

 

 

 

이렇게 컨트랙트를 블록체인으로 보내고 나면, 

다음과 같이 그 컨트랙트의 주소가 나옵니다.

 

 

 

0xc5244053eca508a11951400fc7af28738fd0ce77 

 

 

아래 그림에서 나타난 컨트랙트 주소는 지금 이 공부를 하는 사람들마다 다르게 나옵니다. 

 

 

자신의 브라우저에서 주어진 그림과 비교하여 자신의 컨트랙트 주소가 있는 위치를 확인해보면 

다른 주소가 적혀져 있을 것입니다. 

 

SimpleStorage at 의 뒷 부분을 잘 살펴보시면 거기에 나와있는 주소가  

 

바로 자신의 컨트랙트 주소입니다.

 

 

 

 

 

 

 

 

블록체인에서 블록들이 생성되려면 

10초 이상 간혹 10여분 이상 기다려야 될 때도 있습니다. 

 

 

요즈음 테스트넷에 스팸공격이 많아서 느려질 때도 있습니다. 

만일 테스트넷에 새 블록이 오래동안 잘 생성되지 않는 경우에는 

다른 테스트넷을 써야 합니다. 

kovan 이라는 새 테스트넷 환경이 있는데 이에 대해서는 다음에 설명하겠습니다. 

 

 

테스트넷이 정상적으로 돌아간다면, 

 

1-2분 후에 다음과 같이 블록체인에 컨트랙트가 올라 간 것을 확인할 수 있습니다.

 

https://testnet.etherscan.io/address/0xc5244053eca508a11951400fc7af28738fd0ce77 

 

 

위의 사이트 주소는 제가 지금 받은 컨트랙 주소이고 

 

여러분은 

 

https://testnet.etherscan.io/address/  여기 뒷부분에 

 

 

제가 받은 컨트랙트 주소인 0xc5244053eca508a11951400fc7af28738fd0ce77   대신에  

 

 

SimpleStorage at 뒷부분에 있는  

 

 

여러분이 생성한 컨트랙트 주소를 집어넣어줘야합니다.  

 

 

 

 

 

 

 

 

 

자 여러분이 코딩한 첫번째 컨트랙트가 비록 테스트넷이기는 하지만

블록체인위에 올라가서 누구나 이를 이용할 수 있게 되었습니다.

 

 

다음편에서는 이렇게 올린 컨트랙트를 dApp 에서 

어떻게 불러다 사용하는지에 대해 알아보겠습니다.

 

 

=====

 

 

여기서 숙제가 나갑니다.

그냥 눈으로 읽지만 말고 위의 가이드를 기본으로 해서 

직접 테스트넷에 본인의 코드를 퍼블리싱하고 

이 글에 댓글로 본인의 컨트랙트 url 을 올려주시기 바랍니다.

 

 

숙제를 마치신 분이 최소 10명이 될 때까지 

다음 번 가이드 포스팅을 미루겠습니다.


나도 dApp 개발해보자 (4) - 컨트랙트 엑세스

 
나도 dApp 개발해보자 (5) - 첫번째 dApp 의 완성

나도 dApp 개발해보자 (6) - TestRPC 활용

 

  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
추천 18 비추천 0

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 11,409TALK 2d19FDE5B4Cac4e1AfA54ee749C368C68c18316c

여보슈! 당신의 살림살이도 비참한 모양인데 지금 가는 곳이 어디시우? 쓸데없이 돌아다니지 말고 우리 적당으로 들어와 한 몫 보는게 어떻겠소? (역사 속의 야담 - 풍류열전)

댓글목록

minecraft님의 댓글

minecraft 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 211.♡.228.♡ 작성일

https://testnet.etherscan.io/address/0x6e9e71f8217a2575f3e17f7736ebb864ed468bf2
숙제 안 하면 연재 안 하신다는 협박에 먼저 해봅니다!
MataMask 효용이 참 좋네요.
uint 256 bits ㅎㅎ

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

마지막으로 써 본 한글 윈도우가 3.1 였던 걸로 기억합니다. ㅋㅋ 아닌가 3.0 이었나?
코인코인님 여기서 뵙게 되니 더 반갑네요.

loum님의 댓글

loum 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 167.♡.159.♡ 작성일

https://testnet.etherscan.io/address/0x03a9abfe763b162cfa0479f4bfb61187ee45b41b
metamask와 remix와 연동이 자동적으로 되네요..
metamask 주소 가져다 쓰는 것보고, 신기했습니다.

많이 배웠습니다. 감사.

Coinkorea님의 댓글

Coinkorea 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 1.♡.157.♡ 작성일

https://testnet.etherscan.io/address/0xa74a4d363c9c0a2206bd529e8ca25fd2217a378b
이해가 쏙쏙되네요ㅎㅎ 쉽게 알려주셔서 감사합니다. 직접 해보니 더 배우는 재미가 있네요 :)

나인파이프님의 댓글

나인파이프 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 210.♡.76.♡ 작성일

와 숙제도 내 주셔서 글에 대한 이해도가 높아 졌습니다.
https://testnet.etherscan.io/address/0x6b2e798c900578bc057c96d3a14c303c26c2c8de

아주 간단하게 스마트 컨트랙트를 만들수 있군요!

Arrie님의 댓글

Arrie 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 180.♡.244.♡ 작성일

https://testnet.etherscan.io/address/0x7136b7846da58280a8c1f72974a85338e223d7b4
좋은 글 감사합니다. 게으른 저에게 정말 큰 도움이 되네요.

loum님의 댓글

loum 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 208.♡.223.♡ 작성일

예제는 contract와 그 내부함수만 정의를 햇는데요..
실제 클라스를 불러서, 블럭체인에 기록하고 읽어오는 예를 보여주시면 좋을 듯 싶습니다..

WEBUS님의 댓글

WEBUS 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 121.♡.54.♡ 작성일

https://testnet.etherscan.io/address/0x53db9b2f5b2fdbec32004b6a5ec3bd878c4a4b46
숙제 끝 ^^ v 저까지 9명!
빨리 한분이 오셨으면 좋겠네요~!
어떻게 불러서 쓰는지 알면 개념이 좀 잡힐것 같기도 ^^;
그런데 testnet에서 주는 이더가 1eth 아닌가요? 본문엔 2eth라고 되어 있는데 제 지갑엔 1eth가 있네요.

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

1 eth 만 있어도 예제 실습하는 데는 문제 없을 겁니다.
그래도 욕심이 생긴다면 여기 가서 구걸하면 됩니다.
http://ipfs.b9lab.com:8080/ipfs/QmTHdYEYiJPmbkcth3mQvEQQgEamFypLhc9zapsBatQW7Y/throttled_faucet.html
자존심이 있어서 구걸은 못하겠다 그러면, 가지고 있는 글카로 채굴하세요 ㅋㅋ

백수ㅠㅠ님의 댓글

백수ㅠㅠ 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 49.♡.115.♡ 작성일

https://testnet.etherscan.io/address/0xacf84d1970fbfd955f5a293beeb07afb2a9f0a30
잘된건지 모르겠네요 컴맹이라
무작정 시작하는게 잘하는 짓일지 ㅎㅎ

tw1stxD님의 댓글

tw1stxD 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 125.♡.213.♡ 작성일

https://testnet.etherscan.io/address/0x97813825999a8be4b6edc0b25f98ab617272fd66
숙제 완료 했습니다~ 솔리디티라는 언어를 처음봐서 낯설지만 일반 프로그래밍 언어랑 비슷한것이 ㅎㅎ;;
처음으로 컨트랙트를 만들어 보니 기분이 흥분되고 앞으로 나올 강의들이 어떨지 두근두근 합니다..

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

자바스크립트와 매우 비슷합니다. 위에서 말했듯이 변수가 정적으로 선언되는 것은 다르지만요.
하지만 문법이 비슷하다는 거지 지원되는 기능은 차이가 많습니다.

푸우님의 댓글

푸우 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 180.♡.114.♡ 작성일

https://testnet.etherscan.io/address/0xf7095af4f3e5cb40cb7205ad9fc933eeb6497ed6
숙제했습니다. ^^
질문이 있는데요,
function get() constant returns (uint) { ... 여기에서 constant가 의미하는 것이 궁금합니다.

강의 너무 즐겁습니다~

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

누군가 질문하기를 바라고 일부러 constant가 무엇인지 설명하지 않았는데 푸우님이 해주셨군요.
이런 학생이 있어야 강의하는 사람이 더 긴장합니다.
내용을 진짜로 한 줄씩 다 읽는다는 것이니까요.

여기서 constant 키워드는 이 함수가 단순 읽기 함수, 즉 블록체인 상의 상태(state)를 변화시키지 않는 읽기 전용 함수라는 것을 선언하는 것입니다.
왜 이걸 굳이 선언하는가 하면, 블록체인에 트랜잭션을 보내야 말지를 dapp 프로그램이 미리 알 수 있게 하고자 함입니다.

만일 위의 get 함수에서 constant 키워드가 없다면, 이것은 상태변화를 포함하는 함수구나, 그렇다면, sendTransaction 을 실행하게 됩니다. 상태변화가 없는데 트랜잭션을 보내는 것은 바보같은 일이겠지요. 반면 constant 를 넣어 주면, 아.. 이건 읽기 전용이니 트랜잭션을 보낼 필요가 없구나 하고 알아챕니다.

다음편 글에서 이 차이를 더 명확히 보실 수 있을 겁니다.

푸우님의 댓글

푸우 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 211.♡.97.♡ 작성일

칭찬해주시니 감사합니다~~
그럼 constant 선언을 하지 않으면 함수단위로 트랜잭션이 작동되는 거군요.
점점 더 흥미진진합니다.

스마일리님의 댓글

스마일리 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 122.♡.20.♡ 작성일

https://testnet.etherscan.io/address/0xb7b7d2c95ff7c82eaad0a01ccf359e8d708b2f93
조금 늦었습니다.
좋은글 감사합니다

아직 많이 미흡하지만, 잘따라가겠습니다.

잘모르니 물어볼것도 많지않은데요 솔리티 문법은 좀 찾아보겠습니다.
감사합니다.

추가로 보다보니 버전 0.4.0+ 을 사용하는 이유가 있나요

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

솔리디티 공식 메뉴얼이 0.4.0 기준으로 쓰여 있어서 그에 맟춘 것 뿐입니다.
예제들이 다 기본적인 문법 중심으로 이루어져 있기 때문에, 최근 버전으로 컴파일 해도 아무런 문제가 없을 겁니다.
숙제에 참여해주셔서 감사합니다.

금마님의 댓글

금마 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 113.♡.18.♡ 작성일

테스트넷 상의 이더는 정기적으로 리셋하는가 궁금하네요. 그렇지 않다면 누군가 자원봉사로 GPU 채굴 후에 기부(?)하는 방식이 괜찮을듯 해서요.

쿠룬고객님의 댓글

쿠룬고객 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 1.♡.198.♡ 작성일

https://testnet.etherscan.io/address/0xdac9f24e1b53e08ba9ed8faa7a8e3b36ca6a0081
저도 숙제했습니다ㅎㅎ 어떻게 돌아가는건지 모르겠지만 일단 해봅니다ㅎㅎ

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

당연히 불러 올 수 있어야겠지요. 컨트랙트는 블록체인상에 있고, 그 컨트랙트의 함수들을 이용하는데 사용자의 주소를 확인하거나 하는 그런 코드를 집어 넣지 않았으니까요. 각자가 실습하면서 올린 컨트랙트를 다른 사람들도 모두 다 불러 올 수 있습니다. 4편에서 감을 잡을 수 있고, 5편에서는 아 전체가 이렇게 돌아가는 구나 하는 것을 파악하실 수 있을 겁니다. 4편 숙제 통과자 10 명 빨리 채우도록 도와주세요. 5편 다 맹글어 놓았습니다.

하늘코인님의 댓글

하늘코인 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 125.♡.27.♡ 작성일

Solidity version: 0.4.0+commit.acd334c9-mod.Emscripten.clang 에서 컴파일 아이콘 밑에 아무것도 안뜨네요.
Solidity version: 0.4.11-nightly.2017.3.20+commit.57bc763e.Emscripten.clang 에서는 잘뜨네요. 다를 몇몇 버전들도 떳다 안떳다 하네요.
되는 버전으로 했습니다.
https://testnet.etherscan.io/address/0x03a9abfe763b162cfa0479f4bfb61187ee45b41b

비트랙션님의 댓글

비트랙션 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 175.♡.106.♡ 작성일

저는 왜 create 누르면 metamask 가 연동이 안될까요.

SimpleStorage at 0x9dd1e8169e76a9226b07ab9f85cc20a5e1ed44dd (memory)
주소가 이렇게 memory 상에서만 생성되고 metamask 연동이 안됩니다.
저도 테스트넷에 올려보고 싶어요.

어떻게 해야할까요~~~ 선생님 도와주세요~

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

혹시 메타마스크외에 미스트를 비롯한 다른 이더리움 노드 소프트웨어가 인스톨되어 있나요?
만일 그렇지 않다면, 시스템을 리부팅하고, 다른 것은 일체 오픈하지 않은 상태에서, 크롬에서 해당 페이지만 오픈해 보세요.
그래도 안된다면 다음 vm 소프트웨어를 깔고
https://www.virtualbox.org/
vm 을 생성해서 해보세요.
간혹 크롬에 깐 다른 익스텐션들과 충동이 나는 경우가 있는 것 같습니다.

비트랙션님의 댓글

비트랙션 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 175.♡.106.♡ 작성일

감사합니다. 재부팅한후 연동이 잘되네요.~
https://testnet.etherscan.io/tx/0x3f405c5f845ef41ef340d3f6febad1506f968b0c91cbcd1aba83e4995e66a5ff

레이리님의 댓글

레이리 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 203.♡.237.♡ 작성일

https://testnet.etherscan.io/address/0x58c7cdef30aea354a2349ec59a27d1d225702a12
모든게 다 처음이라서 흥미롭기도 하고 어색하기도 하네요. 좋은 강의 감사합니다! 잘 따라가겠습니다.

mshock님의 댓글

mshock 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 14.♡.141.♡ 작성일

저도 뒤늦게나마 따라하고 있는데 위에 비트랙션님처럼 메타마스크 연동이 안되네요. 재부팅도 해보고 이리저리 해봤지만 다른 확장프로그램하고 충돌이 나는지 저는 실패하였습니다. vm 생성하는 방법은 일단 나중에 다시 해보기로 하고 일단 눈으로만 5편까지 따라왔습니다만... 숙제를 못하고 있네요 ㅜㅠ
숙제는 다른 방식으로 성공하게 되면 그때 제출하도록 하겠습니다. ;;;

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

VM 깔아서 하는게 제일 속편합니다.
저도 지금 연재하는 내용 전부 VM 에서 돌리고 있습니다.
스택이 다른 개발환경을 구축할 때도 VM 새로 설정해서 하는게 여러가지로 심플하게 해줍니다.

용이님의 댓글

용이 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 218.♡.245.♡ 작성일

https://testnet.etherscan.io/address/0x7a9107bd01bb5f2bf7fa36a3a630dcf148c6d479
감사합니다 아톰님~
덕분에 편하게 공부하고 있습니다.

Culap님의 댓글

Culap 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 39.♡.162.♡ 작성일

https://ropsten.etherscan.io/address/0x9140a62f01d236537daad3beb1a92002b058bac6
감사합니다^^ 늦게나마 따라가고 있습니다. 조금씩 업데이트 된 부분이 있어 주소도 바꼈네요^^

Nomad님의 댓글

Nomad 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 121.♡.217.♡ 작성일

https://ropsten.etherscan.io/address/0x9854b080157110b3356425dae822c6d9fda0a6c0
감사합니다^^ 조금씩 업데이트 된 부분이 있어서 변경된 부분이 있네요.^^ 뒤에따라오시는분들 도움되시라고 남깁니다.

1. Remix에서 Auto compile 체크하더라도 Setting탭에서 자동으로 compile창이 뜨지 않습니다.(이 부분은 저만 그럴수도 있지만)
Contract탭에 가시면 Compile정보가 나옵니다.

2.컨트랙트 확인 주소가 바뀌었습니다.
https://testnet.etherscan.io/address/0x9854b080157110b3356425dae822c6d9fda0a6c0
에서
https://ropsten.etherscan.io/address/0x9854b080157110b3356425dae822c6d9fda0a6c0
으로
testnet -> ropsten 변경되었습니다.

녜보님의 댓글

녜보 쪽지보내기 홈페이지 프로필 아이디로 검색 전체게시물 아이피 183.♡.63.♡ 작성일

https://rinkeby.etherscan.io/address/0xfb3e96eff839d8d2e60d094b9546da6bb934032f
감사합니다. 덕분에 dApp, 블록체인에 대해 관심이 생겼습니다~!

mshock님의 댓글

mshock 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 220.♡.207.♡ 작성일

이전에 한번 했지만 METAMASK가 제대로 동작을 안해서 숙제를 올리진 못했습니다. 다시 환경 갖추어서 복습하면서 숙제 올립니다.
https://ropsten.etherscan.io/address/0xd7ae81293c54531323977ca86a7a78433c3e2ddf

Cazen님의 댓글

Cazen 쪽지보내기 홈페이지 프로필 아이디로 검색 전체게시물 아이피 1.♡.127.♡ 작성일

https://rinkeby.etherscan.io/address/0xd2966cc01d34bd84b9c1c4cc64c43dedb155a589

좋은 강의 감사합니다 Testnet이 이제 Ether를 바로 주지는 않네요?

뒤태지존님의 댓글

뒤태지존 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 124.♡.181.♡ 작성일

재미있게 따라하고 있습니다. 위에 Cazen 님도 말씀하셨지만 이제는 MetaMask 설치해도 1eth도 주지 않는 것 같습니다. ㅠㅜ
그냥 Ether를 사서, MetaMask 계좌로 보낸 다음에 해야되나 봅니다.

온달님의 댓글

온달 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 116.♡.85.♡ 작성일

좋은 강의 감사합니다~
Ropsten 테스트넷에 들어가도 이더가 0이네요 혹시 테스트넷에서 테스트하려고 해도 이더를 사서해야하나요?
다른 방법이 있을까요?

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 50.♡.129.♡ 작성일

Kovan 테스트넷을 선택하시고, 아래 faucet 가셔서 본인 주소 넣고 달라고 하면 줍니다.
코반이 블럭주기가 빨라서 테스트 하기 더 좋을 겁니다.
https://gitter.im/kovan-testnet/faucet#utm_source=notification&utm_medium=email&utm_campaign=unread-notifications

jackie님의 댓글

jackie 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 183.♡.216.♡ 작성일

안녕하세요.
링크에 가서 신청해서 트랜잭션은 생성이 된걸 확인했습니다.
트랜잭션이 아직 처리가 안되서 이더가 0인건가요?
트랜잭션 수행되면 1이더로 바뀌는 건가요??
꾀 기다렸는데도... 아직 처리가...ㅠ 생각보다 오래걸리는거같은...ㅠ

최허디님의 댓글

최허디 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 121.♡.128.♡ 작성일

https://kovan.etherscan.io/txs?ca=0x8a1b5d5ec93f3cc8c9512a60762cc2a351238370
. Kovan Testnet으로 테스트 ether를 신청해서 받았습니다.
고맙습니다~

beginagain1123님의 댓글

beginagain1123 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 61.♡.255.♡ 작성일

https://kovan.etherscan.io/address/0xf3bf545f6dee64dc99f2799c3edde8133be693e9
코반테스트넷에서 이더신청하면 10이더를 주네요 ㅎㅎ
강의 감사합니다~^^

달중이님의 댓글

달중이 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 69.♡.185.♡ 작성일

제가 쌩 초보라 그런데, 이런 질문도 받아주시나여?
contract SimpleStorage {
    uint storedData;
    function set(uint x) {
        storedData = x;
에서 unit storedData를 없애고, 다음에 unit storedData = x; 로 바로 unit 지정하면 안돼나요?

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

x  값은 set 함수 호출할 때 받을 것인데, 그걸 미리 알 수가 없으니
미리 storedData 에 x 를 넣어 둔다는게 말이 안되네요.

달중이님의 댓글

달중이 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 69.♡.185.♡ 작성일

답하여 주심에 감사드립니다. 질문의 뜻이 그것이 아니고요.... 다시 문의 드립니다.
contract SimpleStorage {
    uint storedData; 여기서 이 line을 없애고,
    function set(uint x) {
        unit storedData = x; 여기서 storedDate를 unit로 지정하면서 x 값을 받으면 안되나요? 즉 두 명령이 가능 한가요?

atomrigs님의 댓글

atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 24.♡.140.♡ 작성일

네 문법상으로는 변수 선언하고 값을 바로 할당해주어도 됩니다.
만일 변수가 함수 내에서만 사용되는 것이라면, 말씀하신 데로 해도 됩니다.
예제에서는 변수가 컨트랙 루트에 선언되어야 다른 함수가 이를 참조할 수 있으니, 함수 밖에 선언해야 되겠지요.
만일 이 때도 처음에 특정 값을 할당해야 할 필요가 있으면 줄 수는 있습니다.

칼짱님의 댓글

칼짱 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 121.♡.153.♡ 작성일

아니 어떻게 이렇게 쉽게 설명해 주실수 있나요? 대단합니다. 이밤에 이제야 열독하면서  이제라도 안걸 감사하게 생각합니다. 고맙습니다. 열심히 따라가겠습니다.

꼬시야님의 댓글

꼬시야 쪽지보내기 홈페이지 프로필 아이디로 검색 전체게시물 아이피 125.♡.56.♡ 작성일

늦게나마 참여하고 있습니다. 흥미진진합니다.
https://kovan.etherscan.io/address/0x743ee1a7cdcedefb34287c599e321bc912b89760

Jaiken님의 댓글

Jaiken 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 126.♡.132.♡ 작성일

https://kovan.etherscan.io/address/0x64a8b23088c7308597172bb5333b355b215e6eee
천천히 따라가 봅니다. 좋은 가이드에 감사드립니다.

레저가이드님의 댓글

레저가이드 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 61.♡.44.♡ 작성일

https://ropsten.etherscan.io/address/0x3dd5233ded23a2f0e64fe8ad2114705bb4f22ab3
느리게 적응해 가고 있습니다. 감사드립니다.

블랙홀님의 댓글

블랙홀 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 125.♡.239.♡ 작성일

https://ropsten.etherscan.io/address/0x3e88366b72ebe695b09913a8751c78ee29855371
늦게 접하고 실행해보고 있는데, 너무나 큰 도움이 됩니다.
뒤의 자료도 꼭 따라해 소화해 나가겠습니다. 감사합니다.

안올드님의 댓글

안올드 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 110.♡.47.♡ 작성일

https://ropsten.etherscan.io/address/0x0fe3db0732da505816ebd957c87a6f0a22c74e16
지금은 위화면이 많이 바뀌어 컨트랙트 주소 알아내는데, 좀 어려웠네요.. 그래도 재미있고, 소중한 글 올려주셔서 감사합니다. 꾸벅!!

바람나무님의 댓글

바람나무 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 125.♡.89.♡ 작성일

https://ropsten.etherscan.io/address/0x422cd151b7d249aa169abfcab51201b62e5f2fbb
이건 일단 테스트용 스마트 컨트랙트입니다.
저희는 블록체인 스마트 컨트랙트로 서비스를 기획중이라서 사용자들에게 번거롭게 MetaMask 를 설치하도록 안내하고 싶지는 않아서 관심을 두지 않았습니다만...
컨트랙트의 특정 function 을 실행할때 gas 를 소모해야 하는 경우에 계정을 unlock 시켜줘야 하잖아요? 그러면 결국 저희가 만든 사이트에 wallet passphrase 를 입력해야 하는 문제가 있더군요.
보아하니 MetaMask를 설치하면 자동으로 unlock 을 시켜주는 모양이군요. 결국 대안은 아쉽지만 MetaMask 뿐이네요.

체인지메이커님의 댓글

체인지메이커 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 222.♡.8.♡ 작성일

https://ropsten.etherscan.io/address/0xbb9ba61bbacc53c3c91063cd14df9731fa10cad8
신입생입니다. 차근차근 따라가보겠습니다. 블록체인 공부하는데 큰 도움을 얻고 있습니다. 감사합니다.

뉴욕님의 댓글

뉴욕 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 175.♡.7.♡ 작성일

https://ropsten.etherscan.io/address/0x67f94955384b2e4585ae9f1a796a638387b21768
몇일 동안 안되서 이리저리 고민 고민 했습니다. 성탄절잉가 우째 되었네요.... 왜 되었지?

Paterson님의 댓글

Paterson 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 119.♡.71.♡ 작성일

https://ropsten.etherscan.io/tx/0xf4a4420b65af865c43a25c4990a6247a53d92c45731a931aad862171e36d3249
remix 컴파일이 안돼서 몇일을 헤맸어요..ㅠㅠ
그러다 깃에 html 형식으로 올려두신 예제 도움받아서 겨우겨우 해결했어요.
혹시 이 댓글 보신다면 remix 로 다시한번 compile 해봐주시겠어요?
(시간이 지나서 remix 인터페이스와 컴파일러 버전이 좀 바뀐듯 해요)

재재님의 댓글

재재 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 118.♡.25.♡ 작성일

리믹스 UI가 좀 바뀌었죠??
Settings 에서 Solidity 버전을 선택할 수 있는데, 예제의 버전(0.4.0)으로 선택하시면
컴파일시 Warning이 나지 않습니다.

매너달팽이님의 댓글

매너달팽이 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 1.♡.193.♡ 작성일

https://ropsten.etherscan.io/address/0xdc43f1067e5b838db7ce2c40fa5a0baa83369b5f
회사에서 잘 안되던게 퇴근하고 집에와서 차분하게 다시 하니깐 잘되네요.

pragma solidity ^0.4.0;

contract SimpleStorage {
    uint public storedData;
   
    function set(uint x) public {
        storedData = x;
    }
   
    function get() public constant returns (uint) {
        return storedData;
    }
}

코드는 위에 같이 쓰니깐 warning이 발생하지 않네요.

장인님의 댓글

장인 쪽지보내기 프로필 아이디로 검색 전체게시물 아이피 175.♡.3.♡ 작성일

코딩은 처음이라 아직은 서툴지만, 차근차근 따라 해보고 있습니다.
꼼꼼하신 설명과 글에 푹 빠져들고 있네요.  너무 감사드립니다.
'매너 달팽이'님께서 말씀하신대로 public으로 변수를 지정하니 warning 없이 잘 되는것 같습니다.
감사합니다.
https://ropsten.etherscan.io/tx/0xd809eb07130c8b4844cf8bf1c4e807d46e9d3576b2feb19884272d71bfa2adf2

재재님의 댓글

재재 쪽지보내기 프로필 아이디로 검색 전체게시물 댓글의 댓글 아이피 118.♡.25.♡ 작성일

리믹스 UI가 좀 바뀌었죠??
Settings 에서 Solidity 버전을 선택할 수 있는데, 예제의 버전(0.4.0)으로 선택하시면
컴파일시 Warning이 나지 않습니다.

개발 기획 목록

Total 147건 1 페이지
개발 기획 목록
번호 제목 글쓴이 날짜 조회 추천 비추천
147 기타 ICON Team에서 개발자(시니어/주니어)를 채용합니다! 느린마라토너 쪽지보내기 프로필 아이디로 검색 전체게시물 06-22 62 0 0
146 나도 dApp 개발 판문점선언 이더리움 스마트컨트랙 인기글 atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 04-30 613 3 0
145 블록체인 2.0 블록체인 같이 공부하실분!! 댓글9 인기글관련링크 코인마스터 쪽지보내기 프로필 아이디로 검색 전체게시물 01-29 1904 1 0
144 기타 dapp 개발 예제로 배우기 사이트 (한글) 댓글42 인기글 CHAINTALK 쪽지보내기 프로필 아이디로 검색 전체게시물 01-28 18527 55 1
143 블록체인 2.0 프론트엔드 개발자를 채용합니다. 인기글 스마트헌터 쪽지보내기 프로필 아이디로 검색 전체게시물 01-23 949 0 0
142 블록체인 2.0 글로벌 블록 체인 인덱스를 올바르게 여는 방법 인기글첨부파일 scryinfo 쪽지보내기 프로필 아이디로 검색 전체게시물 01-08 787 0 0
141 기타 블락체인을 활용한 인증, 서명 시스템을 구축하실 개발자분을 찾습니다 댓글1 인기글 아이투섹 쪽지보내기 홈페이지 프로필 아이디로 검색 전체게시물 12-30 1453 0 0
140 기타 늑대 컨트렉트 - 스마트 하지 못한 스마트 계약 댓글2 인기글 철학자 쪽지보내기 프로필 아이디로 검색 전체게시물 12-13 2591 2 0
139 기타 블록체인 도입결정을 돕는 플로우차트 인기글 암호화폐당 쪽지보내기 홈페이지 프로필 아이디로 검색 전체게시물 12-07 1380 0 0
138 기타 이더리움 작동원리의 이해(1) 인기글 정주해 쪽지보내기 프로필 아이디로 검색 전체게시물 11-26 3004 1 0
137 로움의 암호화폐 EOS 밋업에 관심과 참여에 감사드립니다. 댓글4 인기글첨부파일 loum 쪽지보내기 프로필 아이디로 검색 전체게시물 09-12 2408 1 0
136 쿤s의 dApp 개발 [쿤s의 dApp 개발][입문 1편] - Metamask 설치 댓글3 인기글 쿤s 쪽지보내기 프로필 아이디로 검색 전체게시물 08-29 4615 0 0
135 기타 Bounty structure 인기글 쿨맨 쪽지보내기 프로필 아이디로 검색 전체게시물 08-16 1214 0 0
134 쿤s의 dApp 개발 [쿤s의 dApp 개발] New Prologue - 솔리디티 & 스마트 컨트랙트 댓글5 인기글 쿤s 쪽지보내기 프로필 아이디로 검색 전체게시물 08-16 21342 6 0
133 로움의 암호화폐 [본인 논문공개] 튜링완전 암호화폐에서 새로운 네트워크 보안 방법 (이더리움의 가스 시… 댓글1 인기글 loum 쪽지보내기 프로필 아이디로 검색 전체게시물 08-14 2420 3 0
132 블록체인 2.0 [Announce] MUSICOIN 지갑을 MyEtherwallet 에 추가하였습니다. 댓글1 인기글 안씨아저씨 쪽지보내기 프로필 아이디로 검색 전체게시물 08-04 2862 3 0
131 기타 5분만에 트러플로 ICO하기 댓글3 인기글 철학자 쪽지보내기 프로필 아이디로 검색 전체게시물 08-04 5164 1 0
130 기타 패러티 멀티시그 지갑 공격 분석자료 인기글 철학자 쪽지보내기 프로필 아이디로 검색 전체게시물 08-04 1836 1 0
129 로움의 암호화폐 이더리움의 EEA에 회사들이 몰리는 이유 인기글 loum 쪽지보내기 프로필 아이디로 검색 전체게시물 07-22 3315 2 0
128 기타 AWS 에 2노드 프라이빗 이더리움 네트웤 구성해보기 인기글 atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 07-22 2727 2 0
게시물 검색