ICON 에서 DApp을 만드는데요…

nanaones
B!ock.Chain
Published in
6 min readMay 10, 2019

ICON관련 글을 쓰다보니, 여차저차 질문을 받게 됩니다. 받았던 질문들과 그 답변을 모아보았습니다.

개발 관련된 질문도 있고, ICON의 정책에 관련된 질문도 있었습니다.

정책이나 개발 관련된 질문에 대한 저의 답변은 현재 상황(2019/05/09) 기준으로 나온 황서 & 개발문서 기준입니다.

질문 List

개발 관련 내용

callBuilder / calltransactionBuilder 차이를 알려주세요.

eventlog에 pass 안해놓으면?

eventlog 를 무리하게 만들어서 네트워크에 부하를 주면 어떻게 되나요?

DiD는 발급되고 있는가 ?

정책 & 황서 관련 내용

개인간의 거래에도 virtual step을 사용할 수 있나?

황서에 있는 위임 보상이란 어떤걸 의미하는가?

그렇다면 DApp도 위임을 받을 수 있나?

개발관련 내용

개발과 관련된 질문과 답변을 모아놓았습니다.

callBuilder / calltransactionBuilder 차이를 알려주세요

  • CallBuilder : read only 함수를 호출하기 위한 메시지 인스턴스 생성합니다.
  • CallTransactionBuilder : “Call” type transaction 을 위한 메시지 인스턴스 생성합니다.
    transaction type 은 call, deploy, message 3가지가 있으며, 아래의 공식문서 주소를 통해 더 자세한 내용을 확인하실 수 있습니다. https://www.icondev.io/docs/json-rpc-specification#section-icx_sendtransaction
  • “call” type 트랜잭션은 스코어 함수 호출에 사용됩니다.

eventlog에 pass 안해놓으면?

  • 파이썬 문법상 메서드는 마무리가 되어야하기 때문에, 메서드를 마무리 하지 않으면 문법에러가 발생합니다.
에러납니다…

잘 안보일까봐, 확대해보면, 아래와 같은 메세지인 것을 확인할 수 있습니다.

"message": "expected an indented block (@@@@.py, line 20)"

line 20은 딱 pass 를 지운 다음 매서드입니다.
pass가 없기 때문에, 메서드가 종결되지 않아서 나는 에러입니다.

eventlog 를 무리하게 많이 만들어서 네트워크에 부하를 주면 어떻게 되나요?

  • eventlog 의 index 수는 최대 3개 입니다.
    3보다 많은 수를 기입하여도 Deploy되지 않습니다.

그냥 index의 개수를 늘려서 Deploy 한 경우 아래와 같이,

“message”: “indexed arguments are overflow: limit=3"

라는 에러메세지를 확인 할 수 있습니다.

아래는 제가 이전글에서 사용했던 Web DApp을 만들었을때 아키텍쳐입니다.

ICON Service는 ICON 에서 SCORE(아이콘의 스마트컨트랙트)의 생명주기를 관장하는 모듈입니다.

icon_score_base.py 내에

INDEXED_ARGS_LIMIT = 3

현재, 위와같이 설정 되어 있기 때문에, 현재는 3이상의 수를 입력하여도 반영되지 않고, Exception이 발생합니다 .

DiD는 발급되고 있는가 ?

현재 열심히개발중이라고 하십니다. [링크 ]

  • 문의 결과, 5월 초 ~ 중순 즈음에 배포될 예정입니다.

정책 & 황서 관련 내용

ICON의 황서와 정책에 대한 질문을 모았습니다.

개인간의 거래에도 virtual step을 사용할 수 있나?

  • Virtual Step은 SCORE 주소로 보내집니다.
    현재는 SCORE 가 수수료를 지불하는것이 아닌, 사용자가 100% 지불하게 되어있습니다. 하지만, 조만간 있을 FEE 2.0 에서 사용자가 수수료를 100% 지불하는 현 체제에서 사용자와 SCORE가 수수료를 분담 할 수 있는 정책이 발표 됨과 동시에 시행될 것 입니다.
  • 수수료 납부의 주체가 현 사용자 100%에서 SCORE와 사용자로 변경되고,그 비율까지 조정할 수 있게 되는 것 입니다.

앞에서 말했듯, SCORE로 Virtual Step이 지급되기때문에 개인간의 거래에는 사용될 수 없습니다.

만약, 사용한다 하더라도 패널티를 받을 것으로 보입니다.

출처 :ICON 황서[링크]

황서에 있는 위임 보상이란 어떤걸 의미하는가?

황서의 위임 보상에는 두 가지 종류가 있었습니다.

1. 대표자 위임 보상

  • 대표자에게 지분을 위임하고 있을때, 지분의 위임에 대한 보상을 의미합니다. 쉽게말해, 대표자에게 위임한 양에 따라 받는 보상입니다.

2. DApp 위임 보상

  • DApp 에게 지분을 위임하고 있을때, 지분의 위임에 대한 보상을 의미합니다. 쉽게말해, DApp에게 위임한 양에 따라 받는 보상입니다.

그렇다면 DApp도 I-Score를 위임을 받을 수 있나?

  • 네, DApp도 위임받을 수 있습니다.

ICON과 관련된 추가적인 질문사항이 있는 경우, ICON의 공식 개발자포럼 혹은 페이스북 그룹에 질문하시면 답변을 얻으실 수 있습니다.

ICON 개발자 포럼

아이콘 페이스북 그룹

그리고, 마지막으로

ICON에 대한 정보를 얻을 수 있는 유투브 채널입니다.

--

--