基于hyperleger fabric区块链的校园化妆品交易平台搭建

基于hyperleger fabric区块链的校园化妆品交易平台搭建

一、大数据与区块链解决方案概述
1、选题背景
目前不少同学在校园里进行二手交易没有一个大众认可的平台,很多都是私下交易,但会存在很多虚假交易,甚至出现诈骗事件,没有一个让校园同学认可放心的二手化妆品交易平台,基于这个交易问题,我们将校园二手化妆品交易与区块链技术结合来处理交易存在的问题,给校园内学生提供提供一个安全、公开、方便、美观的交易平台,让学生在校园交易的放心,买得放心,用的安心。不但可以交易平台的资产也可以添加我的售卖,自己成为卖家。

区块链采用了分布式核算和存储,不存在中心化的硬件或管理机构,因此使得任意节点的权利和义务都是均等的。区块链的系统的一个开放性质的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开的。在区块链中,任何人为的干预都是不起作用的,将对“人”的信任改成了对机器的信任。使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据。在区块链中一旦信息经过验证并添加至区块就会永久的存储起来无法进行修改。
区块链作为当下被推崇的一门技术主要优点为分布式记账、全流程记录、不可篡改性和加密技术。在区块链中都必须遵循同一记账交易规则,基于密码的算法同时每笔交易需要网络内其他用户的批准,核心分布式去中心化。区块链不可篡改和加密安全性采取了单向哈希算法,时间的不可逆性导致任何试图入侵篡改区块链内数据信息的行为都很容易被追溯,提高了对应的安全性。

二、应用场景需求分析
应用场景需求分析、用户需求分析和用户组织结构设计
应用场景分析:
基于目前不少同学在校园里进行二手交易没有一个大众认可的平台,很多都是私下交易,但会存在很多虚假交易,甚至出现相关二手化妆品交易诈骗事件,目前没有一个让校园同学认可放心的二手化妆品交易平台,基于这个交易问题,我们将校园二手化妆品交易与区块链技术结合来处理交易存在的问题,给校园内学生提供提供一个安全、公开、方便、美观的交易平台,让学生在校园交易的放心,买得放心,用的安心。不但可以交易平台的资产也可以添加我的售卖,自己成为卖家。

需求分析:
在校园内搭建一个基于Fabirc区块链的化妆品二手交易平台,学生以学院为单位(=>Org=>peer节点)加盟该平台;学生使用客户端连接本组织的peer节点参与交易。可以售卖化妆品、也可以购买化妆品;阅读过管理员平台公告后进入登录页面,学生通过学号认证后通过登录,学生在个人中心可以查看所有可交易的化妆品也可以查看自己的交易情况是否已经完成,也可以注册平台个人账号进行商品评论和交流查看个人信息,不但可以交易平台的资产也可以添加我的售卖,自己成为卖家;用户可以根据自己的需求选择不同的化妆品类型比如口红、香水、面部护理等。查看化妆品详情,收藏化妆品、加入购物车完成资产交易,退出的时候直接注销用户清除个人登陆记录保护用户隐私。这样校园内学生交易大大提高了安全性和大众的认可,满足了很多学生的交易需求。
用户组织结构设计:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第1张图片
三、平台功能设计及功能结构设计图
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第2张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第3张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第4张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第5张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第6张图片

四、数据存储结构设计与链码开发
1、数据存储结构
交易资产以资产键值对(Key-Value)的方式存储:

  Key:id
       value {
            brand: '化妆品品牌名称',
            type: '化妆品类型',
            price: '$化妆品价格',
            owner: '拥有者',
            describe:'化妆品介绍',
        },

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第7张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第8张图片
2、链码开发与实现
启动startFabric.sh javascript脚本启动网络并部署链码:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第9张图片

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第10张图片

功能一:调用智能合约初始化自定义链码:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabmakeup --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"initLedger","Args":[]}'

功能二:通过调用智能合约初始化查询特定键值的资产:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第11张图片

peer chaincode query -C mychannel -n fabmakeup -c '{"function":"queryMakeup","Args":["MAKEUP1"]}'

在这里插入图片描述

功能三:通过调用智能合约初始化查询特定键值范围的资产:

peer chaincode query -C mychannel -n fabmakeup -c '{"function":"queryMakeupsByRange","Args":["MAKEUP3",""]}'

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第12张图片

功能四:通过调用智能合约新增资产:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabmakeup --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"createMakeup","Args":["MAKEUP14","迪奥","香水","450","Lala","美白保湿"]}'

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第13张图片
功能五:通过调用智能合约修改资产属性:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabmakeup --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"updateMakeup","Args":["MAKEUP1","迪奥","香水","$820","gala","女士香水 魅惑清新淡香氛50ml 清新甜韵"]}'

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第14张图片
功能六:通过调用智能合约删除指定资产:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabmakeup --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"deleteMakeup","Args":["MAKEUP14"]}

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第15张图片

功能七:通过调用智能合约实现资产交易:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabmakeup --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"changeMakeupOwner","Args":["MAKEUP3","Lisksk"]}'

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第16张图片

功能八:调用链码实现更新资产信息 :

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabmakeup --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"updateMakeup","Args":["MAKEUP1","迪奥","香水","$820","gala","女士香水 魅惑清新淡香氛50ml 清新甜韵"]}'

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第17张图片

功能九:判断资产是否存在:

peer chaincode query -C mychannel -n fabmakeup -c '{"function":"makeupExists","Args":["MAKEUP1"]}'

在这里插入图片描述

四、应用程序前端开发

在站长素材-分享综合设计素材的平台 (chinaz.com)找到项目合适的前端网页模板,然后修改数据和更改网页部分样式,最后通过前后端链接实现资产交易。客户端的主要作用是与Fabric区块链交互,实现对区块链的操作。区块链操作分为管理类和链码类的两种,管理类操作包括启停节点和配置网络等;链码类操作主要是链码的生命周期管理,如安装、实例化以及调用链码。最常用的客户端是命令行客户端(CLI),此外是使用Fabric SDK开发的应用客户端。
开发者创建客户端应用和智能合约( chaincode ), Chaincode 被部署到区块链网络的 Peer 节点上面。通过 chaincode 来操作账本,当你调用一个交易 transaction 时,你实际上是在调用 Chaincode 中的一个函数方法,它实现业务逻辑,并对账本进行 get , put , delete 操作。客户端应用提供用户交互界面,并提交交易到区块链网络上。
前端页面以用户体验效果为主,主页化妆品里面有化妆品分类、热销推荐、折扣推荐、化妆品详情、化妆品资讯,也可以进入我的个人主页查看个人订单和交易情况等。尽可能满足用户交易各方面需求,一些折扣和热销推荐也方便用户做出交易决策。用户挑好自己合适喜欢的就可以放进购物车进行资产交易。每个化妆品分类页面又有各种不同的产品热销和折扣供用户挑选,

源主页面及其文件:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第18张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第19张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第20张图片

修改源码和完善后的主页面和文件:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第21张图片

使用pycharm对前端网页模板源码进行修改:
通过元素对应的源码进行更改删除或添加相关标签,完善页面布局和整体效果。

页面一:主页面及其商品分类和商品推荐:
化妆品分类有:健康护理、皮肤护理、口红、面部护理、香水、自然护理。

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第22张图片
对应路由: /index
页面二
显示化妆品所有资产信息
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第23张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第24张图片

对应路由:

else if(url_path == '/list'){
                query().then(async function(contract){
                const result = await contract.evaluateTransaction('queryAllMakeups');
                const result_json = JSON.parse(result);
                //response.end('Transaction has been evaluated, result is: ' + result.toString());
                const view = path.resolve(__dirname, 'views', 'list.html');
                list1 = template(view, {
                data:result_json
            });
                response.end(list1);
            });

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第25张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第26张图片

页面三:进行化妆品资产交易
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第27张图片

对应路由:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第28张图片

对应路由:

else if(request.url == '/modify'){
            let formData = '';
            //接收post参数
            request.on('data',function(param){
                formData += param;
            });
            //post参数接收完毕
            request.on('end',function(){
                console.log(formData);
                const params = new URLSearchParams(formData);
                query().then(async function(contract){
                    await contract.submitTransaction('updateMakeup', params.get('id'), params.get('brand'), params.get('type'), params.get('price'), params.get('owner'),params.get('describe'));
                    //301代表重定向 
                    response.writeHead(301,{
                        Location: '/list'
                    });
                    response.end();
                });
            });
else if(url_path == '/modify'){
                query().then(async function(contract){
                    const result = await contract.evaluateTransaction('queryMakeup',params.get('id'));
                    const result_json = JSON.parse(result);

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第29张图片

页面四:添加交易化妆品资产
用户可以看到自己售卖化妆品的交易订单,也可以继续添加自己售卖的化妆品资产,在平台进行交易。

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第30张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第31张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第32张图片

对应路由:

 if(request.method == 'POST'){
        if(request.url == '/add'){
            let formData = '';
            //接收post参数
            request.on('data',function(param){
                formData += param;
            });
            //post参数接收完毕
            request.on('end',function(){
                console.log(formData);
                const params = new URLSearchParams(formData);
                query().then(async function(contract){
                    await contract.submitTransaction('createMakeup', params.get('id'), params.get('brand'), params.get('type'), params.get('price'), params.get('owner'),params.get('describe'));
                    //301代表重定向 
                    response.writeHead(301,{
                        Location: '/list'
                    });
                    response.end();
                });
            });

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第33张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第34张图片

页面五:删除交易化妆品资产(选择所需要删除的化妆品资产)
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第35张图片

对应路由:

else if(url_path == '/remove'){
                query().then(async function(contract){
                    await contract.submitTransaction('deleteMakeup',params.get('id'));
                    response.writeHead(301,{
                      Location: '/list'
                    });
                    response.end();
                });

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第36张图片

六、应用程序服务端开发(注:对于分工内容,需详细描述设计思路和实现细节,非分工内容,只需截图)
1、路由一
Get:通过params参数获取,

  query().then(async function(contract){
            await contract.submitTransaction('createMakeup', params.get('id'), params.get('brand'), params.get('type'), params.get('price'), params.get('owner'),params.get('describe'));
            //301代表重定向 
            response.writeHead(301,{
                Location: '/list'
            });
            response.end();
        });

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第37张图片

Post:

  if(request.method == 'POST'){
    if(request.url == '/add'){
            let formData = '';
            //接收post参数
            request.on('data',function(param){
                formData += param;
            });
            //post参数接收完毕
            request.on('end',function(){
                console.log(formData);
                const params = new URLSearchParams(formData);

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第38张图片

2、路由二

Get:
else if(url_path == '/modify'){
                query().then(async function(contract){
                    const result = await contract.evaluateTransaction('queryMakeup',params.get('id'));
                    const result_json = JSON.parse(result);

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第39张图片

Post:

  let formData = '';
    //接收post参数
    request.on('data',function(param){
        formData += param;
    });
    //post参数接收完毕
    request.on('end',function(){
        console.log(formData);
        const params = new URLSearchParams(formData);
        query().then(async function(contract){
            await contract.submitTransaction('updateMakeup', params.get('id'), params.get('brand'), params.get('type'), params.get('price'), params.get('owner'),params.get('describe'));
            //301代表重定向 
            response.writeHead(301,{
                Location: '/list'
            });
            response.end();
        });
    });

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第40张图片

Get:

else if(url_path == '/remove'){
                query().then(async function(contract){
                    await contract.submitTransaction('deleteMakeup',params.get('id'));
                    response.writeHead(301,{
                      Location: '/list'
                    });
                    response.end();
                });

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第41张图片

Post:

   let formData = '';
    //接收post参数
    request.on('data',function(param){
        formData += param;
    });
    //post参数接收完毕
    request.on('end',function(){
        console.log(formData);
        const params = new URLSearchParams(formData);
        query().then(async function(contract){
            await contract.submitTransaction('updateMakeup', params.get('id'), params.get('brand'), params.get('type'), params.get('price'), params.get('owner'),params.get('describe'));
            //301代表重定向 
            response.writeHead(301,{
                Location: '/list'
            });
            response.end();
        });
    });

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第42张图片

七、应用程序扩展

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第43张图片

八、应用程序整体展示(注:可通过截图结合流程图描述应用平台的使用)
仔细看平台公告后然后进入用户认证:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第44张图片

通过学号进行用户认证:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第45张图片

进入认证成功后登录主页:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第46张图片

通过商品分类选择自己想要的产品:

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第47张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第48张图片
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第49张图片

也可以注册和登录自己的私人账户:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第50张图片
选择合适的化妆品加入购物车进行交易:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第51张图片

在这里插入图片描述

也可以查看我的订单和所有可交易的化妆品资产:

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第52张图片

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第53张图片

关于化妆品品牌排行榜:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第54张图片

查看相关资讯:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第55张图片

也可以在评论区进行交流查看化妆品评价:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第56张图片

有问题和疑问可以向平台进行反馈:
基于hyperleger fabric区块链的校园化妆品交易平台搭建_第57张图片

应用平台流程图:

基于hyperleger fabric区块链的校园化妆品交易平台搭建_第58张图片

OK。这里小马跟大家分享的基于hyperleger fabric的校园化妆品交易平台搭建到此结束了,希望大家可以参考得到一些思路设计新的项目,有机会我也会跟大家分享其它区块链项目和关于长安链的一些知识。

实践是提高自己的最快方法,希望大家多实践多总结,思路理清了后面都好做。祝愿大家一切顺利!

很喜欢村上春树的一句:“尽管眼下十分艰难 可日后这段经历说不定就会开花结果。”这句话送给所有考研的人

花会沿途盛开 以后的路也是。我们终将上岸,阳光万里。

你可能感兴趣的:(大数据,区块链,fabric,区块链)