Inspiration

WebArchive is a great tool to conserve versions of websites at certain points in time. However, since it is centralized, it does not provide proof that the version is indeed the original one and has not been manipulated. Decentralized WebArchive solves this problem by providing verifiability through storing the snapshots on Filecoin and storing metadata of snapshots on-chain.

What it does

Users can paste URLs of Websites or API Calls in Decentralized WebArchive to automatically upload a snapshot of the response to Filecoin. Similarly, all stored snapshots of a given URL can be listed and downloaded on demand.

How we built it

We used Truffle for the development of the smart contracts handling the metadata of snapshots, and Filecoin to upload snapshots. Specifically, we used the textile-js wrapper to interact with Filecoin through our client. The web app was built using react.

Challenges we ran into

We tried to use chainlink to retreive the website response, however we did not receive enough test tokens to deploy it on a test network supporting chainlink. In addition, we would have liked chainlink to return only a checksum of the response instead of the whole response to reduce fees. The checksum would be sufficient to verify that the version uploaded to Filecoin has not been manipulated.

Accomplishments that we're proud of

We're proud to have developed a working version that works on the rinkeby test network and interacts with Filecoin & IPFS.

What we learned

We learned a lot about deploying web3 apps and the current limitations of oracles.

What's next for Decentralized WebArchive

We will add support for nested and lazy-loaded content, and are still working on finding out how to let nodes used by the oracles first execute a job (computing the checksum of the response) and then return this information instead of the whole response. If this is not possible with current oracles, we plan to adapt one of the oracles to support this feature.

Built With

Share this project:

Updates