jjyaoao / merkle-dag

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

一、背景介绍

1. file.go文件中定义了以下几种接口:

  • Node为文件或者文件夹,根据Type可以判断
  • File为文件,可以通过[]byte获取文件内容(大家不需要通过io从文件系统或者网络中读取文件)
  • Dir为文件夹,可以通过It()函数获取到遍历文件的迭代器
  • DirIterator为文件夹迭代器,可以获取当前文件夹下的文件/文件夹

2. kvstore 为保存KV的存储器接口,具体实现不需要大家关心,由实验系统来实现

二、实验一 File to DAG

大家根据上面的两个接口,实现 dag.go 中的 Add 函数,将 Node 中的数据保存在 KVStore 中,然后计算出Merkle Root

大家在github上fork当前仓库,然后 git clone 自己的仓库,把代码提交到仓库之后,向学委提交自己的仓库地址。截止日期3月15日。

alt text

二、实验一 DAG to File

大家根据上面的接口,实现 dag2file.go 中的 Hash2File 函数,将 hash 对应的数据从 KVStore 中读出来,然后根据path返回对应的文件内容。

大家在github上fork当前仓库,然后 git clone 自己的仓库,把代码提交到仓库之后,向学委提交自己的仓库地址。截止日期3月31日。 image-20240326173332072

About


Languages

Language:Go 100.0%