First copy import.

This commit is contained in:
Patrick Dunlop
2022-08-26 11:15:22 -04:00
parent bee9c5a0e6
commit fefaa17e48
27 changed files with 7868 additions and 62 deletions
+10
View File
@@ -0,0 +1,10 @@
{
"label": "The Protocol",
"position":6,
"link": {
"type": "generated-index",
"description": "Also known as Canine, the Jackal Blockchain is a Cosmos L1 built using the Cosmos SDK and Tendermint, created with Ignite CLI. Canine is open source and uses the MIT License.
Canine has seven modules and two tokens."
}
}
+46
View File
@@ -0,0 +1,46 @@
---
sidebar_position: 2
---
# Blockchain Modules
As the Jackal Protocol is built using Tendermint and the Cosmos SDK, we are able to create an ecosystem of __modules__. The Protocol uses some of the basic modules needed for interacting with the Cosmos Ecosystem but have also created customized our own modules optimized for the needs of Jackal.
__JACKAL PROTOCOL IMAGE__
## jklmint
The Jackal Mint module is a replacement for the cosmos-sdk module: [Mint](https://github.com/cosmos/cosmos-sdk/blob/main/x/mint/spec/README.md). The key differences between this and the pre-existing minting module are that jklmint does not adjust inflation based on rate of bonded tokens. At genesis, the jklmint module prints 10 JKL per block and distribute it to both the storage module and the default distribution module.
__mint image__
## lp
The lp module allows for a native automated market maker (AMM) liquidity pools (LP) to be built directly into the Jackal Blockchain. This allows for local prices for payment mechanisms without the need for oracles, along with the ability to swap tokens directly from the Jackal dashboard or the Jackal Swap service.
__swap images__
## rns
The rns module is a name service that allows users to manage human-readable names when interacting with the Jackal Blockchain. Users can register names, list names for sale, buy names on the marketplace, and place/accept bids from other users on their names.
__rns images__
## wasm
Jackal incorporates the CosmWasm smart contracting platform built for the Cosmos Ecosystem. The primary programing language used in this module is Rust for building secure and multichain smart contracts, yet any language that can be compiled into WASM can be supported as they become available.
## storage
Jackal Storage functions by a Proof-of-Storage algorithm we call Proof-of-Persistence. The Jackal Proof-of-Persistence (JPOP) works through a series of contracts formed between the storage provider and the user. These contracts contain the Merkle Tree root hash of the file and the information required to prove ownership of the file. Miners, or as well call them, Storage Providers, are responsible for posting Merkle Proofs within a challenge window determined by the blockchain. These challenge windows require the miner to post the raw data chunk of data corresponding to the index of the challenge window alongside the required Merkle Hashes to prove the data belongs to the Merkle Root stored on the contract. These challenge indexes are chosen at random by the blockchain using a block-hash-based random number generator paired with a random data oracle.
If a Storage Provider successfully posts a Merkle Proof within the challenge window for the contract and the data is verified by the Validators to be valid Merkle Proofs for the challenge index, the Storage Provider is paid out. Storage Provider rewards are proportional to the file size the contract is associated with relative to every other active contract on the network. If a Storage Provider fails to provide a valid proof within the allotted timeframe, the contract is struck with a missed proof. After (X) missed proofs, the contract is burned, and the user is alerted the next time they query the contract. For every contract burned through missing proofs, the Storage Provider is struck with a penalty that remains on their record for a period of time adjustable through governance.
__Storage Images__
### Interaction Outline
A user first sends a file to an available Storage Provider. A list of Storage Providers can be found on the blockchain, and providers can deny any incoming request if they wish not to store new files. The Storage Provider, after receiving the entire file, keeps that file in memory and posts a contract to the blockchain. If the contract is not signed by the sender in X blocks (configurable by the Storage Provider), then the file is removed from memory, and the contract is burned. However, if the contract is signed by the user within the given blocks, the file is committed to the Storage Provider's hard storage, and the challenge windows start being created for the now active contract.
## dsig
The dsig module is a digital signature service that allows users to collect signatures from multiple users who are registered on the Jackal Blockchain. Users can create 'forms' associated with a unique file stored on Jackal and can add signees (users) to collect their signatures. The signees have the following options to respond: Approve, Deny, Abstain, and No Response (Default). The form can execute a custom function after all users have voted to Approve the form.
__dsig images__
## filetree
__TODO: Description__
__TODO: Visual Aid__
+11
View File
@@ -0,0 +1,11 @@
---
sidebar_position: 4
---
# Storage Providers
A Jackal Storage Provider is a dedicated web server optimized for data storage that accepts incoming files from users and creates contracts for the users to approve. These contracts last until the user either cancel them or the provider itself goes offline.
__Storage Provider Images__
__TODO: Storage Provider Setup__
+26
View File
@@ -0,0 +1,26 @@
---
sidebar_position: 1
---
# Tokens
## JKL or Jackal
JKL is an inflationary token that powers the Jackal Protocol. The JKL Token has many usecases. Some of these use cases are below.
- __dApps__ - Applications built leveraging the Jackal Protocol, such as Jackal Storage and the RNS Marketplace, may choose to include the JKL token to expand its utility.
- __Securing the Network__ - As the Jackal Protocol is a Proof-of-Stake (PoS) Cosmos L1 blockchain, JKL can be delegated to validators to secure the network and earn JKL rewards. Otherwise known as staking or bonded tokens.
- __Transaction Fees__ - Transactions on the Jackal Protocol must be paid for using JKL. As the protocol is PoS, cost of transactions are inexpensive.
- __Governance__ - Staked tokens grant on-chain governance participation within the Jackal Protocol to vote on text, software, spend, and other governance proposals.
- __Collateral__ - The JKL token can act as collateral for validators, storage providers, and other smart contract usecases.
- __Liquidity Provision__ - JKL can be allocated into a liquidity pool to earn rewards.
## JWL or Jewel
JWL is an L1 store-of-value token native to the Canine Blockchain. JWL tokens are immutable, meaning they can never be created, changed or destroyed. There is a finite amount of JWL that will be minted at the chains genesis. Currently, there is no utility for the JWL token and it should be treated as such.
+9
View File
@@ -0,0 +1,9 @@
---
sidebar_position: 3
---
# Validators
The Jackal Validators are web servers that are secure, dedicated machines that participate in the consensus protocol by broadcasting cryptographic signatures, or votes, to agree upon the next block. Voting power is determined by the amount of staking tokens delegated by non-validators and bonded as collateral to earn a reward. These non-validators, or delegators, incur the risk of getting punished (slashed) if the delegate validator gets hacked or violates the protocol.
__TODO: Validator Setup__