
机制

图1
function runSQL(
address caller,
uint256 tableId,
string memory statement
) external payable override whenNotPaused nonReentrant {
if (
!_exists(tableId) ||
!(caller == _msgSenderERC721A() || owner() == _msgSenderERC721A())
) {
revert Unauthorized();
}
uint256 querySize = bytes(statement).length;
if (querySize > QUERY_MAX_SIZE) {
revert MaxQuerySizeExceeded(querySize, QUERY_MAX_SIZE);
}
emit RunSQL(
caller,
ownerOf(tableId) == caller,
tableId,
statement,
_getPolicy(caller, tableId)
);
}

局限
Dapp智能合约无法读取数据和接收执行结果。开发者无法将所有与数据相关的逻辑放入到智能合约中。 一张表被局限在10万行24列。 一个数据单元被局限在1kb。 仅支持SQL的子集:CREATE TABLE、INSERT、UPDATE、DELETE、SELECT、GRANT和REVOKE。 仅支持某些类型,INT、REAL、TEXT、BLOB和ANY。
应用
function _baseURI() 内部纯覆盖返回(字符串内存){
function _baseURI() internal pure override returns (string memory) {
return "https://testnet.tableland.network/chain/5/tables/79/id/";
}左右滑动查看完整代码
路线图
支持更多SQL。 验证者网络实现去中心化。 发行代币,并使用代币保护验证者网络。 数据库管理面板。

未来
分离合同和数据。 合约和数据之间的可组合性。 应对审查阻力。 支持Web3数据类型,比如地址和事务。 用户拥有数据所有权。
粉丝福利
51CTO技术精选期刊
CTO悟道第五期
扫码立即下载电子版

文章转载自51CTO技术栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





