MSIG Proposal: Nested Inline Actions

EOS42
EOS42
Jun 20 · 3 min read
Korean(한국어) and Chinese(中文) Version Below

As pioneers of EOSIO a part of our mission is to discover and remove barriers for those who follow in our footsteps. Recently we found a limitation with nested inline actions. Currently, EOSIO can only accommodate four nested inline actions. This limitation is a hindrance for complex smart contracts.

See MSIG proposal here

Take the Chintai 2.0 smart contract as an example. In order to use Bancor to transfer CHEX to EOS within a smart contract, five nested inline actions are necessary.

1. Request to convert CHEX to EOS

2. Smart contract sends CHEX to CHEX relay

3. CHEX relay sends CHEX to BNT relay

4. BNT relay sends BNT to EOS relay

5. EOS is sent to the requesting account

Unfortunately this sequence of nested inline actions is NOT possible on the EOS blockchain.

Testing, Research, Reasoning

Proposal

Link to proposal

If you would like to discuss this issue with us in further details, please come to our telegram.

EOS42 — Pioneering a Decentralized Future

作为EOSIO的先驱,为我们后人探索并消除障碍是我们的使命之一。最近,我们发现了EOSIO软件内嵌套内联操作的限制。目前,EOSIO只能容纳四个嵌套的内联操作 (nested inline actions)。此机制对复杂性高的智能合约造成了不必要的障碍。

请点击此处查看我们的MSIG提案

以 Chintai 2.0 智能合约为例。在使用Bancor智能合约将CHEX转换成EOS时,需要进行五次嵌套内联操作。

1.向智能合约请求将CHEX转换为EOS

2.智能合约将CHEX代币发送给CHEX中继合约

3. CHEX中继合约将CHEX代币发送到BNT中继合约

4. BNT中继合约将BNT代币发送到EOS中继合约

5. EOS被发送到请求帐户

不幸的是,现时来说在EOS区块链上并不能实现这一系列的嵌套内联操作。

测试,研究与推理

我们在Jungle测试网上测试了16个嵌套内联操作,并没有遇上没有任何问题。我们也联系了EOSIO软件的专家来找出为什么当初把阈值设置成4个操作。 他们指出:没有任何具体原因。需要指出的是,将阈值提高将不会产生任何负面效应。此机制之更改将会使EOS区块链更加兼容复杂性高的智能合约。

关于此提案

在没有任何理由不将此阈值提高的情况下,我们上传了一个msig提案来将嵌套内联操作的限制提高到6个操作。

-提案之链接-

如果您想进一步详细讨论这个问题,请来我们的电报

主页 | MEDIUM | 推特TWITTER | 电报TELEGRAM | 领英LINKEDIN

EOS42 — 开创一个去中心化的未来

MSIG 제안: Nested Inline Actions (중첩된 인라인 액션) 확장

MSIG 제안서 보기

Chintai 2.0 스마트 컨트랙트를 예로 들어 보겠습니다. 스마트 컨트랙트 내에서 Bancor 를 사용하여 CHEX를 EOS로 전송하려면, 다음과 같은 다섯 개의 Nested Inline Actions 이 필요합니다.

1. CHEX를 EOS로 변환하라는 요청

2. 스마트 컨트랙트는 CHEX를 CHEX relay 로 보냅니다.

3. CHEX relay 는 CHEX를 BNT relay 로 보냅니다.

4. BNT relay 가 BNT를 EOS relay 로 보냅니다.

5. EOS가 요청한 계정으로 전송됩니다.

유감스럽게도 현재 이런 순서의 Nested Inline Actions는 현재 EOS 블록체인에서 불가능합니다.

테스트, 연구, 추론

제안

제안서 링크

이 문제에 관해 더 자세히 논의하고 싶다면 저희 텔레그램을 방문해 주세요.

EOS42 — Pioneering a Decentralized Future

EOS42

Written by

EOS42

EOS42 — Pioneering a Decentralized Future | 开造一个去中心化的未来 | 탈중앙화된 미래를 선도합니다 | Telegram: https://t.me/EOS42 | EOS ID: eos42freedom