From 6f0991b8fa22a8779c80efd87b2a20ee509347b6 Mon Sep 17 00:00:00 2001 From: Russell Dempsey <1173416+SgtPooki@users.noreply.github.com> Date: Thu, 15 Sep 2022 16:49:47 -0700 Subject: [PATCH] Added IPFS Encrypted Share (#432) Co-authored-by: Manatsawin Hanmongkolchai --- README.md | 38 ++++++++++----------- data/tools.yaml | 4 +++ src/static/images/ipfs-encrypted-share.png | Bin 0 -> 11836 bytes 3 files changed, 23 insertions(+), 19 deletions(-) create mode 100644 src/static/images/ipfs-encrypted-share.png diff --git a/README.md b/README.md index 086d6d8..ede55fb 100644 --- a/README.md +++ b/README.md @@ -126,24 +126,24 @@ Sniffs the DHT gossip and indexes file and directory hashes. Metadata and search ## Articles -- 2020-08-03: [How to Create a Unity Game on IPFS using Pinata](https://medium.com/pinata/how-to-create-a-unity-game-on-ipfs-using-pinata-d0af18a5bd44) -- 2019-08-14: [Managing storage in a Java application with IPFS](https://kauri.io/article/3e8494f4f56f48c4bb77f1f925c6d926) -- 2019-07-22: [10+ Resources Every IPFS Developer Should Know About](https://medium.com/@vaibhavsaini_67863/10-resources-to-get-started-with-ipfs-5f429dc8a841) -- 2019-05-12: [The Complete Beginner's Guide to Deploying Your First Static Website to IPFS](https://dev.to/agentofuser/the-complete-beginner-s-guide-to-deploying-your-first-static-website-to-ipfs-33po) -- 2019-03-10: [The Case for a Decentralized Social Network](https://medium.com/npfoss/the-case-for-a-decentralized-social-network-2683b727abf5) -- 2019-01-30: [Ultimate Guide to Filecoin Breaking Down Filecoin Whitepaper & Economics](https://medium.com/swlh/ultimate-guide-to-filecoin-breaking-down-filecoin-whitepaper-economics-9212541a5895) -- 2018-08-06: [Content Identifiers in IPFS](https://pascalprecht.github.io/posts/content-identifiers-in-ipfs/) -- 2018-07-11: [On future-proof cryptographic hashes](https://pascalprecht.github.io/posts/future-proofed-hashes-with-multihash/) -- 2017-08-21: [Understanding the IPFS White Paper part 2](https://decentralized.blog/understanding-the-ipfs-white-paper-part-2.html) -- 2017-08-10: [Understanding the IPFS White Paper part 1](https://decentralized.blog/understanding-the-ipfs-white-paper-part-1.html) -- 2017-05-05: [Decentralized indexes for public genomic data](https://github.com/luizirber/2017-recomb) -- 2017-03-31: [Using IPFS for IoT Communications](https://medium.com/@chrismatthieu/using-ipfs-for-iot-communications-b49c2139783a) -- 2016-09-12: [IPFS: The Internet Democratised](https://medium.com/@tonywillenberg/web-3-0-a-truly-democratised-internet-f4b06cb4077b) -- 2016-05-20: [Changelog Podcast](https://changelog.com/podcast/204/) -- 2015-09-18: [The InterPlanetary File System Wants to Create a Permanent Web](http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web) -- 2015-09-13: [Introduction to IPFS](http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example) -- 2015-09-08: [HTTP is obsolete. It's time for the distributed, permanent web](https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html) -- [Downloading nodejs versions with nvm/n over IPFS](https://ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmUx363UFtgiQqkHHsPK3TSDmwoALDo2hrbMWbcxjH2vFc) +- 2020-08-03: [How to Create a Unity Game on IPFS using Pinata](https://medium.com/pinata/how-to-create-a-unity-game-on-ipfs-using-pinata-d0af18a5bd44) +- 2019-08-14: [Managing storage in a Java application with IPFS](https://kauri.io/article/3e8494f4f56f48c4bb77f1f925c6d926) +- 2019-07-22: [10+ Resources Every IPFS Developer Should Know About](https://medium.com/@vaibhavsaini_67863/10-resources-to-get-started-with-ipfs-5f429dc8a841) +- 2019-05-12: [The Complete Beginner's Guide to Deploying Your First Static Website to IPFS](https://dev.to/agentofuser/the-complete-beginner-s-guide-to-deploying-your-first-static-website-to-ipfs-33po) +- 2019-03-10: [The Case for a Decentralized Social Network](https://medium.com/npfoss/the-case-for-a-decentralized-social-network-2683b727abf5) +- 2019-01-30: [Ultimate Guide to Filecoin Breaking Down Filecoin Whitepaper & Economics](https://medium.com/swlh/ultimate-guide-to-filecoin-breaking-down-filecoin-whitepaper-economics-9212541a5895) +- 2018-08-06: [Content Identifiers in IPFS](https://pascalprecht.github.io/posts/content-identifiers-in-ipfs/) +- 2018-07-11: [On future-proof cryptographic hashes](https://pascalprecht.github.io/posts/future-proofed-hashes-with-multihash/) +- 2017-08-21: [Understanding the IPFS White Paper part 2](https://decentralized.blog/understanding-the-ipfs-white-paper-part-2.html) +- 2017-08-10: [Understanding the IPFS White Paper part 1](https://decentralized.blog/understanding-the-ipfs-white-paper-part-1.html) +- 2017-05-05: [Decentralized indexes for public genomic data](https://github.com/luizirber/2017-recomb) +- 2017-03-31: [Using IPFS for IoT Communications](https://medium.com/@chrismatthieu/using-ipfs-for-iot-communications-b49c2139783a) +- 2016-09-12: [IPFS: The Internet Democratised](https://medium.com/@tonywillenberg/web-3-0-a-truly-democratised-internet-f4b06cb4077b) +- 2016-05-20: [Changelog Podcast](https://changelog.com/podcast/204/) +- 2015-09-18: [The InterPlanetary File System Wants to Create a Permanent Web](http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web) +- 2015-09-13: [Introduction to IPFS](http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example) +- 2015-09-08: [HTTP is obsolete. It's time for the distributed, permanent web](https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html) +- [Downloading nodejs versions with nvm/n over IPFS](https://ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmUx363UFtgiQqkHHsPK3TSDmwoALDo2hrbMWbcxjH2vFc) ## Datasets @@ -237,7 +237,7 @@ Sniffs the DHT gossip and indexes file and directory hashes. Metadata and search ## Videos - [Distributed Apps with IPFS - Juan Benet at Fullstack Fest 2016](https://www.youtube.com/watch?v=jONZtXMu03w) - This talk breaks down how to build a dynamic app on top of IPFS with CRDTs, pub/sub, and slick UIs. It also delves into new models for distributed computation, and the ethical importance of distributing the web. -- [IPFS Alpha - Why we must redistribute the web](https://www.youtube.com/watch?v=skMTdSEaCtA) +- [IPFS Alpha - Why we must redistribute the web](https://www.youtube.com/watch?v=skMTdSEaCtA) - [IPFS Simply Explained](https://www.youtube.com/watch?v=5Uj6uR3fp-U) - Let's take a look at how IPFS works, how it can solve issue's like censorship and if it would really work across multiple planets! - [Juan Benet at Stanford 2015](https://www.youtube.com/watch?v=HUVmypx9HGI) - The talk includes a broad look at The IPFS Project, and a discussion on evolving the network stack through open source protocols R & D. - [Textile Build Series - A Free Online Workshop](https://www.youtube.com/playlist?list=PLC8CEtJ9shDznO1tpvGe--BVEWmCKY9_Z) - A full Training Program to teach devs on how to build for the Decentralized Web. The series covers a ton of content, touch multiple parts of the IPFS stack and guides devs through building a simple DApp. diff --git a/data/tools.yaml b/data/tools.yaml index 219a3b4..4b5ae84 100644 --- a/data/tools.yaml +++ b/data/tools.yaml @@ -186,3 +186,7 @@ content: - title: ipns-pin source: https://github.com/justicenode/node-ipns-pin description: A command-line tool to pin stuff via ipns. +- title: ipfs-encrypted-share + picture: /images/ipfs-encrypted-share.png + source: https://github.com/whs/ipfs-encrypted-share + description: Easy to use encrypted file uploader. diff --git a/src/static/images/ipfs-encrypted-share.png b/src/static/images/ipfs-encrypted-share.png new file mode 100644 index 0000000000000000000000000000000000000000..b05a93254e4447ac9cd78cad8cfbcbc88d0ea8df GIT binary patch literal 11836 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 B;Y|Pl literal 0 HcmV?d00001