MSIG Proposal: Nested Inline Actions

EOS42
3 min readJun 20, 2019

--

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

We tested 16 nested inline actions on the Jungle testnet without any issues. We also reached out to experts in EOSIO software to find out why four nested inline actions was the chosen threshold — there wasn’t any specific reason. Furthermore, raising the threshold will not have any negative consequences, but will result in being able to accommodate the inevitable complexity of smart contracts on the EOS blockchain.

Proposal

In the absence of any reason that the threshold should not be raised, we are proposing an msig to raise the nested inline action limit to six.

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

WEBSITE | MEDIUM | TWITTER | TELEGRAM | LINKEDIN

作为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 (중첩된 인라인 액션) 확장

EOSIO 의 개척자들로서, 우리의 미션은 우리의 발자취를 따르는 사람들를 위해 장벽을 제거하는 것일 겁니다. 최근에 저희팀은 Nested Inline Actions 에 대한 이오스의 제한사항을 발견했습니다. 현재 EOSIO는 4 개의 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 블록체인에서 불가능합니다.

테스트, 연구, 추론

저희팀은 Jungle testnet에서 16개의 Nested Inline Actions 를 아무 문제없이 테스트했습니다. 저희는 또한 EOSIO 소프트웨어의 전문가들에게 중첩된 인라인 액션이 4개로 제한되어 있는 이유를 조사해보았습니다. 거기에는 특별한 이유가 없었습니다. 또한 이 임계값을 높이면 부정적인 결과는 없지만 EOS 블록체인에서 불가피한 스마트 컨트랙트의 복잡성을 수용 할 수 있게 됩니다.

제안

Nested Inline Actions (중첩된 인라인 액션)에 대한 제한을 6개로 늘릴 MSIG를 제안합니다.

제안서 링크

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

EOS42 — Pioneering a Decentralized Future

WEBSITE | MEDIUM | TWITTER | TELEGRAM | LINKEDIN

--

--

EOS42

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