BCSkill (Block chain skill )
区块链中文技术社区

只讨论区块链底层技术
遵守一切相关法律政策!

用于以太坊 RLP 解码的 Solidity 库

安装

  1. npm install solidity-rlp在项目目录中。请确保通过 npm 安装以便及时更新!
  2. import "solidity-rlp/contracts/RLPReader.sol"在所需的智能合约中。

github: https://github.com/hamdiallam/Solidity-RLP.git

测试例子

import "solidity-rlp/contracts/RLPReader.sol"

contract SomeContract {

    // optional way to attach library functions to these data types.
    using RLPReader for RLPReader.RLPItem;
    using RLPReader for RLPReader.Iterator;
    using RLPReader for bytes;

    // lets assume that rlpBytes is an encoding of [[1, "nested"], 2, 0x<Address>]
    function someFunctionThatTakesAnEncodedItem(bytes memory rlpBytes) public {
        RLPReader.RLPItem[] memory ls = rlpBytes.toRlpItem().toList(); // must convert to an rlpItem first!

        RLPReader.RLPItem memory item = ls[0]; // the encoding of [1, "nested"].
        item.toList()[0].toUint(); // 1
        string(item.toList()[1].toBytes()); // "nested"

        ls[1].toUint(); // 2
        ls[2].toAddress(); // 0x<Address>
    }

    // lets assume rlpBytes is an encoding of [["sublist"]]
    function someFunctionThatDemonstratesIterators(bytes memory rlpBytes) public {
        RLPReader.Iterator memory iter = rlpBytes.toRlpItem().iterator();
        RLPReader.Iterator memory subIter = iter.next().iterator();

        // iter.hasNext() == false
        // string(subIter.next().toBytes()) == "sublist"
        // subIter.hasNext() == false
    }
}

参考

https://ethereum.stackexchange.com/questions/42732/how-to-rlp-encode-messages-in-solidity

Opentonapi 是TonAPI的开源版本,与其 100% 兼容

Opentonapi 简化了基于 TON 的应用程序的开发,并提供了以 Jettons、NFT 等高级概念为中心的 API,以保留访问低级细节的方式。

Opentonapi 是TonAPI的开源版本,与其 100% 兼容。

主要区别在于,TonAPI 维护整个 TON 区块链的内部索引,并提供有关区块链中任何实体的信息,包括 Jettons、NFT、账户、交易、痕迹等。

https://github.com/tonkeeper/opentonapi

Go primitives to work with TON

Go implementation of libraries for TON blockchain.

github: https://github.com/tonkeeper/tongo.git

免费、简单、直观的在线数据库设计工具和 SQL 生成器

DrawDB 是一款功能强大且用户友好的数据库实体关系 (DBER) 编辑器,直接在您的浏览器中使用。只需单击几下即可构建图表、导出 SQL 脚本、自定义编辑器等,无需创建帐户。在此处查看全套功能。

github: https://github.com/drawdb-io/drawdb
在线地址:https://www.drawdb.app/editor

一个使用 WebGPU 进行可移植低级 GPU 计算的轻量级库

gpu.cpp 是一个轻量级库,可以简化使用 C++ 的便携式 GPU 计算。

它专注于通用的原生 GPU 计算,利用 WebGPU 规范作为可移植的低级 GPU 接口。这意味着我们可以在 C++ 项目中插入 GPU 代码,并使其在 Nvidia、Intel、AMD 和其他 GPU 上运行。相同的 C++ 代码可以在各种笔记本电脑、工作站、移动设备或几乎任何支持 Vulkan、Metal 或 DirectX 的硬件上运行。

官网:https://gpucpp.answer.ai/
GitHub:https://github.com/AnswerDotAI/gpu.cpp