Skip to main content

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

ComponentDescription
Afloat Client APIThis client api is used to provide methods to interact with gatedMarketplace, uniques and fruniques pallets and go through Afloat specific flow.
Marketplace UIThis is the UI for the Hashed Network Portal, it allows users to interact with all the components of the system.
Marketplace palletThis pallet allows users to create and manage their own marketplaces.
Fruniques palletThis pallet allows users to create and manage their own fractional assets. It's built on top of Uniques pallet
Confidential Documents ServerThis server provides the backend services for the Hashed Confidential docs services.
Confidential Documents APIThis client api is used to provide methods to interact with the Hashed Confidential docs services.
Faucet ServerThis server provides the backend services for token distribution for new accounts, reducing friction for user onboarding.

Repositories (all MIT licensed)

ComponentRepoLanguage
Afloat Client APIhttps://github.com/hashed-io/afloat-client-apiJavascript
Marketplace UIhttps://github.com/hashed-io/hashed-network-portal-uiQuasar/Vue
Marketplace pallethttps://github.com/hashed-io/hashed-substrate/tree/develop/pallets/gated-marketplaceRust
Fruniques pallethttps://github.com/hashed-io/hashed-substrate/tree/develop/pallets/fruniquesRust
Confidential Documents Serverhttps://github.com/hashed-io/hashed-private-serverJavascript
Confidential Documents APIhttps://github.com/hashed-io/hashed-confidential-docs-client-apiJavascript
Faucet Serverhttps://github.com/hashed-io/faucet-serverJavascript

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 on Sudo
  • Select gatedMarketplace pallet and search for the extrinsic initialSetup(), then click on Submit Transaction
  • Select fruniques pallet and search for the extrinsic initialSetup(), then click on Submit 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
    cp .env.example .env
    (By security reason we can not share on this documentation the secret keys)
  • Start server
    quasar dev
    The application will be open automatically on your browser.