본문 바로가기

Blockchain16

[Solidity] payable 옵션 컨트렉트 코드에는 일반적으로 코인에 대한 전송(transfer) 및 받기(receive)에 대한 코드가 포함되어 있다. 이더(Ether) 혹은 이더 계열 토큰이 주소(address)에서 주소(address)로 이동된다. 그렇지 않을 코드도 있지만 만약 특정 주소에 토큰을 전달하고 싶거나 저장하고 싶다면 payable 옵션이 추가되어야 한다. 바꿔 말하면, payable로 선언되어야만 토큰을 주고 받을 수 있다. payable 사용 예시 아래 예제코드에서는 payable 옵션이 주소(address) 리스트를 선언할 때, 생성자(contructor)를 정의할 때, 함수 파라미터로 address를 지정할 때 사용된다. address 리스트 경우 해당 컨트렉트에서 이 리스트가 모두 토큰을 주고 받는 주소가 되어.. 2022. 3. 15.
[Solidity] fallback 함수 들어가기 앞서 참고해야할 사항이 있다. Solidity는 0.6.0 버전 이후로 fallback 함수가 receive와 fallback으로 나뉘어졌다. 하나의 기능을 세분화시켜 두가지로 나누어 놓은 것이다. 본문은 0.6.0 이후의 fallback 함수에 대해 소개하는 글임을 알린다. Fallback 함수 컨트렉트에서 fallback 함수란 하나의 디폴트 함수와 같다. 이 함수가 실행되는 케이스는 두 가지가 있다. 첫 번째는 호출한 함수가 컨트렉트 내에서 조회되지 않을 경우다. 외부에서 특정 컨트렉트를 호출했을 때, 해당 호출 주소(function identifier)가 확인되지 않으면 디폴트로 fallback 함수가 실행된다. 두 번째는 이더(ETH, ether)를 보낼 때 자동으로 실행된다. 쉽게 말.. 2022. 3. 12.
[Quorum] 쿼럼(Quorum)으로 프라이빗 블록체인 구축하기 이번 포스트에서 쿼럼(Quorum)이라는 오픈 소스 프로토콜을 통해 이더리움 기반 프로이빗 블록체인 네트워크를 구축하는 가이드를 작성하고자 한다. 우선, 쿼럼이란 자세히 어떤 프로젝트인지 살펴보자. 쿼럼(Quorum)이란? 쿼럼의 풀 네임은 ConsenSys Quorum으로 ConcenSys 사에서 제공하는 오픈 소스 프로토콜이다. 해당 패키지를 통해 개발자는 이더리움 기반 블록체인을 보다 편의성 있게 구축할 수 있다. 이더리움 블록체인의 메인넷과의 차이점이라고 하면, 쿼럼은 사용자(혹은 노드 운영자) 권한(Permission)에 따라 네트워크가 구축된다는 점(Private)으로 이더리움은 모든 사용자에게 오픈되어 있는 것(Public)과 대비된다. 덧붙여 이러한 네트워크의 특성(Private, Perm.. 2022. 3. 7.
[Ethereum] DApp과 이더리움 프로그래밍 App과 DApp IT에 대한 소식을 접하다보면 DApp이란 단어를 들어보았을 것이다. 탈중앙화 애플리케이션(Decentralized Application) 의 줄임말인 DApp은 우리가 일상에서 사용하는 App과 크게 차이가 있을까 싶을 수 있지만, 개발자 입장에서 나는 DApp과 App은 개발부터 실행까지 큰 차이가 있다고 말하고 싶다. 일반적으로 App은 사용자측에서 요청이 들어왔을 때, 웹 서버(정확히는 웹 서버와 웹 에플리케이션 서버)를 통해 해당 요청에 맞는 응답을 전해주는 원리로 동작한다. 소스에 저장되어 있는 정적 데이터를 전달하기도 하지만, 데이터베이스 서버를 경유한 동적인 데이터 처리가 많다. 간단히 말해 App은 사용자 -> 서버 -> 데이터베이스 의 흐름으로 동작한다고 할 수 있다... 2022. 3. 6.