主页 > imtoken客户端app > 虚拟机 GearSV 将赋予比特币无限 CPU 和内存
虚拟机 GearSV 将赋予比特币无限 CPU 和内存
由于 unwriter 的 Neon Planaria 和 Bitbus 库,比特币开发人员现在可以轻松地将离线应用程序状态与挖矿节点同步。我们不仅可以按区块高度排序,还可以索引区块内的交易!这就是我们在比特币之上构建一个完全图灵完备的应用程序所需要的。
涡虫安全模型
1. 一致性/可用性:所有运行应用程序代码的服务器可能会在任意时间段内停机,但以后仍可以通过从最后看到的块中获取来恢复。这意味着应用程序提供商可以优雅地退出并重新上线,而不会存在一致性风险。可用性取决于向用户提供应用程序的经济激励。
2. 验证:任何人都可以启动应用服务器并验证当前状态。验证器首先获取应用程序代码,然后从第一个块中抓取应用程序,直到当前块的高度。这是一种线性时间验证方案,相当于核心网络上的挖矿节点,但只有一部分应用程序处于区块链状态。
3.法律:如果 API 提供者以错误的合约状态作弊,抓住他们并在必要时在法庭上提供证据变得非常简单。由于一切都来自链上的磁带,因此无法“伪造帐户”而不受惩罚。
CPU/内存插件
当前基于 Planaria 的应用程序,例如 twetch 和 bicomedia,本质上是比特币的硬盘扩展。此类应用程序能够从操作返回事件中抓取并提供数据库或文件系统上的静态内容。
如果可以使用与存储应用程序相同的属性来执行复杂的验证和任意数据操作会怎样?
虚拟机
虚拟机在底层硬件上进行抽象,允许计算在各种 CPU 架构上统一运行。这对于需要在许多不同机器上长时间运行的智能合约很有用。你永远不知道,ARM 服务器可能是 5 年后的必备品!
使用 Web Assembly 虚拟机,我们可以将 C++++ 或 Rust 代码编译为 WASM 字节码。然后为底层方法生成 ABI 和接口。
合同
您可以编写基于状态类的程序,就像它们对应的可靠合约一样。这是 ERC20ish 端口的头文件:
1. 编译合约生成字节码和ABI。
我们可以利用 Emscripten 等 Web 组装工具来自动编译和生成 C++ 合约代码的 Javascript 接口。类似的工具也可用于 Rust。
2. 在链上 op_return 中部署合约字节码。
与其他智能合约平台类似,合约是通过将字节码存储在链上作为 op_return 的输出来部署的。合约标识符由使用 b:// 协议的交易哈希确定。
OP_RETURN
19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAut
[wasm_bytecode]
瓦斯姆
二进制
令牌.cpp
写
所有写操作都使用更高级别的语义(在操作返回中指定约定、方法和输入参数)对链式事务执行。Planaria 节点抓取事件日志比特币是无限的吗,并在它们出现在方法调用链上时简单地按顺序运行它们。
OP_RETURN
[deploy_transacTIon_hash]
[method_id]
[参数数组]
json
UTF-8
可扩展性
开发人员可以轻松使用云平台上可用的通用硬件或虚拟 CPU。
对于纯粹基于 WASM 的合约比特币是无限的吗,限制因素是内存。对于使用 34 字节地址的 c++ std::map 到 32 字节 unsigned int 的代币合约,我们可以在 16 GB 的机器上实现约 2 亿的余额。为了克服内存限制,我们可以将 Web Assembly MemFS 挂载到底层操作系统并开始使用硬盘!
与以太坊等所有合约都由虚拟机运行的平台不同,比特币智能合约已完全拆分为每个合约一个虚拟机。事实上,您可以在每个合同中运行无限数量的虚拟机,从而继续提高最终用户的可用性。
综上所述
你不仅可以为比特币编写智能合约,因为这样做更容易扩展。
第一个经过验证的合约用例是代币。严格的 op_return 框架(例如标记化的 op_return 框架)似乎过于死板,不适合令牌提供的各种用例。借助该程序的灵活性,您可以指定归属时间表、荷兰式拍卖、检查批准等。