第二十一课 如何通过Solidity的智能合约函数把长文章记录到以太坊区块链上?

1,Solidity智能合约函数

辉哥的文章《第十六课 不用编程,如何把长文章记录到以太坊区块链上?》 是通过MetaMask的交易形式把数据写到链上。 本文提供另外一个方式,通过智能合约函数的方式把数据写到智能合约的变量区,其数据存储在storage区域,可通过函数查找出来。

合约代码:

pragma solidity ^0.4.24;
 
contract LongRecord{
    mapping (uint => string) pic;
    uint x=0;
    address owner;
    function LongRecord(){
        owner = msg.sender;
    }
    function record(string s) public{
        require(msg.sender == owner);
        pic[x]=s;
        x++;
    }
    function getRecord(uint i) constant public returns (string){
        require(msg.sender == owner);
        return pic[i];
    }
}

2,测试

编译成功后,切换到测试环境。

2.1 部署智能合约

为了省钱,MetaMask切换到"Repston Test Network"下:

2.2 写入长文本

假设长文本内容为

辉哥简书专栏个人IP的募集计划书:
1) 时间:2018年9月1日 - 2019年8月30日
2) 募集目标:100万彩贝通证(CLB)
3) 募集方案:
1>  投资人认同辉哥的简书专栏所产生的IP知识价值,愿意以捐献彩贝通证(CLB)的方式给辉哥提供创作动力。
2>  辉哥承诺以期间产生的简书专栏所得的50%收入按募集比例回馈给捐献者。
3>  募集信息以以太坊智能合约形式写入链上,不可篡改。

在record函数区"文本内容"填入,点击确认后会写入以太坊区块链成功。

写入成功的地址为 https://ropsten.etherscan.io/tx/0x578cda5fccfe8465000d5ce6d966ea940b9cbd5426373a4804b238abf573d296 其第三行开始为函数输入区的UTF-8编码内容。

2.3 读取

输入0,点击getRecord函数,可以获得对应的文本数据内容,见下图的2.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

空手套白狼?USDT 假充值逻辑缺陷漏洞利用分析

6月28日,慢雾科技发布了一条针对 USDT 的预警和漏洞分析,提醒各大交易所尽快暂停 USDT 充值功能,并自查代码是否存在该逻辑缺陷。全文如下:

64030
来自专栏区块链大本营

以太坊再爆高危漏洞!黑客增发ATN 1100万枚token事件始末

事情发生在5月中旬,ATN技术人员发现Token合约由于存在漏洞受到攻击。不过ATN基金会随后透露,将销毁1100万个ATN,并恢复ATN总量,同时将在主链上线...

7110
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–资产会计(162)-5 ABAVN 资产处置

4.4 资产处置 固定资产清理是指从资产组合中移除某项资产或部分资产。复杂固定资产(或部分复杂固定资产)的移除是从帐面上将其作为资产清理过帐。 在中国资产会计中...

48180
来自专栏区块链大本营

“危机四伏”的以太转账操作|以太转账安全风险——漏洞分析连载之八期

Solidity语言的默认存储规则和引用未初始化变量带来的特殊性共同导致了未初始化变量将原有状态变量覆盖,占用了状态变量在Storage中的位置,重演了最近“高...

12120
来自专栏蜉蝣禅修之道

以太坊DApp系列(二)---从入门到出家

以太坊自2013年V神提出后,被无数人赋予美好的愿景,甚至被称为区块链2.0,其代币发行量更是达到了全球第二,仅次于比特币,而其带来的智能合约概念颠覆了人们对区...

1.5K180
来自专栏区块链入门

第十六课 不用编程,如何把长文章记录到以太坊区块链上?

【本文目标】 通过本文学习,以太坊学习者可以把中文长文章记录到区块链上,不会被删除。

14550
来自专栏区块链入门

【区块链安全】技术小白如何做到让一行代码值64亿元?

2018年4月24日,又一件突发性事件引爆了币圈!刚刚发行了才两个月的“美链 Beauty Chain” (简称BEC)在受到黑客的攻击的影响下直接归零了!黑客...

15040
来自专栏区块链大本营

@程序员,如何淋漓尽致地敲出Solidity安全代码?

区块链技术的发展要与安全挂钩,齐头并进,让迅速的发展约束在可靠的范围之内,才能真正让新科技稳步推广,深入人心。

9610
来自专栏mathor

第六届蓝桥杯决赛B组C/C++——关联账户

9130
来自专栏区块链入门

第三课 以太坊术语说明及开发者资源列表

也称钱包,提供账户管理、挖矿、转账、智能合约的部署和执行等等功能,以太坊节点利用以太坊客户端接入到以太坊网络。 现在以太坊客户端主要有:Wallent/ist ...

10520

扫码关注云+社区

领取腾讯云代金券