200行代码实现一个可追溯的文件系统
发布时间:2019-11-08 作者:超哥
![](https://cms-store.bj.bcebos.com/5-1.png)
图1 Fuse的原理(引自Wikipedia)
设计思路
![](https://cms-store.bj.bcebos.com/5-2.jpg)
图2 智能合约实现get,put,scan三个接口,用于模拟文件系统
![](https://cms-store.bj.bcebos.com/5-3.png)
图3 智能合约存储的多版本管理
![](https://cms-store.bj.bcebos.com/5-4.jpg)
图4. 把合约空间mount为一块盘
![](https://cms-store.bj.bcebos.com/5-5.jpg)
图5. Xfs的主要代码逻辑
见证奇迹的时刻,运行XFS
![](https://cms-store.bj.bcebos.com/5-6.png)
图6. 用起来本地文件系统体验一致,丝般顺滑
![](https://cms-store.bj.bcebos.com/5-7.png)
图7. 系统调用被映射为智能合约的调用
![](https://cms-store.bj.bcebos.com/5-8.jpg)
图8. 文件写入对应的Transaction的结构(局部)
![](https://cms-store.bj.bcebos.com/5-9.png)
图9 在区块链上跑SQLite
![](https://cms-store.bj.bcebos.com/5-10.jpg)
图10. SQLite底层的文件操作映射到Xfs变成合约调用操作
可追溯的文件系统
![](https://cms-store.bj.bcebos.com/5-11.png)
图11. 可追溯文件系统的效果
![](https://cms-store.bj.bcebos.com/5-12.jpg)