Enterprise-grade distributed ledger software solutions provide modularity and versatility for a broad industry use case. Its modular architecture accommodates the diversity of enterprise use cases through REST-APIs.
Create a new account using the email, password and full name.
Generate Asymmetric Key(Public Key and Private Key) for the JSON Web Tokens (JWT Tokens) Algorithm ES256. 🗝️
Cryptography Type: Elliptic Curve Cryptography (ECC) 🔒
- email (Email Address). 📨
- password (Email Password). 📨🔒
- enc_password (Password for Encrypting ECC Private Key). 🗝️ 🔐
Generate OAuth2 Access Token for API Authentication. 🪪
Token Type: Bearer
- username (Please enter your Email Address). 📨
- password (Please enter your Email Password). 📨🔒
- client_id (Please enter Encrypted Private Key hear. You can get it from the GET "create_token_key" Endpoint). 🔑
- client_secret (Please enter the password used for Encrypting Key. Password entered inside "enc_password" request body during GET "create_token_key" Endpoint). 🔐
(Here, the OAuth2 access token is not required for authorization as it is auto-generated and used after authentication using the 'Authorize' button above.)
- Step 1: Click the Authorize Button above.
- Step 2: Enter your Email Address and Password inside the "username" and "password" text box.
- Step 3: Select Request body from "Client credential location" drop-down menu.
- Step 4: Enter Encrypted Private Key inside "client_id" text box. You can get it from the GET create_token_key Endpoint.
- Step 5: Enter the password used for Encrypting Key inside "client_secret" text box. Password entered inside "enc_password" request body during GET create_token_key Endpoint.
- Step 6: Press Authorize Button.
Wallet allows Cryptographically Signed / Verify Data and the Block.
- public-token-key (Please enter Public Key hear. You can get it from the GET "create_token_key" Endpoint). 🔑
- enc_password (Password for Encrypting Wallet).👜 🔒
Data Model allows for Validating Data Proposal. ✅
- public-token-key (Please enter Public Key hear. You can get it from the GET "create_token_key" Endpoint). 🔑
- Request Body (Please enter NodeURLs and UserModel for Data Validation.). 📖
application/json
{
"NodeUrls": {
"node_url_1": "postgres://postgres:password@localhost:5432/Node_1",
"node_url_2": "postgres://postgres:password@localhost:5432/Node_2",
"node_url_3": "postgres://postgres:password@localhost:5432/Node_3"
},
"UserModel": {
"title": "Person",
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "The person's first name."
},
"last_name": {
"type": "string",
"description": "The person's last name."
},
"age": {
"description": "Age in years.",
"type": "integer",
"minimum": 0
},
"pets": {
"type": "object"
},
"comment": {
"type": "string"
}
}
}
}
Use SQL DB as a node.
"NodeURLs":
{
"node_url_1": "postgres://postgres:password@localhost:5432/Node_1",
"node_url_2": "postgres://postgres:password@localhost:5432/Node_2",
"node_url_3": "postgres://postgres:password@localhost:5432/Node_3"
}
- PostgreSQL >= 9.4
- MySQL
- MariaDB
DewChain supports specifying Database configuration in a URL form.
The form is:
DB_TYPE://USERNAME:PASSWORD@HOST:PORT/DB_NAME?PARAM1=value&PARAM2=value
If password contains special characters it need to be URL encoded:
>>> import urllib.parse
>>> urllib.parse.quote_plus("kx%jj5/g")
'kx%25jj5%2Fg'
The supported DB_TYPE
postgres:
Typically in the form of ``postgres://postgres:pass@db.host:5432/somedb``
mysql:
Typically in the form of ``mysql://myuser:mypass@db.host:3306/somedb``
mariadb
Typically in the form of ``mariadb://myuser:mypass@db.host:3306/somedb``
We use JSON schema to describe the structure and validation constraints of data.
"UserModel":
{
"title": "Person",
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "The person's first name."
},
"last_name": {
"type": "string",
"description": "The person's last name."
},
"age": {
"description": "Age in years.",
"type": "integer",
"minimum": 0
},
"pets": {
"type": "object"
},
"comment": {
"type": "string"
}
}
}
Data is stored Provisionally and Encrypted in the Transaction Pool for future use. 🔒💾
- public-token-key (Please enter Public Key hear. You can get it from the GET "create_token_key" Endpoint). 🔑
- private_key (Please enter Wallet Encrypted Private Key hear. You can get it from the GET "create_wallet_key" Endpoint). 👜 🗝️ 🔐
- key_id (Please enter Wallet Key Id hear. You can get it from the GET "create_wallet_key" Endpoint).👜 🔑 🆔
- enc_password (Please enter the Password used for Encrypting Wallet. Password entered inside "enc_password" request body during GET "create_wallet_key" Endpoint).👜 🔐
- header (This section is optional. This section stores some essential metadata about the transaction).
- proposal (Please enter your data in JSON format. PPlease validate the data based on your Data Model.). 📚
Enter data in JSON format. Please validate the data based on your Data Model.
(YES, I know this data doesn't make any sense. STOP taking everything so seriously!)
{
'comment': 'null',
'first_name': 'hi',
'last_name': 'yo',
'age': 433,
'pets': {
'name': 'sdsd',
'age': 433
}
}
Add Transaction to the Distributed Ledger.
- data_uid (Please enter data_uid).
- public-token-key (Please enter Public Key hear. You can get it from the GET "create_token_key" Endpoint). 🔑
- private_key (Please enter Wallet Encrypted Private Key hear. You can get it from the GET "create_wallet_key" Endpoint). 👜 🗝️ 🔐
- key_id (Please enter Wallet Key Id hear. You can get it from the GET "create_wallet_key" Endpoint).👜 🔑 🆔
- enc_password (Please enter the Password used for Encrypting Wallet. Password entered inside "enc_password" request body during GET "create_wallet_key" Endpoint).👜 🔐
Broadcast Transaction across the nodes. 📢
- index (Block Index)
- public-token-key (Please enter Public Key hear. You can get it from the GET "create_token_key" Endpoint). 🔑
- NodeURLs
{
"node_url_1": "postgres://postgres:password@localhost:5432/Node_1",
"node_url_2": "postgres://postgres:password@localhost:5432/Node_2",
"node_url_3": "postgres://postgres:password@localhost:5432/Node_3"
}