Lightstreams Smart Vault Dashboard app showcase an example of a decentralize app (Dapp) using Lightstreams Smart Vault SDK in a NodeJS.
This project also showcase the usage of lightstreams-js-sdk, a set of wrappers around Lightstreams Smart Vault and Web3js.
Using this DApp you will be able to upload your files uploaded into a Lightstreams Smart Vault node to manage the its distribution and acceptability. In addition you will be able to also request access to other users files and manage the pending request to your own content made by other users.
https://demo.dashboard.lightstreams.io
To run this project you need to have a local instance of the Smart Vault
running
on your machine. Learn how to do that in our getting started documentation
Your smart vault node can either be connected to Standalone
or Sirius
.
Init node
$> leth init --nodeid=1 --network={standalone|sirius}
Run node
$> leth run --nodeid=1 --network={standalone|sirius} --https
Note: In case you selected
Sirius
you have to wait till it syncs. You can check the status of the network in its block explorer
yarn install
Firstly, copy sample .env as follow:
$> cp .env.sample .env
Note: The
STAKEHOLDER_ADDRESS
is used to top up users accounts with5 PHT
to fund the usage of the app.
Option 1: Standalone Network
Then, edit your .env
with:
NODE_PATH=.
PORT=3000
DEBUG=*:*
GATEWAY_DOMAIN="http://localhost:9091"
WEB3_PROVIDER="http://localhost:8545"
NET_ID="161"
STAKEHOLDER_ADDRESS="0xc916cfe5c83dd4fc3c3b0bf2ec2d4e401782875e"
STAKEHOLDER_PASSWORD="WelcomeToSirius"
and after you have to compile and deploy Dashboard.sol
contract to standalone network:
$> yarn truffle:deploy -- standalone
Account 0xc916cfe5c83dd4fc3c3b0bf2ec2d4e401782875e
is the genesis
account of Standalone
Option 2: Sirius Network
Firstly you will need to create a new wallet in your peer as follow:
$> leth user signup --nodeid=1 --network=sirius
Enter password: ****
{"account":"0xC37c560c2987F214e75868595a1db181E90Ee955"}
Then, edit your .env
with:
NODE_PATH=.
PORT=3000
DEBUG=*:*
GATEWAY_DOMAIN="http://localhost:9091"
WEB3_PROVIDER="http://localhost:8545"
NET_ID="162"
STAKEHOLDER_ADDRESS="${YOUR_ACCOUNT}"
STAKEHOLDER_PASSWORD="${YOUR_PASSWORD}"
ADDRESS_DASHBOARD_CONTRACT="0xFe829259DA7B913528E6A994338aEbFa45E1faae"
Then you can request some free token following this instructions
Now it is time to execute a dev server:
$> yarn web:dev
You can see the list of files you uploaded and which users have access to them. By clicking on one of the little icon you can revoke the access to the users at anytime. Also you can download the content of the files you uploaded.
Grant access to other users to your content without waiting for a access request.
Insert the username of other user and load the list of available items of this user. By clicking on the locker icon you will send a access request to the file owner. In case you already got access to the file it will display the download action.
On this section it will listed the pending access requests from other users to your files.
This project implements a simple freemium model where the STAKEHOLDER_ADDRESS
account transfer
5 PHT
tokens to every new user to fund the initial usage of it. Instead of Lightstreams team has
integrated a Gas Station Network(GSN), a standardized pattern within Ethereum community
where users transaction are funded using an advance implementation of the contract design. If you want to
read more about this topic read this medium article
- IPFS
- Ethereum
- Decentralized Application (DApp)
- Smart Vault