虚拟机GearSV将为比特币提供无限的CPU和内存
扫描二维码
随时随地手机看文章
多亏了unwriter的Neon Planaria和Bitbus库,比特币开发者现在有了一种简单的方法来将离线应用状态和挖掘节点同步。我们不仅可以根据块的高度进行排序,而且还可以对交易进行块内索引! 这就是我们在比特币之上建立完全图灵完整应用所需要的。
Planaria安全模型
1. 一致性/可用性:所有运行应用程序代码的服务器都可能在一段任意的时间内停止运行,但稍后仍然可以通过从最后看到的块中进行抓取来恢复。这意味着应用程序提供者可以优雅地退出并重新联机,而不存在一致性风险。可用性取决于为用户提供应用程序的经济动机。
2. 验证:任何人都可以启动应用服务器并验证当前状态。验证器首先获取应用程序代码,然后从第一个块中抓取应用程序,直到当前块的高度。这是一个线性时间验证方案,等价于在核心网络上挖掘节点,但是只有一个应用程序子集处于区块链状态。
3.法律:如果API提供者使用错误的合约状态进行欺骗,那么捕获它们并在必要时在法庭上提供证据就变得非常简单。因为所有的东西都来自于链上的磁带,所以没有办法“做假账”而不受惩罚。
CPU /内存插件
目前基于Planaria的应用程序,如twetch和bicomedia,本质上是比特币的硬盘扩展。这类应用程序能够从op return事件中刮取数据库或文件系统上的静态内容并为其提供服务。
如果可以使用与存储应用程序相同的属性对数据进行复杂的验证和任意操作,情况会怎样?
虚拟机
虚拟机抽象在底层硬件上,允许计算在各种CPU架构上统一运行。这对于需要在许多不同机器上长时间运行的智能合约非常有用。你永远不会知道,ARM服务器可能会在5年内成为必备品!
使用Web汇编虚拟机,我们可以将c++或Rust代码编译为WASM字节码。然后为底层方法生成ABI和Javascript接口。
合约
您可以编写基于状态类的程序,就像可靠合约的对应程序一样。这是一个ERC20ish端口的头文件:
1. 编译合约以生成字节码和ABI。
我们可以利用诸如Emscripten之类的Web组装工具来自动编译和生成c++契约代码的Javascript接口。类似的工具也可用于Rust.。
2. 在on chain op_return中部署合约字节码。
与其他智能契合约平台类似,通过将字节码存储在op_return输出的链上部署合约。合约标识符由使用b://协议的交易哈希值确定。
OP_RETURN
19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAut
[wasm_bytecode]
wasm
Binary
Token.cpp
写入
所有写入操作都是使用更高级的语义(指定op return中的约定、方法和输入参数)对链式交易进行的。Planaria节点会刮掉事件日志,并在方法调用链上出现时简单地按顺序运行它们。
OP_RETURN
[deploy_transaction_hash]
[method_id]
[params_array]
json
UTF-8
可扩展性
开发人员可以很容易地使用云平台上可用的普通硬件或虚拟cpu。
对于纯粹基于WASM的合约,限制因素是内存。对于使用带有34字节地址的c++ std::map到32字节无符号整型的代币合约,我们可以在16gb的机器上实现大约2亿的余额。为了克服内存限制,我们可以将Web Assembly MemFS挂载到底层操作系统,并开始使用硬盘驱动器!
不像以太坊这样的平台,所有的合约都由一个VM运行,比特币智能合约已经完全分割为每个合约一个VM。实际上,您可以在每个合约上运行无限数量的VM,从而继续提高最终用户的可用性。
结论
你不仅可以为比特币编写智能合约,因为这样做更容易扩展。
已证明的用于合约的第一个用例是代币。严格的op_return框架(比如代币化的op_return框架)似乎过于死板,不适合代币提供的各种用例。通过程序的灵活性,您可以指定归属时间表、荷兰式拍卖、检查批准等等。