目录
一、项目背景 1
1.1 供应链+金融场景 1
1.2 功能需求分析 2
二、方案设计 2
2.1 存储设计 2
我们使用一个列表来保存所有的债权凭证 3
2.2 基本功能 3
企业注册(该方法仅限部署该合约的认证机构调用) 4
2.3 核心功能 9
2.4 前端实现 13
2.5后端实现 16
实现智能合约方法调用接口:使用前端传过来的方法名作为索引调用方法 17
2.6编译部署 18
三、功能测试 21
3.1 功能一 22
3.2 功能二 25
3.3 功能三 29
3.4 功能四 33
四、界面展示 37
一、项目背景
1.1 供应链+金融场景
供应链(Supply Chain)是指生产及流通过程中,涉及将产品或服务提供给最终用户活动的上游与下游企业所形成的网链结构。
金融机构对不同企业的的信用评级不同,核心企业有很大的风险承担的能力,故信用评级会高于一般企业。在供应链场景中,核心企业由于资金暂时短缺向下流普通公司签订了应收账款单据,约定某个时间后还款,这个过程可以由金融机构来作见证,从而确认这笔交易的真实性。在这段时间内,若掌握核心企业"欠条"的普通企业资金短缺需要融资,它可以凭借跟核心企业签订的应收账款单据向金融结构借款,但这样的信任关系并不会往下游传递。
这种不信任关系一直沿着下游的普通企业传播,需要金融机构不断往上验证真实性,导致这个过程增加很多经济成本。导致这个问题的根本原因是核心企业的信用无法在整个供应链中传递以及交易信息不透明化所导致的。
如果我们结合区块链技术,将供应链上的每一笔交易和应收账款单据上链,同时引入第三方可信机构来确认这些信息的交易,例如银行,物流公司等,确保交易和单据的真实性,同时支持应收账款的转让,融资,清算等,就可以让核心企业的信用可以传递到供应链的下游企业,减小中小企业的融资难度。
本项目针对这样一个应用场景,基于已有的开源区块链系统FISCO-BCOS,以联盟链为主,开发基于区块链或区块链智能合约的供应链金融平台, 实现供应链应收账款资产的溯源、流转。
1.2 功能需求分析
基本功能:
1.核心企业、普通企业、金融企业的注册。
2.通过账户查询余额、查询收款单据和欠款单据和查看历史交易记录。
核心功能:
1.实现采购商品—签发应收账款交易上链。例如车企从轮胎公司购买一批轮胎并签订应收账款单据。
2.实现应收账款的转让上链,本文转载自http://www.biyezuopin.vip/onews.asp?id=16716轮胎公司从轮毂公司购买一笔轮毂,便将于车企的应收账款单据部分转让给轮毂公司。轮毂公司可以利用这个新的单据去融资或者要求车企到期时归还钱款。
3.利用应收账款向银行融资上链,供应链上所有可以利用应收账款单据向银行申请融资。
4.应收账款支付结算上链,应收账款单据到期时核心企业向下游企业支付相应的欠款。

const Configuration = require('./nodejs-sdk/packages/api').Configuration;
const Web3jService = require('./nodejs-sdk/packages/api').Web3jService;
const createContractClass = require('./nodejs-sdk/packages/api/compile/contractClass').createContractClass;let config = new Configuration('config.json');
let web3j = new Web3jService(config);const fs = require('fs');// 加载智能合约
console.log('Loading contract from compiled file ...');
let compiled = JSON.parse(fs.readFileSync('compiled/SupplyChain.json'))
let contract = createContractClass(compiled.name, compiled.abi, compiled.bin, config.encryptType
).newInstance();
console.log('Loading deployed contract address from deployed file ...');
let contractAddr = JSON.parse(fs.readFileSync('deployed/SupplyChain.json'))['contractAddress'];
contract.$load(web3j, contractAddr);
console.log('Done.');// 准备HTTP服务
const express = require('express');
const bodyParser = require('body-parser');
const port = 9000;
var app = express();
app.use(bodyParser.json({ limit: '10mb'}));
app.use(express.static('web', {index: '/index.html'})); // 网页根目录
function getReqData(req) {if (req.body && Object.keys(req.body).length) {return req.body;}if (req.query && Object.keys(req.query).length) {return req.query;}if (req.params && Object.keys(req.params).length) {return req.params;}return {};
}// 合约方法调用接口参数如下
// account: 字符串,调用合约的账户名,必须是config.json中已有的账户
// method: 字符串,想要调用的合约方法名字
// parameters: 列表,合约方法调用参数
// 返回一个JSON对象字符串
// ok: 布尔值,调用是否成功
// msg: 字符串,如果调用成功,则设为'succeed',否则为错误信息
// data: 列表,合约方法调用的返回值
app.all('/contractMethod', async (req, res) => {let reqData = getReqData(req);console.log(`call 'contractMethod' from ip ${req.ip}, params: ${JSON.stringify(reqData)}`);if (typeof(reqData.account) != 'string' || typeof(reqData.method) != 'string' ||!Array.isArray(reqData.parameters)) { // 检查接口参数类型console.log('failed at parameter type checking.');res.json({ok: false, msg: 'Bad iterface call.', data: []});return;}// 进行合约方法调用try {contract.$by(reqData.account);let retval = await contract[reqData.method](...reqData.parameters);console.log(`retval: ${JSON.stringify(retval)}`);res.json({ok: true, msg: 'succeed', data: retval});} catch (err) { // 出错let errString = err.toString();console.log(errString);res.json({ok: false, msg: errString, data: []});}
});var server = app.listen(port);
console.log(`server started at port ${port}.`)




























基于区块链技术的供应链金融平台相关推荐

  1. 基于区块链技术的供应链金融白皮书 附下载

    当前,区块链正在成为全球技术应用的前沿阵地,其应用已延伸至数字金融.物联网.智能制造.供应链管理.数字资产交易等多个领域,不断策动全球技术创新和模式创新,推动信息互联网向价值互联网跃迁,这其中,金融机 ...

  2. 【项目分析】解读Social Lending Network——基于区块链技术的社交金融平台

    本文发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明--本人一界码农+产品汪+U赞签约作者 个人微信号(liuhua7851) 两 ...

  3. 区块链行业:2020基于区块链技术的供应链金融白皮书(20201231).PDF

    来源:浙商 公众号:参一江湖 以上是资料部分内容截图 如需查看完整报告和报告下载或了解更多, 公众号:参一江湖 8月19日(国内券商)资料回顾总览 金属行业2021年度策略报告:周期轮动,余音绕梁(二 ...

  4. 基于区块链技术的数据资产管理机制研究

    点击上方蓝字关注我们 基于区块链技术的数据资产管理机制研究 赵明1, 董大治2 1 海军装备部,北京 100841 2 中国人民解放军91001部队,北京 100841 摘要:使用区块链技术可以保证数 ...

  5. 沃尔玛研发基于区块链技术的快递管理系统并申请专利

    点击上方"蓝色字"可关注我们! 暴走时评:沃尔玛的最新专利申请描述了一种基于区块链技术的"安全"快递管理系统.这项名为"快递预约装置方法"的 ...

  6. 浙江省冷链食品追溯系统上线 基于区块链技术开发进一步健全食品安全追溯体系

    冷链上"链".近日,记者从浙江省市场监管局获悉,基于区块链技术开发的浙江省冷链食品追溯系统(下称"浙冷链")正式上线."浙冷链"首批将对进口 ...

  7. 基于区块链技术的 工业互联网标识

    案例提供单位: 北京众享比特科技有限公司 为完善工业互联网产业生态,提高工业互联网产业能力,某通信公司省级分公司率先开展标识解析体系在电子信息产业的探索应用,打造工业互联网标识解析应用平台,并通过与国 ...

  8. 基于区块链技术的数据安全共享网络体系研究_基于区块链技术的用户信息隐私保护与共享方案...

    随着互联网信息技术的飞速发展,网络数据量迅猛增长,不可避免的数据隐私保护成为用户关注的重点.在金融领域,经历了纸质信息到电子用户交易档案的转变,用户使用云服务器来存储个人数据,但是交易数据包含有众多的 ...

  9. 以太联盟 基于区块链技术的角色扮演对战游戏

    以太联盟 是一款基于区块链技术的角色扮演对战游戏.玩家可以通过召唤英雄来为自己战斗从而赢取以太币奖励.每个玩家至多可以派5名英雄_上场.游戏共有5大种族, 5个职业,彼此之间互相克制,另外不同英雄还拥 ...

最新文章

  1. seaborn使用boxplot函数可视化箱图并基于分组均值或者中位数进行箱图降序(descending)排序(Sort Boxplots in Descending Order)
  2. 获取浏览器窗口宽高问题总结
  3. 什么是微调?什么是模型迁移?
  4. 从一段代码的汇编看计算机的工作原理
  5. html中剪切图片所用插件,简单功能强大的jQuery图片剪裁插件Image Cropper
  6. C# DataTable分页处理
  7. 转:PHP非阻塞模式
  8. 已经了关联到svn的文件类型,如何添加到 ignore
  9. 使用bash编写Linux shell脚本--复合命令
  10. cdoj 1252 24点游戏 dfs
  11. 阿里P7三面被这10个SpringCloud微服务问题难倒,杯具!
  12. VC++中按钮,文本框,选择框的常用方法
  13. Lesson 4 Part 2 Softmax Regression
  14. 深度学习自学(十七):caffe-sphereface-编译matcaffe遇到的问题
  15. javascript对数组的操作
  16. Linux kernel SMP 中断机制
  17. 一个.Net的混淆防反编译工具ConfuserEx
  18. MUI框架的基本使用
  19. SAP SEGW 事物码里的 ABAP 类型和 EDM 类型映射的一个具体例子
  20. 企业服务器固态硬盘寿命,SSD固态硬盘使用寿命短?_企业存储技术与评测-中关村在线...

热门文章

  1. Zotero(1)---文献管理软件Zotero安装教程
  2. 应用层的HTTP和HTTPS协议
  3. Servlet(一)——刨根问底
  4. 【自学Python】Python浮点型(float)
  5. Matlab实现——严格对角占优三对角方程组求解(高斯赛尔德Gauss-Seidel迭代、超松弛)
  6. Linux查看系统温度
  7. 开放接口/RESTful/Api服务的设计和安全方案详解
  8. TX2 Install OpenCV(4.0.0)
  9. NTLM-relay攻击的原理与实现
  10. C语言条件表达式(三目运算符)结合性问题