利用Truffle实现一个区块链捐款系统

时间:2024-04-13 09:15:15

选题背景

慈善捐款越来越普遍,但该行业仍然存在着多年运作累积的很多问题。最令人诟病的就是善款去向不明、信息不公开,而且公益项目,每一笔善款都代表着公众对需要帮助的人的爱心和善意,一旦曝出贪污等不法行为,打击几乎是毁灭性的。在某些特定的情况下,这些问题也阻碍了人们奉献爱心。而区块链的出现正好为慈善捐款的公平公正提供了基础。

依据

区块链技术具有数据不可篡改和可追溯性,可以用来构建监管部门所需要的,包含众多手段的监管工具箱。以利于实施精准、及时和更多纬度的监管。利用区块链来实现一个基金会的捐款系统,可以准确记录用户的每一笔捐款,明确每一次捐款的细则,避免了一些伪造的捐款、夸大数额的捐款出现。区块链在慈善领域有以下多个优势:

  1. 降低交易成本
    区块链上的交易是可以点对点完成的,你可以直接将钱捐赠给指定的人或机构,无须转手多家银行和机构,这将有效减少交易成本。
  2. 增加透明度
    区块链技术可以使捐赠的环节更加透明,每一次捐赠都会直接记录在分布式账本数据库中,记录公开透明可查询且不可篡改,当然,你也可以通过账本追溯捐款的去向。
  3. 增强信任
    区块链技术可以使人们快速建立信任关系,消除了捐助者对第三方的需求,这意味着2.0版的慈善机构和非营利性机构将不再依靠其他机构,如银行、律师和*实体等。

使用说明

一、安装Node

官方网址下载安装包,选择LTSQ版本下载。

利用Truffle实现一个区块链捐款系统

安装后在windows命令cmd窗口,输入node -v,能显示node的版本就成功第一步了

二、安装Truffle

truffle是本地的用来编译、部署智能合约的工具。
在windows命令行窗口输入npm -g install truffle。

安装完成后输入truffle,检测truffle是否被正确安装
利用Truffle实现一个区块链捐款系统

三、安装以太坊客户端

智能合约必须要部署到链上进行测试。可以选择部署到一些公共的测试链比如Rinkeby或者Ropsten上,缺点是部署和测试时间比较长,而且需要花费一定的时间赚取假代币防止out of gas。
这里使用了Ganache客户端,并且是带有图形界面的版本。
下载地址
打开Ganache,进入图形界面
利用Truffle实现一个区块链捐款系统

选择QUICKSTART,Ganache默认建立十个用户,每个用户有100ETH的余额。
利用Truffle实现一个区块链捐款系统
Ganache默认运行在7545端口,可以在界面右上方的“设置”里进行更改。

四、编译合约

输入truffle compile编译合约
利用Truffle实现一个区块链捐款系统

五、部署合约

输入truffle migrate部署合约
利用Truffle实现一个区块链捐款系统

六、启动服务

输入命令npm run dev
利用Truffle实现一个区块链捐款系统

使用webpack可以实时编译界面改动

测试

进入应用主界面
利用Truffle实现一个区块链捐款系统
直接点击捐献目标
利用Truffle实现一个区块链捐款系统

添加捐献目标
利用Truffle实现一个区块链捐款系统

为序号1的目标捐赠10eth
利用Truffle实现一个区块链捐款系统

给不存在的目标捐款
利用Truffle实现一个区块链捐款系统
转账金额超出账户余额(默认余额为100eth)
利用Truffle实现一个区块链捐款系统

捐赠细则
利用Truffle实现一个区块链捐款系统

交易返回值
利用Truffle实现一个区块链捐款系统

Github源码链接

https://github.com/stwie2k/Blockchain_finalproject