星云链源代码分析

很早就想写点长一点的源代码分析的文章。平时总是在网上学习别人的文章,也希望自己写点文章帮助到别人。技术开发者可能都有这么个坏习惯,看不懂的东西不会写,看懂的东西不想写。写文章是个细水长流的活,希望以后能多写点好文章。

最近把之前看星云链代码的分析总结在一起,写了一篇比较长,相对完整的介绍文章。 

整个文章太大,放在百度云盘上:https://pan.baidu.com/s/1WpfSsbZkl6kCJGVLxTeeIQ。感兴趣的小伙伴,直接点击下载吧。

文章详细分析了星云链的整体结构以及各种功能模块。比如说,虚拟机部分。NVM是星云链的虚拟机。NVM是Nebulas Virtual Machine的缩写。从源代码的目录来看,Nebulas支持两种虚拟机:1)V8(Chrome V8)2)LLVM。逻辑上,Nebulas目前只支持V8虚拟机。NebulasV8Engine是个核心模块,承上启下,连接区块链和V8沙盒(V8 Engine)。NebulasV8Engine建立go函数和C++函数(Nebulas Native Library)之间的联系。Nebulas Native Libaray调用Native V8引擎执行JS代码。在V8沙盒中,预先提供了一些js库(blockchain.js,crypto.js,event.js,storage.js等等)。这些js库最后依赖go函数实现和区块链进行交互。

文章的目录如下:

星云链源代码分析_第1张图片
星云链源代码分析_第2张图片


星云链源代码分析_第3张图片

你可能感兴趣的:(星云链源代码分析)