本发明属于区块链,具体涉及一种公链模拟系统构建方法。
背景技术:
1、随着信息技术的发展,区块链作为一种新兴技术越来越受到人们的关注。区块链是由多个独立节点组成的分布式数据库系统,具有去中心化、匿名性、可追溯、不可篡改的特性。
2、区块链网络主要有mainnet、testnet、signet以及regtest四种模式,其中只有mainnet主网具有真实价值。由于主网应用测试困难,研究人员多使用testnet测试网进行开发测试。但是,主网与测试网存在着诸多不同,例如主网钱包可以生成legacy、p2sh以及segwit三种地址,而测试网只能生成以m开头的测试网络地址,使得一些针对地址的研究参考价值降低。另外,测试网为全球开发者共用,不同开发人员所进行的研究存在相互干扰的风险。
3、针对上述主网运算难度高、主网与测试网差异大及测试网络易受干扰的问题,本专利提出了一种公链模拟系统构建的实现方法。
4、公链模拟系统构建示意图如图1所示,本方法在不改变公链原有机制的情况下,更新创世区块构建离线客户端,搭建公链模拟系统,该系统能够自动进行节点发现、地址生成、区块打包、交易创建,使得能够在本地局域网模拟真实公链主网,具有较高的真实性、灵活性和可扩展性。
技术实现思路
1、(一)要解决的技术问题
2、本发明要解决的技术问题是如何提供一种公链模拟系统构建方法,以解决主网运算难度高、主网与测试网差异大及测试网络易受干扰的问题。
3、(二)技术方案
4、为了解决上述技术问题,本发明提出一种公链模拟系统构建方法,该方法包括如下步骤:
5、步骤s1,基于核心客户端开源代码,搭建全节点离线客户端;
6、步骤s2,基于步骤s1所述全节点离线客户端以及bcoin 2.2.0开源代码,搭建轻节点离线客户端;
7、步骤s3,基于步骤s1所述全节点离线客户端与步骤s2所述轻节点离线客户端,制作全节点与轻节点镜像;
8、步骤s4,基于步骤s3所述全节点与轻节点镜像,使用docker部署节点容器,编写python脚本与shell脚本映射节点ip地址到全球地理位置,将节点信息存入数据库;
9、步骤s5,根据数据库中节点信息,调用容器系统命令、核心客户端api接口与bcoin2.2.0api接口,启动节点并自动建立网络拓扑,将拓扑信息存入数据库;
10、步骤s6,根据数据库中节点信息,调用容器系统命令、核心客户端api接口与bcoin2.2.0api接口,基于指数分布自动化生成地址,将地址信息存入数据库;
11、步骤s7,根据数据库中节点信息,自定义选择在线全节点启动运算,将区块信息存入数据库;
12、步骤s8,根据数据库中节点信息与地址信息,调用容器系统命令、核心客户端api接口与bcoin 2.2.0api接口,基于指数分布自动化创建转账交易,将交易信息存入数据库。
13、(三)有益效果
14、本发明提出一种公链模拟系统构建方法,本发明的优势之处在于:(1)通过构建的全节点客户端与轻节点客户端所运行的全节点与轻节点,可以正常进行节点发现组成网络,并通过ip与地理位置的映射模拟全球节点;(2)该方案能够模拟全节点与轻节点,构建可自主控制的节点运行环境;(3)该方案能够基于指数分布自动化生成三类地址以及创建交易,与公链主网一致;(4)该方案能够在较低难度下模拟公链,功耗较小。
1.一种公链模拟系统构建方法,其特征在于,该方法包括如下步骤:
2.如权利要求1所述的公链模拟系统构建方法,其特征在于,所述步骤s1具体包括:
3.如权利要求2所述的公链模拟系统构建方法,其特征在于,所述步骤s12具体包括:
4.如权利要求3所述的公链模拟系统构建方法,其特征在于,所述步骤s2具体包括:
5.如权利要求4所述的公链模拟系统构建方法,其特征在于,所述步骤s3具体包括:
6.如权利要求5所述的公链模拟系统构建方法,其特征在于,所述步骤s4具体包括:
7.如权利要求6所述的公链模拟系统构建方法,其特征在于,所述步骤s5的具体过程为:
8.如权利要求7所述的公链模拟系统构建方法,其特征在于,所述步骤s6的具体过程为:
9.如权利要求8所述的公链模拟系统构建方法,其特征在于,所述步骤s7的具体过程为:
10.如权利要求9所述的公链模拟系统构建方法,其特征在于,所述步骤s8的具体过程为: