Difference between revisions of "Development"

From Ravencoin Wiki
Jump to navigationJump to search
(added meta tag information)
Line 83: Line 83:
 
  send_asset(from_address, from_asset, to_asset, amount, except=[])
 
  send_asset(from_address, from_asset, to_asset, amount, except=[])
 
Sends an asset to holders of the the specified to_asset. This can be used to send a voting token to holders of an asset. Combined with a messaging protocol explaining the vote, it could act as a distributed voting system.
 
Sends an asset to holders of the the specified to_asset. This can be used to send a voting token to holders of an asset. Combined with a messaging protocol explaining the vote, it could act as a distributed voting system.
 +
 +
== Other Projects ==
 +
[[Tools#Projects]]

Revision as of 11:11, 9 May 2018


This section of the wiki aims to help document the development work done by the Ravencoin Developers to the core code.

Currently organized into the phases of the roadmap - this structure will probably change as the project matures.

Phase 1

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.

Summarised 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

Assets (in progress)

Phase 3

Rewards

Phase 4

Unique assets

Phase 5

Messaging

Phase 6

Voting


Appendix

From the roadmap document - RPC commands for working with assets:

issue(to_address, asset_name, qty, units=1, reissuable=false)

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.

issuefrom(from_address, to_address, qty, units, units=1, reissuable=false)

Issue an asset with unique name from a specific address -- allows control of which address/private_key is used to issue the asset. 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.

issuemore(to_address, asset_name, qty)

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.

makeuniqueasset(address, asset_name, unique_id)

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.

listassets(assets=*, verbose=false, count=MAX, start=0)

This lists assets that have already been created. It does not distinguish unique assets.

listuniqueassets(asset)

This lists the assets that have been made unique, and the address that owns the asset.

sendasset(to_address, asset, amount)

This sends assets from one asset holder to another.

sendassetfrom(from_address, to_address, asset, amount)

This sends asset from one asset holder to another, but allows specifying which address to send from, so that if a wallet that has multiple addresses holding a given asset, the send can disambiguate the address from which to send.

getassettransaction(asset, txid)

This returns details for a specific asset transaction.

listassettransactions(asset, verbose=false, count=100, start=0)

This returns a list of transactions for a given asset.

reward(from_address, asset, amount, except=[])

Sends RVN to holders of the the specified asset. The Raven is split pro-rata to holders of the asset. Any remainder that cannot be evenly divided to the satoshi (1/100,000,000 RVN) level will be added to the mining fee. ​except​ is a list of addresses to exclude from the distribution - used so that you could exclude treasury shares that do not participate in the reward.

send_asset(from_address, from_asset, to_asset, amount, except=[])

Sends an asset to holders of the the specified to_asset. This can be used to send a voting token to holders of an asset. Combined with a messaging protocol explaining the vote, it could act as a distributed voting system.

Other Projects

Tools#Projects