众所周知,区块链具有不可篡改的特性,因此十分适合用于记仇。
我们首先需要一个配置好的区块链平台,这里我选用了FISCO BCOS2.7.2作为底层区块链平台。
安装配置参考https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/introduction.html
并安装WeBASE中间件方便合约开发
安装配置参考https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/webase/webase.html
然后启动区块链
此时便可以在主机通过[虚拟机ip]:5000来访问WeBASE区块链管理平台前端界面
为了能让校园内更多同学访问,我们将配置好虚拟机的端口映射xxxx:5000
同时关闭ubuntu和主机的防火墙
这样在同一局域网内可以通过[主机ip]:[映射主机端口]来访问了
然后我们编写一个简单的智能合约,为了更清楚地记仇,我们把骂街的话写到回执中,具体代码如下
pragma solidity ^0.4.24;
pragma experimental ABIEncoderV2;
import "./Table.sol";
contract JiChou{
TableFactory tf;
string constant TABLE_NAME3 = "t_test2";
constructor() public{
tf = TableFactory(0x1001);
tf.createTable(TABLE_NAME3,"id","text");
}
event InsertResponse2(
bool status,//插入状态
string addr,
string str
);
function insert2(string memory id,string memory text) public returns(int){
Table table = tf.openTable(TABLE_NAME3);
Entry entry = table.newEntry();
entry.set("text",text);
int count = table.insert(id,entry);
if(count == 1){
emit InsertResponse2(true,id,text);
}else{
emit InsertResponse2(false,id,text);
}
return count;
}
}
然后编译-部署-发送交易-指名道姓开始骂街
最后大伙就可以看到新打包的交易回执内容如下
小明除非把你主机砸了否则永远无法摆脱你是他爹的事实。
但是这种单点故障也可以避免,参考FISCO官方文档多机部署、企业部署,这里就不做演示了。