作者:牛顿区块
区块连技术开发工程师,Avatar NFT自动化程序猿,Crypto投资者
在如何合法查看加密货币交易?(上)谈到第三方服务商及提到全节点,接着我们了解一下全节点的架构。
时间是个梗:全节点架构
对于全节点的实现,我们需要一台强劲的服务器配备SSD储存(必须有900GB以上),或者云主机。通过安装Parity程序构建全节点,随后建立好防火墻有效保护节点。在全节点上同步所有区块后,我们进入应用平台架构,技术选型为Python Django整个应用服务封装在容器中(Dockor)。
重要的事问三次:数据建模及交易请求
首先需要思考如何在SQL数据库(Django)中组织数据,我们通过深入解构以太坊交易的数据结构。以太坊有两种交易,一种是非合约账户(smart contract)间的交易,另一种是合约账户参与交易。合约地址参与的交易Log中包含ERC20 token通证交易记录。
当加密货币钱包查询交易时,他需要发起三次请求:
(1)获取以太坊交易数据
(2)获取ERC20交易数据
(3)获取合约内部交易数据
因此要全面解析一次交易,我们需要查看这三种数据,来明白哪些数据或者状态发生改变。基于此,我们决定建立如下数据模型(Django models)
用关系型SQL数据库的另一个原因是:筛选查找歷史交易和交易记录呈现的格式接近于传统银行的交易记录,因此方便理解。
Python 编程来下载数据
我们通过编写python程序来下载以太坊账本数据
(1)获取区块和区块中所有交易
(2)将每个交易解析并存储在数据库中
(3)处理交易Log中的operations并在数据库中创建对象
(4)爬取下一个区块并重复2和3
程序代码不超过300行,完成了fetching, processing, storing 和 extracting operations等动作。下载完整的分布式账本,并转换成传统的数据格式需要的存储空间是2.5TB,PostgreSQL依然能够应对自如。因此建议这台账本服务器的存储空间应该控制在10TB的量级上。
Blockchain 的未来展望
随着总统令的颁布,大型投资者,机构和社群都必须向合规和税务等政府部门报告,例如SEC,IRS和HMRC。Blockchain explorer这类软件服务将承担起加密货币合规和税务报告的技术桥樑,使监管机构能够以传统金融的技术手段监管加密世界。Blockchain 技术是否正在掀起第三次 accounting revolution,我们拭目以待。
|