Jni符号表
本文是之前博客文章
的延续。之前的文章主题是如何利用rust-jni库提供便于java使用的rust jni代码。本文在之前的基础上继续提供后续关于jni符号,或者type的说明。
这篇文章是上一篇使用rust写安卓库的续篇,本身按照上一篇文章的介绍已经完全基本讲清楚了使用rust给安卓写库的基本方面,这篇文章继续在之前的状态上补充,力求文章完备。
记录一次烦人的编译问题,因为这个过程可以能可能会对以后解决类似问题有一定的参考性,特地做个记录。
在之前的文章中提到了SPV节点,一直说要写文章说明是什么是比特币SPV节点。网上有很多文章来描述这个问题,我之前也写过相关的文章,有兴趣的话可以回去查阅相关问题。简单来说,SPV节点最主要的特点就是:只存储头信息(BlockHeader)。所以他做到了存储数据规模大幅减少,只有完整数据的千分之一的水平。所以SPV节点适合在存储有限的设备上运行,比如手机客户端。但是本文的重点不是重复讲述SPV节点的概念的,而是换一个角度,从比特币网络协议入手,描述如何从全节点下载SPV所需的数据到节点上(SPV节点上)。这个所需的的信息,就是merkerblock。
更新:rust在2021年实现了const
generics。以下的问题不会存在了。
在rust中,我们可以很方便的用Derive给结构体实现Debug宏(是编译器自动实现的),但是编译器给数组实现的Debug只有长度在32以下的,要是超过32位就得自己实现了。所以出现了本文的问题
吾日三省吾身
——《论语·学而》
距离上次频繁发布文章,已经过去一个多月了。这一个多月以来,我非常认真的研究关于取款链交易和SPV节点相关的问题。今日又听闻leader关于自己软件生涯的反思和总结。leader开发生涯漫长,反思亦有重大价值,故作文。