主页 > imtoken官方app > 基于JAVA的区块链共享电桩交易模拟系统的实现

基于JAVA的区块链共享电桩交易模拟系统的实现

imtoken官方app 2023-04-26 07:42:05

基于JAVA的区块链共享电桩交易模拟系统的实现

摘要:本文从当前火热的区块链技术出发,分析了区块链技术在推动私人共享充电桩成为新型汽车充电运营模式中的核心地位,提出了基于Java的区块链共享电桩仿真系统。的交易,并专注于交易过程。 系统采用Web Service技术实现模拟区块链节点与局域网内节点的通信,通过HTTP服务实现对节点通信命令的控制,结合密码学哈希函数、工作量证明机制、持久化存储区块数据、UTXO模型、数字签名、P2P网络通信模块,模拟区块链技术在私有共享电桩网络中的应用场景。

关键词:区块链; 私人共享电桩; 点对点网络

为应对能源危机和环境污染,国家大力推动电动汽车产业的建设和发展。 在更多的实际场景中,由于缺乏与日益增多的电动汽车相匹配的共享充电桩资源,在寻找路边充电桩时,往往需要在手机中下载多个充电桩APP,经常出现问题通过APP在支付过程中的多样化。 此外,电桩的架设容易出现分布不均,随着电桩数量的增加,维护成本高,电桩数量少的个体户无法参与竞争,导致在浪费大量闲置的电桩资源。 该系统利用区块链去中心化、可追溯、不可篡改的特点,避免了传统电桩运营模式的弊端,模拟了共享充电桩的交易过程。 1 核心业务流程

通过模拟电动车车主前往电桩充电,充电桩扫描用户APP提供的二维码获取对应用户的钱包地址,同时将电桩车主的区块链钱包地址发送至云端,由用户的APP负责。 获取数据并查询区块链确定钱包余额,然后执行从用户钱包地址向电桩所有者钱包地址转账的操作,由区块链的矿工节点进行挖矿加链。 对于新加入区块链的区域,以广播的形式模拟比特币交易软件,将最新的区块信息以点对点的网络形式逐步广播到局域网中的所有节点。 以上业务流程可以在区块链的各个节点之间进行,完成的数据全网可用。 同步。 其业务流程图如图1所示。

图 1 交易流程图 2 平台建设

2.1 密码学哈希函数

这里所说的哈希函数是一种算法,可以将不同长度的文本转换为长度相同且不可逆的哈希串,从而得到代表该区块的信息摘要。 在我们简化版的区块链中,每个区块都有一个哈希字段,用于存储该区块的摘要信息,而哈希计算数据的来源是每个区块中记录的时间戳、前一个区块的哈希和当前区块的交易信息。 2.2 工作证明

所谓工作量,就是区块链中的任何一个节点,如果要向区块链中添加一个区块,首先要进行支付和计算,以获得向区块链中添加该区块的权限。 矿工继续挖矿,加链。 并获得奖励,在这种机制下,区块链可以稳定运行。在我们的模拟系统中,由于我们的开发人员作为系统管理者,使用区块链式的数据存储方式,他们取消了每次挖矿成功的奖励,但是使用如果你加入个人形式的电桩网络,可以向管理员申请,管理员会发放钱包地址,钱包中的电子货币也会由管理员以挖矿的形式进行充值,以及每个二流的一部分

成功交易的手续费,从而达到平台盈利的目的。 2.3 块持久化存储

仿真系统采用的存储方式以XML文档的形式存储在各个节点机器上。 开发测试时,使用4台机器在局域网中模拟一个小型区块链网络。 它们在本质上没有区别。 都有对区块链的操作权限,包括:挖矿、转账、新建钱包、查询余额、查询区块链等。测试时,一台PC作为全节点,两台PC作为普通用户钱包节点。 作为矿工节点,当全节点服务启动后,所有其他节点作为客户端连接全节点主机,同步全节点最新数据。 一旦发生涉及区块链的操作,全节点会在添加区块后,将数据进行全网广播,从而实现节点间数据的广播,达到全网互通的目的,从而保证所有节点在网络中与最新数据同步。 2.4 UTXO模型及优化

交易是区块链技术的核心。 我们实施该系统的目的是利用区块链技术安全可靠地存储交易,并保证交易的不可否认性。 在区块链网络中,没有所谓的服务器,用户的余额也没有直接存储在数据库中,或者说系统中没有余额的概念。 作为一个开放的数据库,比特币一个一个地存储数据。 比特币交易由INPUTS(输入)和OUTPUTS(输出)组成。 可以简单理解为发送地址为输入,接收地址为输出。 OUTPUTS用于新的加密,只有收款人才能解密并使用加密后的钱。 而每一次查询余额的操作,其实就是查询区块链,获取对应钱包地址中未花费交易的输出,从而计算出总余额。 为了调试方便,系统在设置交易时选择每笔交易信息对应一次挖矿操作,数据以XML文档的形式存储在各个节点中,方便查看交易。 UTXO集合的原理是我们将所有区块未花费的UTXO分别存放在一个BUCKET中。 无论是余额查询还是转账操作,都不需要遍历所有区块,查询所有交易来寻找未花费的UTXO。 你只需要查询 UTXO 集。 如果是转账操作,转账后需要及时更新UTXO集合。 2.5 数字签名

对于2.4中提及的交易,作为区块链数据,向所有区块链用户公开。 从开发者的角度,我们写了一个一键查询所有区块链钱包的功能。 即使是普通用户模拟比特币交易软件,也可以直接查询区块链数据,获取交易双方的钱包地址。 自然也可以查询每个地址对应的区块链余额。 如何保证用户不以假名进行交易? 这里采用的方法是:找到上一笔交易,确认付款人的币种来源,计算付款人的地址,保证公钥的真实性,用公钥解密签名数据进行验证。 2.6 P2P网络

Web 服务技术使运行在不同机器上的不同应用程序能够交换数据或集成,而无需额外的、专门的第三方软件或硬件。 该技术具有三个技术特点: 1、远程调用技术:指一台设备上的程序A可以调用另一台设备上的方法B; 2、跨编程语言:是指服务端和客户端程序的编程语言可以不同; 3、跨操作系统平台:是指服务端和客户端可以运行在不同的操作系统上。 Web Service交互的过程是

是的,Web Service遵循SOAP协议,通过XML封装数据,然后通过HTTP协议传输数据。 图 2 显示了 Web 服务的生命周期。

图2 Web Service生命周期 2.7 系统调试与运行