想开发区块链应用,你被solidity拖后腿了吗?( 三 )
tmap[0] = tstr;
}
}
这个错误是由于EVM限制了栈最多能取到stack[15]就是从栈顶向下第16个栈元素的内容,这就导致了如果一个函数方法的入参、返回值、函数内参数的个数如果大于一定量的时候很可能会触发这个错误,实际情况要根据opcode来分析。
理论上来说如果合约业务逻辑复杂,总会有不可避免的情况会遇到上述问题。
比如,理论上我们可以通过拆分合约逻辑,优化代码结构来修复。但这就是一个典型的EVM限制开发的问题。 另外还有像EVM限制合约Bytecode大小不超过24K,Solidity无法在合约外返回变长数组、没有迭代器来遍历map,不支持原生string的操作等等这些问题。
抱着这些使用Solidity过程中产生的疑惑和对WASM的期待,我们来看一下使用C/C++开发合约的过程。
使用Catalyst
首先我从迅雷链的Catalyst工具开始,因为目前为止想通过迅雷链部署WASM类型的合约,还只能通过官方提供的Catalyst做编译测试。
推荐阅读
- 魔兽世界|《轨迹》新作明年发布! 法老控将针对NS平台开发游戏
- 手机游戏|CFHD:神秘组织为什么开发生化手雷呢?关键是为了赚更多钱
- 三国杀|Win 11也能运行安卓应用,流畅度秒杀模拟器,不信你来试试?
- 大话西游|大话西游2这些召唤兽的天生技能是开发组拿来凑数的吗?实际效果完全没用
- 电子竞技|【欣然轻资讯G】《地平线2西部禁域》新老怪兽即将登场 开发者日志
- 桌游|48小时里,游戏开发能给这群大学生带来什么?
- 任天堂|不依赖对外收购工作室,任天堂将更着重扩大本身游戏内容开发能力
- 网游|《红色警戒2》超大Mod“心灵终结”发布3.3.6版,15年的开发完结
- 腾讯|3A 开放世界新作《王者荣耀:世界》公开,由腾讯天美工作室开发
- |不朽情缘五滴血必爆大奖技巧