Difference between revisions of "Development"

From Ravencoin Wiki
Jump to navigationJump to search
Line 144: Line 144:
  
 
Issue assets in bulk: https://github.com/RavenProject/Ravencoin/tree/master/assets/tools
 
Issue assets in bulk: https://github.com/RavenProject/Ravencoin/tree/master/assets/tools
 +
 +
= Testnet =
 +
 +
This testnet network will be a completely independent secondary blockchain for testing purposes only, in which all tokens will have no intrinsic value and will not be traded on exchanges. The purpose of a testnet is to test features and functionality before introducing those features and functionality to the main blockchain.  It is a playground to experiment and test different features with almost no cost to transact or mine blocks.  During this testing phase, the Ravencoin blockchain itself will continue to maintain the same operation and functionality it has today.
 +
 +
 +
To run your current wallet in testnet mode:
 +
# First shutdown your current full client wallet.
 +
# Create a shortcut to your raven-qt.exe with this in the target field: <br /> <pre>"C:\Users<username>\Path\to\executable\raven-qt.exe" –testnet</pre>
 +
# Open the wallet by clicking on the shortcut you just made, and let the blockchain sync fully
 +
 +
 +
{| class="wikitable"
 +
! Read this section carefully: BE SAFE AND DON'T CONFUSE YOUR MAINNET WALLET WITH THE TESTNET WALLET!
 +
|-
 +
| Don't worry, this will not interfere with your regular Raven wallet, just make sure both wallets are not running at the same time. For those who are technically inclined, running in testnet mode does not overwrite any of the blockchain data or wallet files of Ravencoin’s main network. Instead, it will create a subfolder named testnet3 inside your data folder where all testnet related data and wallets reside.
 +
 +
'''If you would prefer to err on the side of caution, consider running your testnet wallet on a different computer.'''
 +
|}
 +
 +
 +
If you have additional questions about testnet, please see [https://www.reddit.com/r/Ravencoin/comments/94ju8y/come_join_us_on_testnet_and_try_out_rvn_assets/ this subreddit thread] or the [https://discord.gg/9mxhNjS #testnet channel in Discord.]
 +
 +
There are currently a couple of tools available to assist you with testnet testing.
 +
 +
*A fully functional block explorer for testnet Ravencoin is available at https://testnet.ravencoin.network/. 
 +
*A faucet which will issue you 5000 free '''testnet Ravencoin''' per click, is also at https://testnet.ravencoin.network/ or http://ravencoin.asset-explorer.net/faucet
 +
*A testnet version of the Pocket Raven Web Wallet is at https://testnet.pocketraven.com/
 +
*You can GPU mine for testnet RVN on MinerMore's testnet pool at https://testnet.minermore.com/
 +
 +
After this testing period, it is anticipated that the community will consider adoption of the new asset-aware code.  Activation will occur through the '''BIP9''' consensus mechanism.  More information on the activation process can be found [https://docs.google.com/document/d/1RxRokp_P9Iu7eqKdfR7wj2D7bqMwqnd_l3R1yjq633k/ here]
 +
 +
Step by step asset creation Medium article by  [https://medium.com/@silascyben/ravencoinassets-d72ebf1a45f5 FractalEncrypt]
 +
 +
'''Testnet Technical Information:''' [[Testnet-technical| Technical Information]]
 +
 +
= Bug bounty =
 +
There is a 100k RVN [https://github.com/RavenProject/Ravencoin/wiki bug bounty] available if you can find bugs that fork the chain.
 +
 +
And here is [http://htmlpreview.github.io/?https://github.com/hans-schmidt/mastering_ravencoin/blob/master/analysis/What_is_wrong_with_Ravencoin_testnet6_block_38554.html an example] of a bug found that got paid a bounty - happy bug hunting!
 +
 +
  
 
= Community Projects =
 
= Community Projects =

Revision as of 01:56, 14 November 2018


This section of the wiki aims to help document the development work done related to the Ravencoin network.

Future dev chats will be available on discord - #irc-ravencoin-dev

Historic dev chats on IRC, now moved to Discord.

Open weekly or fortnightly dev chat on IRC check https://www.ravencointalk.org/post/ravencoin-open-developer-meeting-9816968?pid=1305079154

IRC: https://webchat.freenode.net/?channels=ravencoin-dev

Archive of the conversation on the 10th Aug 2018 on Reddit https://www.reddit.com/r/Ravencoin/comments/96at36/irc_log_from_ravencoin_open_developer_meeting_aug/


Ravencoin platform development

Currently organized and based on Tron his talk at the Ravencoin NH meetup (October 11, 2018): [1]

Phase 1 - Ravencoin launch & mining algorithm

In addition to the X16R algorithm, most of the core code changes are in the chainparams file.

The details are broken down on the wiki page: Chainparams.

If you are looking to port existing Bitcoin applications to include Ravencoin - there are some useful parameters available from work done in the Ledger integration code on GitHub.

Summarized on the wiki page: Ledger integration

If you are looking for typical parameters needed for wallet integration - there is a summary on the Wallet integration page.

It's worth mentioning, whilst we all try to keep these pages up to date, the RavenProject code on GitHub could change and these pages could become out of sync. Please validate on https://github.com/RavenProject/Ravencoin.

Phase 2&4 - Assets, Subassets & Unique assets

Asset testnet live. Check testnet for more details, and Testnet-technical for details about the anatomy of a Ravencoin asset transaction script.

Asset FAQ written by Tron on Medium https://medium.com/@tronblack/ravencoin-asset-faq-e0d04d460e9b

(20 Aug 2018) In addition to asset functionality being on available to test on testnet - Ravencoin is forking to include Dark Gravity Wave to protect itself against hash rate attacks - exchanges and mining pools need to upgrade as soon as possible to the latest wallet release, users as soon as they want to use their coins. Forks_and_updates

Asset info for Main Net

Assets (cost 500 RVN):

Subassets (cost 100 RVN):

Unique Assets (cost 5 RVN) - create one-of-a-kind assets:

Reissuing an Asset (cost 100 RVN):

Global burn address

If you want to get rid of for example assets you do not want. You can send them to a global burn address:

https://ravencoin.network/address/RXBurnXXXXXXXXXXXXXXXXXXXXXXWUo9FV

Phase 3 - Dividends/Rewards

Pay your token holders in RVN. Turn your profits into RVN and send out to all holders of your token by percentage held.

Dividend support can be done without modifying the protocol. We can add it to a version of the software that can be used by the payer, without requiring others to upgrade (i.e., a soft fork).

If you require this functionality ask in #dev channel on discord as there is a python script to get owners of assets, and someone could write code to loop through owners paying to their address.

Phase 5 - Messaging

Broadcast a message to all of your token holders.

  • Send information about your token.
  • Send alerts relevant to your project.
  • Send information about a shareholder vote.
  • Use Raven messaging for other systems.

Phase 6 - Voting

Issue a special vote token to every holder of your token.

  • Send to <address X> to vote for X proposal
  • Send to <address Y> to vote for Y proposal

Second tier web voting can be built on top of this protocol.

Phase 7 - Compatible Mode

Allows newly created assets to appear exactly like RVN, LTC, or Bitcoin for easy integration into exchanges, wallets, explorers, etc. This speeds adoption into the larger crypto ecosystem.

Using the Ravencoin platform

Current commands are as of Oct 13th, 2018. Be sure to check the QT wallet on github for up to date commands

Asset control

issue (asset_name, qty, to_address, change_address, units, reissuable, has_ipfs, ipfs_hash)

Issue an asset with unique name. Unit as 1 for whole units, or 0.00000001 for satoshi-like units. Qty should be whole number. Reissuable is true/false for whether additional units can be issued by the original issuer.

issueunique (root_name, asset_tags, ipfs_hash, to_address, change_address)

Creates a unique asset from a pool of assets with a specific name. Example: If the asset name is SOFTLICENSE, then this could make unique assets like SOFTLICENSE:38293 and SOFTLICENSE:48382 This would be called once per unique asset needed.

reissue (reissue asset_name, qty, to_address, change_address, reissuable, new_unit, new_ipfs )

Issue more of a specific asset. This is only allowed by the original issuer of the asset and if the reissuable flag was set to true at the time of original issuance.

transfer (asset_name, qty, to_address)

This sends assets from one asset holder to another.

listassets (assets, verbose, count, start)

This lists assets that have already been created.

listmyassets ( asset, verbose, count, start ) 

Lists your assets.

listassetbalancesbyaddress (address) 

Lists asset balance by address.

listaddressesbyasset (asset_name) 

Lists addresses by asset.

getassetdata (asset_name) 

Lists asset data of an asset.

IPFS - InterPlanetary File System

You can add a document to an asset for any purpose. Such as instructions, a low-res image of a piece of art that is represented by the token, your website, etc.

Currently, there is not (yet) IPFS support directly in the Raven wallet. However, you can upload content to e.g., https://globalupload.io/ and add the hash of the content to the asset that you are creating.

Other documentation

Atomic swaps: https://github.com/RavenProject/Ravencoin/blob/master/doc/atomicswaps.md

Issue assets in bulk: https://github.com/RavenProject/Ravencoin/tree/master/assets/tools

Testnet

This testnet network will be a completely independent secondary blockchain for testing purposes only, in which all tokens will have no intrinsic value and will not be traded on exchanges. The purpose of a testnet is to test features and functionality before introducing those features and functionality to the main blockchain. It is a playground to experiment and test different features with almost no cost to transact or mine blocks. During this testing phase, the Ravencoin blockchain itself will continue to maintain the same operation and functionality it has today.


To run your current wallet in testnet mode:

  1. First shutdown your current full client wallet.
  2. Create a shortcut to your raven-qt.exe with this in the target field:
    "C:\Users<username>\Path\to\executable\raven-qt.exe" –testnet
  3. Open the wallet by clicking on the shortcut you just made, and let the blockchain sync fully


Read this section carefully: BE SAFE AND DON'T CONFUSE YOUR MAINNET WALLET WITH THE TESTNET WALLET!
Don't worry, this will not interfere with your regular Raven wallet, just make sure both wallets are not running at the same time. For those who are technically inclined, running in testnet mode does not overwrite any of the blockchain data or wallet files of Ravencoin’s main network. Instead, it will create a subfolder named testnet3 inside your data folder where all testnet related data and wallets reside.

If you would prefer to err on the side of caution, consider running your testnet wallet on a different computer.


If you have additional questions about testnet, please see this subreddit thread or the #testnet channel in Discord.

There are currently a couple of tools available to assist you with testnet testing.

After this testing period, it is anticipated that the community will consider adoption of the new asset-aware code. Activation will occur through the BIP9 consensus mechanism. More information on the activation process can be found here

Step by step asset creation Medium article by FractalEncrypt

Testnet Technical Information: Technical Information

Bug bounty

There is a 100k RVN bug bounty available if you can find bugs that fork the chain.

And here is an example of a bug found that got paid a bounty - happy bug hunting!


Community Projects

Brianmct RavenNodes - forked from Bitnodes - project to show all the active Ravencoin nodes

RavencoinRPC-PHP - PHP RPC API for communicating with the Ravencoin Network.

Underdarkskies - various projects including an extended RPC version of Ravencoin.