CyberMiles 在极端情况下可以到它宣传的几万倍,但绝大多数普通合约的提升是几到几十倍。
CyberMiles提高EVM性能的方式是通过Ethereum Native Interface(ENI)来完成的。就是将一系列操作编译成一个指令,智能合约可以直接调用编译好的library。通过这种方式达到提升性能的目的。越是复杂的操作,它节省的指令就越多,提升的也就越大。对加法的提升是11倍,乘法是13倍,排序是200倍。
要达到这点需要三方面:
1 编写ENI,并编译成library以供EVM调用。
CyberMiles创建了C++项目libeni https://github.com/CyberMiles/libeni
开发文档:https://libeni.readthedocs.io/en/latest/getting-started.html
2 智能合约编译器在编译合约时要生成相应library的字节码。
CyberMiles基于solidity扩展出一个新语言Lity, https://github.com/CyberMiles/lity。(类似我们之前的做法)
开发文档:https://lity.readthedocs.io/en/latest/getting-started.html
3 扩展EVM,让EVM可以识别编译好的library,并在执行时能够直接调用。
https://github.com/CyberMiles/travis
网友评论