General Architecture
Hashed Systems is a blockchain based platform that allows users to create and manage their own marketplaces, and to create and manage their own assets. It is built on top of Substrate, and uses the Afloat framework.
Components
Component | Description |
---|---|
Afloat Client API | This client api is used to provide methods to interact with gatedMarketplace, uniques and fruniques pallets and go through Afloat specific flow. |
Marketplace UI | This is the UI for the Hashed Network Portal, it allows users to interact with all the components of the system. |
Marketplace pallet | This pallet allows users to create and manage their own marketplaces. |
Fruniques pallet | This pallet allows users to create and manage their own fractional assets. It's built on top of Uniques pallet |
Confidential Documents Server | This server provides the backend services for the Hashed Confidential docs services. |
Confidential Documents API | This client api is used to provide methods to interact with the Hashed Confidential docs services. |
Faucet Server | This server provides the backend services for token distribution for new accounts, reducing friction for user onboarding. |
Repositories (all MIT licensed)
Component | Repo | Language |
---|---|---|
Afloat Client API | https://github.com/hashed-io/afloat-client-api | Javascript |
Marketplace UI | https://github.com/hashed-io/hashed-network-portal-ui | Quasar/Vue |
Marketplace pallet | https://github.com/hashed-io/hashed-substrate/tree/develop/pallets/gated-marketplace | Rust |
Fruniques pallet | https://github.com/hashed-io/hashed-substrate/tree/develop/pallets/fruniques | Rust |
Confidential Documents Server | https://github.com/hashed-io/hashed-private-server | Javascript |
Confidential Documents API | https://github.com/hashed-io/hashed-confidential-docs-client-api | Javascript |
Faucet Server | https://github.com/hashed-io/faucet-server | Javascript |
General architecture Diagram
How to deploy and configure a full system locally.
Prerequisites
You need some tools to be able to run the system locally.
Deploying the blockchain
Clone the Hashed Substrate repo, and checkout the develop branch.
git clone git@github.com:hashed-io/hashed-substrate.git
cd hashed-substrate
git checkout develop
Running a local node
cargo run --bin hashed --release -- --dev
Setup the pallets
Go to the Polkadot webside, make sure you are connected to the local node.
- Go to the
Developer
tab and click onSudo
- Select
gatedMarketplace
pallet and search for the extrinsicinitialSetup()
, then click onSubmit Transaction
- Select
fruniques
pallet and search for the extrinsicinitialSetup()
, then click onSubmit Transaction
This steps are required in order to setup the pallets and create the required roles and permissions.
Faucet Server
You would need to run the faucet locally, this is the repo for it: https://github.com/hashed-io/faucet-server, there is a README file explaining how to run it but you should be able to run it with the following command:
npm run start:all image
Before running the faucet you should have the node running locally, as the faucet connects to it, this is configured in the .env.all file. You would also need to updated the front-end env file, to point to the local faucet:
FAUCET_SERVER_URL = 'http://localhost:3000'
Starting local Web App server
To run the web app locally you must go through the following steps:
- Use nodeJs >= 16.X
- Clone Web app repository
- Install quasar cli
yarn global add @quasar/cli
- Install dependecies
cd hashed-network-portal-ui
yarn install - Set env variables(By security reason we can not share on this documentation the secret keys)
cp .env.example .env
- Start serverThe application will be open automatically on your browser.
quasar dev