Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPFS utilities milestone 2 #815

Merged
merged 4 commits into from
Apr 21, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions deliveries/ipfs_utilities-milestone_2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Milestone Delivery :mailbox:

**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and the delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).**

* **Application Document:** [IPFS Utilities application](https://github.com/w3f/Grants-Program/blob/master/applications/ipfs_utilities.md)
* **Milestone Number:** 2

**Context**

This delivery contains one repository with the implementation of an IPFS integration into Substrate. It mainly contains changes and additions to the implementation delivered in Milestone 1 of this project.

For more details please check the Grant application document.

**Deliverables**

List of public GitHub repositories as deliverables:
* [Substrate IPFS](https://github.com/TDSoftware/substrate-ipfs/tree/milestone-1)

| Number | Deliverable | Link | Notes |
| ------ | ------------------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0a. | License | https://github.com/TDSoftware/substrate-ipfs/blob/milestone-1/LICENSE-APACHE2 | Apache 2.0 |
| 0b. | Documentation | https://github.com/TDSoftware/substrate-ipfs/blob/master/docs/IPFS.md | We provided and separated and **inline documentation** of the code, a meaningful readme for all modified modules in the repositories. |
| 0c. | Testing | https://github.com/TDSoftware/substrate-ipfs/blob/milestone-2/docs/IPFS.md | Core functions are covered by unit tests as far as reasonably applicable to ensure functionality and robustness. |
| 0d. | Code | https://github.com/TDSoftware/substrate-ipfs/tree/milestone-2 | Public GitHub repository with the implementation. |
| 0e. | Article | https://medium.com/p/6cfcb537f660 | Wrote and published an medium article. See link. |
| 1. | Fetch File Implementation | https://github.com/TDSoftware/substrate-ipfs/blob/milestone-2/frame/tds-ipfs/rpc/src/lib.rs | Implement the logic that allows clients to fetch a file from IPFS with the Substrate node. E.g. #[prg(name = "nft_getFileById")] will be designed and developed that allows users to redirect a request, which returns Result<String>, to a file server. The PRG mechanism is used to provide a RPC API that can redirect to a file server. The existing IPFS "get file" extrinsic will be obsolet as we provide this new RPC API. |
| 2. | Web3 Client Extension | https://github.com/TDSoftware/substrate-ipfs/blob/milestone-1/frame/tds-ipfs/ https://github.com/TDSoftware/substrate-ipfs-example-ui | The web3 client will be extend to show the (PRG) redirect feature and retrieve corresponding files via a public IPFS gateway. |
| 3. | Local Node Fetch Implementation | https://github.com/TDSoftware/substrate-ipfs/blob/milestone-2/frame/tds-ipfs/rpc/src/lib.rs | Implement a file fetch RPC API, that returns the file from the local embedded IPFS node instead of the public IPFS gateway. This is helpful when waiting for the file to be available on the public IPFS gateway. |

**Additional Information**
We want to continue on developing and applied for another milestone (3) as we discovered potential optimisations during the benchmarking.