Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mineable Assets - Enhancement #1120

Open
wolfsokta opened this issue Nov 5, 2021 · 7 comments
Open

Mineable Assets - Enhancement #1120

wolfsokta opened this issue Nov 5, 2021 · 7 comments

Comments

@wolfsokta
Copy link
Collaborator

wolfsokta commented Nov 5, 2021

Mineable Assets - Enhancement

Abstract

Mineable Assets are a new type of digital asset/token on the Ravencoin network that could be created and issued over time to the RVN miners on the Ravencoin blockchain. This would provide new and unique features to the Ravencoin blockchain that don’t exist in any other blockchain project. These features could be utilized to support projects utilizing Ravencoin in ways that haven’t been possible with the current Ravencoin feature set.

Similar to merged mining, co-mining with Grafted Proof of Work (G-PoW) is analogous to a botanist grafting a branch of one plant to the root strength of another, creating a unique symbiotic relationship that is stronger than the disparate plants could achieve on their own. The new branch provides additional energy to the root, and the root provides the necessary strength and nutrients for the branch to create the energy. Mineable Assets would employ the security of the Ravencoin blockchain and its network of miners to distribute the new asset. A successful RVN co-miner would also receive the specified amount of the newly minted Mined Asset. This would provide the crypto community with a far better decentralized distribution method of digital assets that, like all other asset creation and distribution features of Ravencoin, is simple to implement and deploy by anyone without the need to write code.

Mineable Assets were originally proposed by @wolfsokta on Medium Oct 8th, 2021

Requirements

The goal of Mineable Assets is to provide the ability for the owner of a blockchain project to create a new asset type that would:

  1. Be issued over time to existing RVN miners that win the RVN Coinbase
  2. Require that the Mineable Asset issuer already own the Root Asset Ownership Token. Ex. !MyCorpCoin. If a mineable sub asset is used the issuer would need to hold that Ownership Token as well.
  3. Be costly enough to discourage spamming assets on the network without purpose
  4. Optionally provide a source of funding for the project
  5. Provide various options to the issuer with the following parameters:
    1. Asset name - Must match a Root Asset Ownership Token already owned by the issuer
    2. Quantity of Mineable Assets to issue
    3. Number of Minable Assets to issue per block - Quantity must be divisible by this this value
    4. Every nth block to issue the Minable Assets - Ex, 1 = every block (X per minute), 60 = every 60th block (X per hour).
    5. The number of units, or number of decimals precision for the mineable assets
    6. Funding amount in block - optional subset of the mined asset specified in (5.iii) that is sent to the current address of the Root Asset Ownership Token. Must be less than number specified in in (5.iii)
    7. IPFS hash to documentation related to the Mineable Asset

Mineable Asset Issuance Cost

Because the distribution of a Mineable Asset will result in one to two transactions in each block that the Mineable Asset is distributed within, the cost of issuance should be substantial enough that only serious projects will see the advantages of creating a Mined Asset. This will also keep the block size from ballooning with unnecessary Mineable Asset Issuance.

In order to accomplish this we propose that there be a cost of 1 RVN for each block that will be utilized to distribute the Mineable Asset with a minimum of 500 RVN. For instance, let’s walk through some examples and costs of issuing 21 million MyCorpCoin Mineable Assets with assumption that 1 RVN = 0.10 USD

Option 1: Issue 100 every block
  21,000,000 / 100 = 210,000 issuance blocks at an average of 1 block per minute
  210,000 / 60 / 24 = 145.8 days or about 4.8 months to issue the full 21 million
  This option would cost $21,000 USD

Option 2: Issue 6,000 every 60 blocks - Same amount per day, but issue once per hour
  21,000,000 / 6000 = 3,500 issuance blocks at an average of 1 block per hour
  3,500 * 60 / 60 / 24 = 145.8 days or about 4.8 months to issue the full 21 million
  This option would cost $350 USD

Option 3: Issue 1000 every 60 blocks - Less per day, but 2.4 years of distribution
  21,000,000 / 1000 = 21,000 issuance blocks at an average of 1 block per hour
  21,000 * 60 / 60 / 24 = 875 days or about 28.75 months to issue the full 21 million
  This option would cost $2,100 USD

Command Line Interface

=== Mineable ===
issuemineable "asset_name" qty per_block ( units ) (fund_amt) "( change_address )" ( has_ipfs ) "( ipfs_hash )"

Arguments:
1. "asset_name"	(string, required) name of root asset - Note: must hold ownership token
2. "qty"	(integer, required) total number of assets to be mined. min=1, max 21b
3. “per_block”	(integer, required) number of mineable assets generated in the coinbase - Note: qty must be divisible by per_mined_block
4. “nth_block”	(integer, optional, default=10, min=1, max=10,080) the number of blocks in-between issuance of the mineable asset
5. "units"	(integer, optional, default=0, min=0, max=8) the number of decimals precision for the asset (0 for whole units ("1"), 8 for max precision ("1.00000000")
6. "fund_amt”	(integer, optional, default=0) amount of per_block sent to ownership token address
7. "change_address"	(string), optional, default=""), address the the rvn change will be sent to, if it is empty, change address will be generated for you
8. "has_ipfs"	(boolean, optional, default=false), whether ipfs hash is going to be added to the asset
9. "ipfs_hash"	(string, optional but required if has_ipfs = 1), an ipfs hash or a txid hash once RIP5 is activated

Result:
   "txid".  (string) The transaction id


issuemineabletestrun  "asset_name" qty per_block ( units ) (fund_amt)" Calculates and displays the costs and distribution timeframe )

Result: (string) Issuance information:
   “Cost: X RVN
   Issued over DD days, MM months, or YY years
   Total Mined: X
   Total Funded: X”

Technical Details

  1. Mineable Assets will begin with the '&' character
  2. Mineable sub-assets are supported with the ‘/’ character separating them

Cost Calculator

You can enter values for the parameters above in this spreadsheet to see how mineable asset costs would work.

@wolfsokta wolfsokta pinned this issue Nov 5, 2021
@wolfsokta
Copy link
Collaborator Author

I've created a spreadsheet to show how the current proposal for costs would work with mineable assets.

@m4r1m0
Copy link
Contributor

m4r1m0 commented Nov 21, 2021

Very interested in the addition of Mineable Assets to RavenCore. Following this issue.

@Squidcv41
Copy link

I've tried to do this, but since I am new to this type of tech, nothing is working for me. Almost going to quit my school computer sciences classes because I can't get this stuff to operate,

@wolfsokta
Copy link
Collaborator Author

Great news! The Ravencoin Foundation created a $10k bounty for this proposal!

@jeroz1
Copy link
Contributor

jeroz1 commented Jan 14, 2022

Great news! The Ravencoin Foundation created a $10k bounty for this proposal!

Is there an address for people to give a topup donation?

@jeroz1
Copy link
Contributor

jeroz1 commented Jan 14, 2022

Also, how would this work from a miner side? Will a miner choose 1 asset to mine alongside RVN? Or could he theoretically mine all possible minable assets?

@Chief-Prince-Of-Function
Copy link
Contributor

Also, how would this work from a miner side? Will a miner choose 1 asset to mine alongside RVN? Or could he theoretically mine all possible minable assets?

Looks like they would be distributed IAW the asset creation code to the Coinbase recipient. Makes the process for miner distribution to either the pool or all to the solo miner. Correct?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants