/linchpin-nft-mint-and-manage

linchpin mint and manage non-fungible tokens for claim settlement industries

Primary LanguageJavaScript

tags: Project HackFS-linchpin : Final Submission Notes

HackFS Project linchpin

Final Submission 08/06/2020

Project Info:

Current Judging Timeslot: Monday August 10th, 12:45pm EST

Location Video/Screenshare: https://us02web.zoom.us/j/6966768498

CryptoVoxels (3D-Virtual Reality): https://www.cryptovoxels.com/play?coords=W@308E,103S

4-minute HackFS Project linchpin demo with voiceover: https://www.youtube.com/watch?v=pGnBH00n2uo&feature=youtu.be

Hype video - presentation with Flyover audio - HackFS linchpin Longer Form Demo - 7-minutes no voiceover. includes bonus Swag0x intro flythrough: https://vimeo.com/445652498

Chill video - presentation with Hungry 5 audio - HackFS linchpin Longer Form Demo - 7-minutes no voiceover. includes bonus Swag0x intro flythrough: https://vimeo.com/445390419

Project linchpin HomePage: https://i.imgur.com/onjO2ee.png

Project linchpin ClaimDashboard Code: https://github.com/tenfinney/linchpin-claim-dashboard

Project linchpin NFT Mint and Manage Code: https://github.com/tenfinney/linchpin-nft-mint-and-manage


HACKFS 2020


PROJECT: Linchpin - tools for managing CIDs on IPFS and the public Ethereum blockchain.

Bridging IPFS and Ethereum using PowerGate, FileCoin, Buckets, Unlock, libp2p, 3Box, ENS domains, Fleek and Pinata presented in the CryptoVoxel metaverse.

MAIN APPLICATIONS FOR JUDGING THREADDB AND CIDS TO ETHEREUM AND BACK.

executable subdomain *.web3bits.com
mint https://mint.linchpin.web3bits.com
claimdashboard https://claimdashboard.web3bits.com

COMPLETE LIST OF LINCHPINS

executable subdomain *.web3bits.com registered smarcontract
linchpin main page https://linchpin.web3bits 0xDF5E21b14CD54ABB2fFd32fA6a33A0cFA86a1273
claimmanager https://claimmanager.linchpin.web3bits.com 0x9AdA6Deb70cF2B3ca40E8f082911f82D90A4Bc7F
contentloader https://contentloader.linchpin.web3bits.com 0x18505155a3ac174a9f3148a12b1d8fa18d2db113
nftdashboard https://nftdashboard.linchpin.web3bits.com 0x56cb47517bac9f8ae749b528400355423d24f037
dashboard https://dashboard.linchpin.web3bits.com 0x8a9a83770cf927c1913253f55249cc795da1bdfa
mint https://mint.linchpin.web3bits.com 0x7f0b7157efb856791c2be3189b501ae88c3e23e6 (rinkeby)
wearables https://wearables.linchpin.web3bits.com 0xa58b5224e2fd94020cb2837231b2b0e4247301a6
cryptovoxellease https://cryptovoxellease.linchpin.web3bits.com 0x609fee2c94076d2b44f0b1bdb9ebb33877355c5d
users https://users.linchpin.web3bits.com 0x4a7F138e31186344b607D0f0b7608a9D83f80aD2
claimdeployer https://claimdeployer.linchpin.web3bits.com 0x18505155a3ac174a9f3148a12b1d8fa18d2db113
dashboard https://claimdashboard.web3bits.com 0x8a9a83770cf927c1913253f55249cc795da1bdfa

registered smartcontracts

executable subdomain registered smarcontract
linchpin main page 0xDF5E21b14CD54ABB2fFd32fA6a33A0cFA86a1273
claimmanager 0x9AdA6Deb70cF2B3ca40E8f082911f82D90A4Bc7F
contentloader 0x18505155a3ac174a9f3148a12b1d8fa18d2db113
nftdashboard 0x56cb47517bac9f8ae749b528400355423d24f037
dashboard 0x8a9a83770cf927c1913253f55249cc795da1bdfa
mint 0x7f0b7157efb856791c2be3189b501ae88c3e23e6 (rinkeby)
wearables 0xa58b5224e2fd94020cb2837231b2b0e4247301a6
cryptovoxellease 0x609fee2c94076d2b44f0b1bdb9ebb33877355c5d
users 0x4a7F138e31186344b607D0f0b7608a9D83f80aD2
claimdeployer 0x18505155a3ac174a9f3148a12b1d8fa18d2db113
claimdashboard 0x8a9a83770cf927c1913253f55249cc795da1bdfa

live testing-subdomains

*.web3bits.com
https://linchpin.web3bits
https://claimmanager.linchpin.web3bits.com
https://contentloader.linchpin.web3bits.com
https://nftdashboard.linchpin.web3bits.com
https://dashboard.linchpin.web3bits.com
https://mint.linchpin.web3bits.com
https://wearables.linchpin.web3bits.com
https://cryptovoxellease.linchpin.web3bits.com
https://users.linchpin.web3bits.com
https://claimdeployer.linchpin.web3bits.com
https://claimdashboard.web3bits.com

executable subdomain

linchpin_homepage claimmanager contentloader nftdashboard dashboard mint wearables cryptovoxellease users claimdeployer claimdashboard

NOTE TO JUDGES: The Bootstrap React Components and NPM packages used are avaiable upon request. We try to host everything on-chain and on IPFS nodes and Github is considered a redundancy.

NodeJS React Bootstrap Documentation and Tutorial

Short Description and Usage

Black Dashboard React is a beautiful resource built over Bootstrap 4, React (create-react-app) https://getbootstrap.com/ and reactstrap https://reactstrap.github.io/ to allow you to create powerful and beautiful dashboards. We have redesigned all the usual components in Bootstrap to make it look flat, minimalist and easy to use.

Using the dashboard is very simple, but it does require you to understand basic JavaScript functions, react and reactstrap. To get the desired effect you will need to integrate react components and JS plugins that take a little bit more effort. Down below we list all the files you need to include inside the application to get going.

License

MIT LICENSE

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Getting Started

The Black Dashboard React is built on top of reactstrap (Bootstrap 4), so you can safely use it on your existing or new Reactstrap project. No line of code from Bootstrap 4 was changed, so you don't have to worry about undesired effects in your work.

We provide all the necessary CSS resources. So, to immediately change or get started with our design, include the src/assets/scss/black-dashboard-react.css in your template. Your project will get the new look.

Local Development

Install NodeJs from NodeJs Official Page https://nodejs.org/en/
Select the React bootstrap template and download the .zip file
Unzip the downloaded file to a folder in your computer
Open Terminal
Go to your file project (where you've unzipped the product)
Run in terminal
        npm install
Then run
        npm start
Or you can simply run
    npm run install:clean
which will install node_modules and also will start your project.
If you have an error something containing

Module not found
you need to do the following
    npm install --g cross-env
then change the script, for example the start script from
    "start": "react-scripts start",
to
"start": "NODE_PATH=./src react-scripts start",
The same should be done with any other script that has the above error.
If you have an error containing

props.history of undefined

(this can happen when you integrate our project with another one) then you need to make the changes found here
(Optional) You can create a new react application like this
    Run in terminal
        npm install -g create-react-app
    Go to the folder where you want to create your app
    Run in terminal
        create-react-app your-app-name
    Navigate to your-app-name
    Run in terminal
        npm start
    And after this, you can copy and paste anything that you want from our product (the most important is the src/assets which has all of our style, fonts and images).
    More information → create-react-app https://github.com/facebookincubator/create-react-app

Navigate to https://localhost:3000

More information → react https://reactjs.org/docs/installation.html

Live Production

tutorial for deploying on heroku https://blog.heroku.com/deploying-react-with-zero-configuration
tutorial for deploying on github pages and surge https://medium.freecodecamp.org/surge-vs-github-pages-deploying-a-create-react-app-project-c0ecbf317089
tutorial for deploying on S3 and CloudFront https://medium.com/@omgwtfmarc/deploying-create-react-app-to-s3-or-cloudfront-48dae4ce0af

CSS

To get a good stylish look import these styles inside the application:

import "assets/scss/black-dashboard-react.scss"; import "assets/css/nucleo-icons.css";

Fonts and Icons

If you've started a new project and are copying our product there, be sure to add the following lines of code inside your .html file:

Bootstrap File Structure

black-dashboard-react . ├── package.json ├── CHANGELOG.md ├── ISSUE_TEMPLATE.md ├── LICENSE.md ├── README.md ├── Documentation │ └── documentation.html ├── github-assets │ └── react.svg ├── public │ ├── index.html │ └── manifest.json └── src ├── index.js ├── logo-white.svg ├── logo.svg ├── routes.js ├── assets │ ├── css │ ├── demo │ ├── fonts │ ├── img │ └── scss │ ├── black-dashboard-react │ │ ├── bootstrap │ │ │ ├── mixins │ │ │ └── utilities │ │ ├── custom │ │ │ ├── cards │ │ │ ├── mixins │ │ │ ├── utilities │ │ │ └── vendor │ └── black-dashboard-react.scss ├── components │ ├── FixedPlugin │ │ └── FixedPlugin.js │ ├── Footer │ │ └── Footer.js │ ├── Navbars │ │ ├── AdminNavbar.js │ │ └── RTLNavbar.js │ └── Sidebar │ └── Sidebar.js ├── layouts │ ├── Admin │ │ └── Admin.js │ └── RTL │ └── RTL.js ├── variables │ └── charts.js └── views ├── Dashboard.js ├── Icons.js ├── Map.js ├── Notifications.js ├── Rtl.js ├── TableList.js ├── Typography.js └── UserProfile.js

WORKING NOTES: vvvvvvvv

Buckets or Threads? Served Hot or Cold? Naked or Cloaked? Content Restricted or Open Gateway?

  • Evaluating Public Data vs Encrypted Data poses a myriad of questions regarding content subject matter and privacy concerns. IPFS through buckets and PowerGate allow for specified transport channels that conform to both geographic and contents specific storage. Additionally, Each use-case, requires the user, and miner to make market based decisions to either pin content for free in hopes it remains, or pay for redundancy and longevity of the content.

  • The IPFS network basically is a function of hard drives and ram. Hot and cold storage and a payment layer for storage negotiation.

    -[] Is IPFS a superior solution to Ethereum or a valuable complement to it?

    -[] It is unfeasible to manage the high-demand load of transactions on the current public Ethereum based on the physical requirements or serving content. Therefore it has to operate as a side-rail protocol but it needs a blockchain-style integration to manage the miner rewards for sserving the data. Filecoin

    -[] Sometimes we want an NFT, or othertimes a .vox file, or maybe just access to a image or text file, a document, or video. Maybe you need a JSON file to run commands. Even smart contract and ABI and all sorts of encrypted private information too.

    -[] One of the greatest features of IPFS is it’s flexibility. However, storing digital files is not completely free.

    -[] The cost of production is benefit of a transactional service in Filecoin the sdtorage there are interesting opportunities. Greate a group around the economy of digital evidence in court cases, The Evidencer value is the transaction of the persistent and consistence availability of content storage.

    -[] Content storage tradeoffs. IPFS data is having to store data 1. in the clear and one with encoding on it. There are reasons for making this slower and better characteristics. The verified slowers create a more redundant second copy just in case. Now its just pragmatic to do it. Go for security now and see if we can get to efficiency.

    -[] And we constantly move between content management for storing files and blockchain for executing on chain tasks and storing records on a public blockchain.

    -[] Bridging will need to take place on ethereum or otherchains because IPFS/FileCoin needs to release with core component and let the rest follow. see: exaples here https://github.com/filecoin-project/specs-actors/blob/master/actors/builtin/multisig/multisig_actor.go https://github.com/filecoin-project/specs-actors/tree/master/actors/builtin/paych https://github.com/filecoin-project/specs-actors/blob/master/actors/builtin/account/account_actor.go

The CID is the Linchpin

-[] A CID is a self-describing content-addressed identifier for distributed systems.

-[] The CID is a tool used to verifier the location and the veracity of data.

-[] IPFS CID (address to some data, file or folder) input. CID based management

-[] A CID similar to a index that allows a query to efficiently retrieve data from a database. Indexes are related to specific tables and consist of one or more keys.

-[] Indexes are used to quickly locate data without having to search every row in a database table every time a database table is accessed.

-[] In IPFS the CID is a powerful tool. It keeps track of the content of the file, the locaton of the file, ensures the integrity of the file, can be universally available and also gated.

-[] They are multi protocol, meaning you can use them and get IPFS hashes, IPNS addresses, and ThreadDBs all at the same time.

Considerations in submitting a project to HackFS - The Sponsors

-[] Sponsors include Protocol Labs/IPFS Filecoin Consensys ENS MetaMask Inura Textile 3Box Fleek Pinata and Unlock

-[] First let’s consider the sponsors objectives. Do Protocol Labs and Consensys objectives align with ours? If not, a new strategy is in order. If they do, it in imparative to present a solution that they will see value from their own points of view. For example, Tachyon by Consensys, is a global network of experts and advisors who invest in core blockchain development and help guide founders in building validated, market-ready Web 3.0 businesses. So what is their interest in the HackFS> It is to find an idea to incubate it and the exploit it to maximize the profits just like any other for profit business.

-[] Venture capital firms often struggle to find top talent for innovative products to invest in and sometimes when they do, the turn and limit their autonomy thus creating a vicious cycle. Firms that do not successfully address the autonomy-control challenge are bound to face difficulties in attracting and retaining the most creative workforce. These strategies can help break this cycle by diligently setting the stage of hackathons instead of micromanaging the innovations.

-[] We have integrated the HackFS sponsors into our submission to highlight practical solotions and the wide spectrum of products being built that bridge IPFS and Ethereum.

-[] We will only be addressing purely public transactions, ones that do not need to be encrypted. While encrypted mmessages is very important in the development of Web3 technlogies and crucial to privacy preserving transaction with tools like encrypted buckets, client side encryption and masked transactions like zero-knowledge proof our team decided that our submission may be too expansive, thus detracting from it’s core content. Therefore we will only demostrate public transactions.

-[] Successful hackathon organizers promote new ideas by removing themselves from providing feedback and creating a safe environment in which new ideas receive very early peer-to-peer feedback. This is done, in many hackathons, in the form of a first ideas kickoff session. A kickoff allows participants to be “on stage” presenting, articulating, and elaborating on the initial ideas they have in mind to solve their challenge.

-[] We also wanted to highlight some of personal projects by adding them into the submission and demonstration and presentation. These include NFT42, InfiNFT, Machi X, MetaFactory, X5Engine, Web3vm and LexDAO.

Our main focus is the NFT space.

-[] We are going to deliver these application in a form of a digital vending machine a Web3 Vending Machine (Web3vm); one that provide self-served smart-contracts, ones that serve simple, but important tools of a decentralized web.

-[] With Web3 technologies like IPFS, libp2p, and Ethereum the sum may be greater than its parts. Take for example CrytoVoxels a 3D metaverse and digital playground. CrytoVoxels extends and leverages both IPFS and Ethereum into its core propsition while it has no control or say-so over either technology. But CryptoVoxels has masterfully leveraging features of several technologies where the total user experience becomes much greater and more valuable because of the waythese technologies inter-operate with each othet making underlying experience more valuable and rewarding than a single technology on its own.

-[] MaxNFT for defining an artists usage and royalty rights

-[] This is the reaon we selected CryptoVoxels to be the stage for our team’s HackFS submission, demostration and presentation. Enjoy project linchpin, the bridging of IPFS and Ethereum with Filecoin and using local syndicates ring-nodes running on libp2p technologies.

NFT Use Cases Other Use Cases
NFT for art on IPFS + Textile + Filecoin. Patient controlled medical record platform
NFT to provide ownership of a file. Business Files and Records
Audio, Video and other Digital File Storage Digital Evidence for Courts
Personnel Files Wills and Trusts

PRESENTATION CORE CONTENT

-[] Our presentation today starts flat and becomes more complex later with the implementation of buckets from textile, filecoin from protocol labs, and local-ring and routing using libp2p, Pinata and Fleek for post redundancy.

-[] We will run our presentation in CryptoVoxles to demonstrate how common Ethereum and IPFS transaction happen in the metaverse.

-[] Native Web3 meta transactions Remove dependency on msg.sender and msg.value from smart contracts

-[] To perform meta-transactions, a user needs to sign a message. After a user signs it, DApp sends the message to a relayer who sends that message into an actual transaction to a public node so the transaction can be mined.

-[] Bare bones application that runs run a simple piece of javascript for trying some different retrieval strategies to their local ring or client. The user downloads a piece of code that is just a javascript where the user picks a strategy that works best for their content delivery needs. And that allows lots of people to make lots of dynamic decisions for a content delivery network.

FileCoin

-[] IPFS has no incentivized storage layer, Filecoin is incentivized storage. And Powergate provides a bridge

-[] Push config corresponding to CID for persistence of data on Filecoin (cold upload)

-[] Users perform Create, Read, Update, Delete (CRUD) operations such as adding files, opening files and managing the encrypted buckets in which the files reside. Each action is can utilize client-side encryption and storing the files privately. The files are stored locally on the users local node and will not we shared outside the local network unless a router port is opened.

-[] The cost of content delivery storage is outpacing the cost of content storage so over time. Moving the content becomes the higher cost overtime because storage capacity in disks is outpacing the cost of delivering over cabels and wirelss infrastructure. This will result in people amassing large amounts of data they control and also take advantage of providing low cost storage for others that need it.

-[] Filecoin offers Contract Based Accounts upgradable Contract Wallets are created for each user which acts as a proxy contract and all the filecoin transactions are routed via a Contract Wallet. User needs to store all tokens and funds in this Contract Wallet.

PowerGate

-[] Filecoin network interaction for file storage and retrieval market.

-[] IPFS has no incentivized storage layer, Filecoin is incentivized storage. And Powergate provides a bridge

-[] Powergate is multi-tiered with a hot and cold tiers of storage. IPFS nodes act as the hot caching layer, and Filecoin serves as the cold persistance layer.

-[] FFS (Filecoin File Storage) module operates as pure IFPS/IPNS/and HTTP Gateways

-[] PowerGate responds to Actors: account, cron, exported, init, market, miner, multisig, paych, power, reward, system, verifreg (https://github.com/filecoin-project/specs-actors)

-[] PowerGate provides the client a connection to the service API at a hardcoded default address /ip4/0.0.0.0/tcp/5002 in the code block. Once the client is created, client.FFS.Create() does the job of creating an FFS instance and returning the ffsID and the ffsToken.

Buckets

-[] Fleek on top of Textile Threads and Buckets on top of IPFS

-[] Buckets provide a set of Powergate APIs over a hosted service with fully private file upload via encrypted textile buckets.

-[] Some of PowerGate’s APIs are exposed for buckets which can be moved to deals in Filecoin with singular commands.

-[] Folder in, Folder out. Changes to folder in, updated folder out. With encryption and IPFS network all handled by Powergate.

-[] Hub resources: Key based access to give a user the ability to push to remote nodes; ones that persist on IPFS and with a hub store on Filecoin. For Buckets, an adminstrator level encrypted bucket sharing and synchronization schema will be used.

-[] Finally, they let you synchronize that with remote peers (i.e. for persisting on always-on IPFS nodes like the Hub)

-[] Personal photo gallery - google photos but on textile + encrypted

-[] With experimental local syndicate rings using content-specific nodes using IPFS with a Powergate

-[] Hosted PowerGate service like local content focused rings using libp2p libraries and router port provisioning

USER INTERFACE

-[] Virtual tours to digitally visit CryptoVoxel galleries where players view and purchase NFTs. Visiting helps with pinning to ensure longevity.

-[] Virtual Artist Spaces -- make a hangout spot in cryptovoxels for artists to hang out create and mint art for in-game galleries and art shows

-[] For our presentation and demonstrations, we use a few very simple databases; ones that are easy to understand.

-[] 3 columns each, and index number a source name and the ipfs hash of the content.

-[] We have used easily deployable NodeJS bootstrapped applications wired with Web3 IPFS and Ethereum protocols, similar to the IPFS-js light, with minimal overhead/dependencies. (https://github.com/textileio/js-ipfs-lite)

-[] We want the dApp to operate without downloading any external wallets, plugins or having to purchase any crypto currency from an exchange. This is possible using the concept of meta transactions where user is able to do a transaction on blockchain with zero balance account and any third party can pay for the transaction fees for the user. CHI token, Swag0x onboarding, Web3vm bootstrap. And there is also Wyre if users want to get started with a debit card.

|UI Design Options | UI Design Options | | Visualizer like Filscan.io Filplorer.com Filscout.io | A folder-like management system and dashboard | | Superimposed datastructures in a CryptoVoxel parcel as live animations or video. | Smart contracts on ethereum that call content on Filecoin (Like OpenSea and NFTs) | | Mini-applications that pass content through ipfs hot (Web3vm) | Convert any Textile Thread address into a webhook |

DEMO ONE - IPFS STANDARD USES

-[] Another simple example example of an IPFS to Ethereum brigde is the storing and interacting with business and documents that require permanent and reliable storage. Many government and business forms do not require encryption because they are in intended for public use.

-[] Pull any Smart Contracts from OpenLaw and WorldLaw (Smart Contract and ABI stored in Buckets with underlying content)

-[] We use sample lease agreement, but any type of form will do. Initial the document it is represented in a represent it as a pdf file stored locally on a computer or device, but it can be a text document, spreadsheet or any type of file. -[] First you take the local file (one on your computer) and send it to IPFS to get the return hash. Then you pass that hash along to one of the nodes that is probably hosting that content. Here we use the IPFS gateway and the Infura gateway, and we can easily usae ARWEAVE and Pinata as additional pinning protocols

-[] Introduction to CryptoVoxels metaverse using IPFS and Ethereum

PART ONE - IDENTITY AND DOMAIN NAMES

ENS is a starting point for human readable indexes on IPFS that speak the Ethereumlanguage.

-[] The Ethereum Name Service (ENS) is a powerful feature of Ethereum and operates as an independent entity. ENS allow for content hashes in IPFS to be referenced in the domains records. We use the domain sixfinney.eth as an example. We find this a simple starting point to bridge betweeen IPFS and Ethereum

-[] ENS templates/uploaders also persist websites with Filecoin (ex using same Ethereum wallet?)

-[] Query the web3 address and return ENS characteristics in CV

-[] Integration with keybase for allowing storing the folder which are publicly available for the user on FileCoin network.

-[] 3Box and Ceramic provide a top level separation of files by identity and can be public or private or public. Use CID for all, but do NOT broadcast or store private files/folders outside local IPFS nodes.

-[] Use a Keybase extension to local IPFS client that will automatically copy the public files/folders to your node. (see StakeOnMe)

-[] This may come in the form of a permanent identity record in aencrypted buckets with signed identity documents (passports, ID, etc).

PART TWO - NON-FUNGIBLE TOKENS IN CRYPTOVOXELS AND PERMISSIONED EVENTS

-[] Straight NFTs vs MaxNFTs

-[] Build transloadit for personal photo collections -- purely API based backend for resampling, sorting, storing. Using ipfs, no locking, open formats. Then invite developers to build any kind of gallery/user interfaces they want on top.

-[] Badges for achievements (Non-Transferable) like Skill Levels stored on IPFS and managed via smart contracts. See Swag0x and WorldLaw parcels. (https://www.cryptovoxels.com/parcels/1311 and https://www.cryptovoxels.com/parcels/1378)

-[] Music sharing service: for artists before they release music so they control who can access the content and prevent it from getting leaked. Producing edits, tweaks and additions via permission. Machi-X

-[] An artist could upload a piece of content through textile and then through an ERC NFT token structure rewards for buyers incentivizing first purchase and collecting InfiNFT

-[] Limited edition records and brands -- Brand Devlopement tracking assests by maxNFT - MetaFactory

-[] Private curated art gallery tours in CryptoVoxels where all assests are derved from CID’s in buckets negotiated through PowerGate and FileCoin (Junkyard Tour in CryptoVoxels)

-[] Limited edition NFT tokens with encrypted data that is unlocked by IPFS files and content is delived thorugh automated functions on smart-contract in Ethereum, Once the services are rendered the user keepsthe NFT as a souvenir.

-[] Service to manage continuous payments using multiple token swaps and money streaming for a group of people in one tap. It ensures on-chain payment approval from trusted authorities and data privacy via end to end encryption.

-[] Private p2p video chat and messaging using libp2p protocols; something simular to a token-based or key-based Sensitive Compartmented Information Facility SCIF

PART THREE - MANAGING CONTENT IN BUCKETS ON A RING OF LOCAL NODES EXPOSING ONE SERVER VIA LIBP2P

-[] Textile PowerGate - Store it on PowerGate.

-[] Image Search - Indexing Keypoints based partial image hashes to find partial image content (composite images)

-[] Libp2p network connectivity mapping general visualization of libp2p connections for nodes that voluntarily report this data -- could be useful to introspect ipfs, filecoin, eth2, polkadot, keep, 0x, etc.

-[] Allow a storage miner to “follow” a collaborative cluster. Syndicates use FileCoin wallet associated with a collaborative cluster to pay the storage miner.

Collaborative Clusters

-[] Content Discovery on Local Area Networks and Private Networks

-[] Gated Content Management by Subject Type and Jurisdiction (Civil Prodecures)

-[] Incentivized DHT -- pay for DHT PUTs and/or GETs

-[] DHT access visualization. Visualize how dht queries work and how they access nodes in the network

SOME TEAM ACTIONS TO GET STARTED

Syndicate of a Local Node Ring

-[] Connect ring-nodes to cold network strapped by Filecoin

-[] One gateway hot node exposed to the WAN using libp2p

-[] A proxy (lead node) negotiates the cold storage deal

-[] the local ring picks a lead node as a proxy

-[] Assign .eth names to ring-nodes

-[] Use content routing in libp2p

-[] Storage and Retrieval schemas for content indexing

-[] Use the JSON files to help with parsing the valuable information from IPFS to parse the Ethereum blockchain to deliver the content.

-[] Run javascript to parse all eth erc20 and erc721 assets via meta-transactions

-[] Compose a custom CID hash by pubsub topic

-[] Pull all json files from 721 URI

-[] Token or NFT badge muti-drop by a gatekeeper or proxy account (Airdrop.eth) using a treasury relay account

-[] Provided Airtable database for running demos and tests

-[] Devlop a solution and protocol using NodeRed.

-[] Run Tests on QUICKBEAMS Web3 accounts (Qfinney.eth, Ufinney.eth … Mfinney.eth, Sfinney.eth)

CODE EXAMPLES

Add data to IPFS cache and get CID (hot upload) async function hotUpload(blob) { var audioBuffer = await blob.arrayBuffer(); var input = new Uint8Array(audioBuffer); const { cid } = await pow.ffs.addToHot(input); return cid; } The blob already contains the recorded audio data that I convert to an Uint8Array to pass as an input parameter to pow.ffs.addToHot(). Push config corresponding to CID for persistence of data on Filecoin (cold upload) async function coldUpload(cid) { const { jobId } = await pow.ffs.pushConfig(cid); return jobId; } This default config that we push corresponding to the cid here determines how we wish to persist the content on Filecoin.

async function getTrackContent(cid) { const audioBytes = await pow.ffs.get(cid); const audioBuffer = audioBytes.buffer; var blobOpts = { 'type' : 'audio/wav; codecs=0' }; if (MediaRecorder.isTypeSupported("audio/wav;codecs=MS_PCM")) { blobOpts = { 'type' : 'audio/wav; codecs=MS_PCM' }; } const blob = new Blob([audioBuffer], blobOpts); const url = URL.createObjectURL(blob); return url; } pow.ffs.get() tries to first retrieve the content corresponding to the CID from IPFS cache and if unavailable, gets the content from Filecoin after a confirgurable timeout.

// watch the FFS job status to see the storage process progressing const cancel = pow.ffs.watchJobs((job) => { if (job.status === ffs.JobStatus.CANCELED) { console.log("job canceled") } else if (job.status === ffs.JobStatus.FAILED) { console.log("job failed") } else if (job.status === ffs.JobStatus.SUCCESS) { console.log("job success!") } }, jobId)

Action Items

============================

The infomation below represents some smart-contracts that were used to build out the linchpin protocols.
They are here for reference only.

tarvos@tarvos:/media/tarvos/WORLDLAW-00/APPDEV/v60/bluefin-app-v60$ truffle compile

Compiling your contracts...

Compiling ./src/contracts/ClaimManager.sol Compiling ./src/contracts/ContentLoader.sol Compiling ./src/contracts/EvidenceManagement.sol Compiling ./src/contracts/Marketplace.sol Compiling ./src/contracts/Migrations.sol Compiling ./src/contracts/WLPawn.sol Artifacts written to /media/tarvos/WORLDLAW-00/APPDEV/v60/bluefin-app-v60/src/abis Compiled successfully using:

  • solc: 0.5.8+commit.23d335f2.Emscripten.clang

tarvos@tarvos:/media/tarvos/WORLDLAW-00/APPDEV/v60/bluefin-app-v60$ truffle migrate --reset

Compiling your contracts...

Everything is up to date, there is nothing to compile.

Starting migrations...

Network name: 'development' Network id: 5777 Block gas limit: 0x6691b7

1_initial_migration.js

Replacing 'Migrations'

transaction hash: 0x96dccee6269b76af4e96223493eefadc8da45150ed36e2390a2b004c9b135fe5 Blocks: 0 Seconds: 0 contract address: 0x20cA44DC775A0543213e6730BF3e49b8B893a40f block number: 552 block timestamp: 1576254550 account: 0x4101d5864731524c2725BBe20dF7cd70713885AC balance: 95.78707998 gas used: 261393 gas price: 20 gwei value sent: 0 ETH total cost: 0.00522786 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.00522786 ETH

2_deploy_content_loader.js

Replacing 'ContentLoader'

transaction hash: 0x96cf502d24ce19125b1fcb1aa90a4788137a5a450cf6ff444b9e4d12b96f4053 Blocks: 0 Seconds: 0 contract address: 0x7b6405aBB7869B9A1Cf467B976B23749Ab8A0517 block number: 554 block timestamp: 1576254551 account: 0x4101d5864731524c2725BBe20dF7cd70713885AC balance: 95.7771298 gas used: 455486 gas price: 20 gwei value sent: 0 ETH total cost: 0.00910972 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.00910972 ETH

3_deploy_evidence_management.js

Replacing 'EvidenceManagement'

transaction hash: 0xe2870714bca565ead98de162beadda297781dcb6e0b4faa3fb60b37faf952651 Blocks: 0 Seconds: 0 contract address: 0x94EeA99311F3d9c42f108c133BF60baA6590CA9D block number: 556 block timestamp: 1576254551 account: 0x4101d5864731524c2725BBe20dF7cd70713885AC balance: 95.75948624 gas used: 855155 gas price: 20 gwei value sent: 0 ETH total cost: 0.0171031 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.0171031 ETH

4_deploy_claim_manager.js

Replacing 'ClaimManager'

transaction hash: 0x46c3b8ec92a96cc5d7d759d5c8d7f00273dbd721f41b3036b9f9f877466bd451 Blocks: 0 Seconds: 0 contract address: 0xb9a9d6068dC2Df8E0135EA849a3f7d55D1b7bDa1 block number: 558 block timestamp: 1576254552 account: 0x4101d5864731524c2725BBe20dF7cd70713885AC balance: 95.74085496 gas used: 904541 gas price: 20 gwei value sent: 0 ETH total cost: 0.01809082 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.01809082 ETH

5_deploy_marketplace.js

Replacing 'Marketplace'

transaction hash: 0x61606f0259d6701a24d9515a21bb9328edc5344009c89907655a36b5d2b27364 Blocks: 0 Seconds: 0 contract address: 0xb5287010334A1C0B7A8174b9f2E2cee79855ddf9 block number: 560 block timestamp: 1576254552 account: 0x4101d5864731524c2725BBe20dF7cd70713885AC balance: 95.7214044 gas used: 945505 gas price: 20 gwei value sent: 0 ETH total cost: 0.0189101 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.0189101 ETH

6_deploy_wlp.js

Replacing 'WLPawn'

transaction hash: 0xb4fc52660f4814eec6a93ff20b261dccd8c1b9251ea873cc9c63f420ff85a542 Blocks: 0 Seconds: 0 contract address: 0x78dccA9E1414bB283A7E196c7CADF71F16cb6629 block number: 562 block timestamp: 1576254553 account: 0x4101d5864731524c2725BBe20dF7cd70713885AC balance: 95.67872236 gas used: 2107079 gas price: 20 gwei value sent: 0 ETH total cost: 0.04214158 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.04214158 ETH

Summary

Total deployments: 6 Final cost: 0.11058318 ETH

tarvos@tarvos:/media/tarvos/WORLDLAW-00/APPDEV/v60/bluefin-app-v60$

================================================================================

================================================================================ HYDRA

================================================================================

hydra@hydra:/media/hydra/WORLDLAW-00/APPDEV/v60/cm-bluefin-app-v60$ truffle compile

Compiling your contracts...

Compiling ./src/contracts/ClaimManager.sol Compiling ./src/contracts/ContentLoader.sol Compiling ./src/contracts/EvidenceManagement.sol Compiling ./src/contracts/Marketplace.sol Compiling ./src/contracts/Migrations.sol Compiling ./src/contracts/WLPawn.sol Artifacts written to /media/hydra/WORLDLAW-00/APPDEV/v60/cm-bluefin-app-v60/src/abis Compiled successfully using:

  • solc: 0.5.12+commit.7709ece9.Emscripten.clang

hydra@hydra:/media/hydra/WORLDLAW-00/APPDEV/v60/cm-bluefin-app-v60$ truffle migrate

Compiling your contracts...

Everything is up to date, there is nothing to compile.

Starting migrations...

Network name: 'development' Network id: 5777 Block gas limit: 0x6691b7

1_initial_migration.js

Replacing 'Migrations'

transaction hash: 0x9daf21672b0d6e9fd2a7185c48b601c843c80351b9979893efbb6413ea28308f Blocks: 0 Seconds: 0 contract address: 0xa90e4dE7DAc4f7B7c09c86b3D00c93Dfa9eeeC34 block number: 403 block timestamp: 1576657387 account: 0xf17358b9e833E429B8fEbe51B08D6212543e3e5F balance: 97.7193699 gas used: 263677 gas price: 20 gwei value sent: 0 ETH total cost: 0.00527354 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.00527354 ETH

2_deploy_content_loader.js

Replacing 'ContentLoader'

transaction hash: 0x526bb29e65700b982158725bb32f84391e88b28c9f52d26a52dba780031c9c1e Blocks: 0 Seconds: 0 contract address: 0x79b6DB8d2B25029349866e599dCD710BbC0349cb block number: 405 block timestamp: 1576657387 account: 0xf17358b9e833E429B8fEbe51B08D6212543e3e5F balance: 97.70937264 gas used: 457840 gas price: 20 gwei value sent: 0 ETH total cost: 0.0091568 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.0091568 ETH

3_deploy_evidence_management.js

Replacing 'EvidenceManagement'

transaction hash: 0x55df779e9d777508a0ce907a32a0e91ca084e75d6a3e96b6c4eeffaeaed71504 Blocks: 0 Seconds: 0 contract address: 0x24846E4ECc228e848BfAffC0B778F2BA1B857315 block number: 407 block timestamp: 1576657388 account: 0xf17358b9e833E429B8fEbe51B08D6212543e3e5F balance: 97.69168212 gas used: 857503 gas price: 20 gwei value sent: 0 ETH total cost: 0.01715006 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.01715006 ETH

4_deploy_claim_manager.js

Replacing 'ClaimManager'

transaction hash: 0x663ebcc6a2d1d95e6d71feb9e819a3c2ec54381241b7fdcaa021df239da8f43d Blocks: 0 Seconds: 0 contract address: 0x0EfE33eef621a2c93bc56b6D37D4E604AA024f36 block number: 409 block timestamp: 1576657388 account: 0xf17358b9e833E429B8fEbe51B08D6212543e3e5F balance: 97.67300388 gas used: 906889 gas price: 20 gwei value sent: 0 ETH total cost: 0.01813778 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.01813778 ETH

5_deploy_marketplace.js

Replacing 'Marketplace'

transaction hash: 0xea8dd1bbbc2b689adf20321335eb771ae33db037b81b896249ebe4e1bfeb6f10 Blocks: 0 Seconds: 0 contract address: 0x9fA3Eb1d74f810D2035E8BEAC8600eb842B2729c block number: 411 block timestamp: 1576657389 account: 0xf17358b9e833E429B8fEbe51B08D6212543e3e5F balance: 97.65350636 gas used: 947853 gas price: 20 gwei value sent: 0 ETH total cost: 0.01895706 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.01895706 ETH

6_deploy_wlp.js

Replacing 'WLPawn'

transaction hash: 0x4df0e119b466791402cf1ad04659cfc90cfb3513f98136aaaa3b6d50d8e7e067 Blocks: 0 Seconds: 0 contract address: 0x4157d03491870F1B916C609C6935eA7E1326F7f5 block number: 413 block timestamp: 1576657389 account: 0xf17358b9e833E429B8fEbe51B08D6212543e3e5F balance: 97.61077736 gas used: 2109427 gas price: 20 gwei value sent: 0 ETH total cost: 0.04218854 ETH

Saving migration to chain. Saving artifacts


Total cost: 0.04218854 ETH

Summary

Total deployments: 6 Final cost: 0.11086378 ETH