Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
0655df4
Remove mailing list link
Varunram Oct 20, 2018
da689d8
Domain to asset verification
TronBlack Oct 26, 2018
323e754
Update README.md
BruceFenton Nov 5, 2018
bf3e949
Merge pull request #429 from RavenProject/release_2.1.2
cfrogjump Nov 8, 2018
6ce3207
Hide destination address for asset creation, unless coincontrol is ac…
Nov 7, 2018
e97c00b
Merge pull request #436 from RavenProject/release_2.1.3
blondfrogs Nov 12, 2018
a01dd7b
Merge pull request #480 from RavenProject/release_2.2.0.0
cfrogjump Dec 12, 2018
516cb83
Add detail to development roadmap
TronBlack Dec 20, 2018
61da732
Update json
TronBlack Dec 20, 2018
8209111
Update
TronBlack Dec 20, 2018
6efa8e2
update
TronBlack Dec 20, 2018
54a28fc
update
TronBlack Dec 20, 2018
859ff05
update
TronBlack Dec 21, 2018
ff2b07a
update
TronBlack Dec 21, 2018
7fb5a0d
update
TronBlack Dec 21, 2018
89cb7b0
update
TronBlack Dec 21, 2018
720364d
update
TronBlack Dec 26, 2018
5e6c79b
update
TronBlack Dec 26, 2018
8131a1f
update
TronBlack Dec 26, 2018
745c2ab
update
TronBlack Dec 26, 2018
71868a8
update
TronBlack Dec 26, 2018
88c4d21
update
TronBlack Dec 26, 2018
bf0da0c
update
TronBlack Dec 26, 2018
912efd7
update
TronBlack Dec 27, 2018
c4f926a
update
TronBlack Dec 27, 2018
303b8fd
Merge pull request #409 from RavenProject/tron-domain-to-asset-verifi…
TronBlack Jan 2, 2019
271afb4
Update README.md
TronBlack Jan 3, 2019
e55145f
Update roadmap/messaging/README.md
cfox Jan 3, 2019
e2b1d6e
Update README.md
TronBlack Jan 3, 2019
56044b8
Update README.md
TronBlack Jan 3, 2019
c0ad2e2
Merge pull request #494 from RavenProject/tron-roadmap-breakdown
TronBlack Jan 3, 2019
13fa7f7
Tron roadmap compatibility (#497)
TronBlack Jan 9, 2019
aeb29d1
Add mobile compatible Mnemonic seed key generation to roadmap (#498)
TronBlack Feb 15, 2019
7a342a2
Adding release notes for v2.2.2 release
Feb 22, 2019
49a5509
Merge pull request #516 from RavenProject/mney_2.2.2_release_notes
cfrogjump Feb 22, 2019
3f9c4d1
Merge pull request #518 from RavenProject/release_2.2.2
cfrogjump Feb 22, 2019
19b38a5
Update README.md (#496)
TronBlack Mar 13, 2019
77d4ea8
Merge pull request #398 from Varunram/patch-2
blondfrogs Mar 13, 2019
ffeb6ee
Stop always storing blocks from whitelisted peers
TheBlueMatt Oct 11, 2017
3027dd5
moveonly: factor out headers processing into separate function
sdaftuar Oct 26, 2017
dc5cc1e
Disconnect outbound peers relaying invalid headers
sdaftuar Oct 26, 2017
ba4d362
net: Add missing lock in ProcessHeadersMessage(...)
practicalswift Oct 30, 2017
c27081c
Reject headers building on invalid chains by tracking invalidity
TheBlueMatt Oct 19, 2017
a743e75
Backport 0.15 OpenThreadConnection function changes
sdaftuar Oct 23, 2017
08efce5
Track tip update time and last new block announcement from each peer
sdaftuar Oct 23, 2017
2d4826b
Backport 0.15 StaleTip checks
sdaftuar Oct 24, 2017
77f5a78
Add some reorganization of code
blondfrogs Jul 1, 2019
fbbc40d
Update version to 2.4.0
blondfrogs Jul 1, 2019
dcf4f87
Update release notes 2.4.0
Jul 2, 2019
ed857ac
Merge #608: Bitcoin v0.15.1 backport to master
blondfrogs Jul 2, 2019
89a4a4d
Added X16RV2 Algo
traysi Jul 2, 2019
74e40cf
Fix windows build
blondfrogs Aug 23, 2019
2deeb83
Merge pull request #639 from RavenProject/x16rv2_build
blondfrogs Aug 27, 2019
c3a5b2f
Fix asset transfer formatting
blondfrogs Aug 28, 2019
a320bb9
Update to v2.5.1
blondfrogs Aug 28, 2019
8d5cf12
Merge pull request #641 from RavenProject/transfer_formatting
blondfrogs Aug 28, 2019
bdfaed5
Fix for Boost utf8_codecvt_facet warnings on macOS
volbil Aug 29, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 5 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,15 @@ Raven Core integration/staging tree

https://ravencoin.org

What is Raven?
What is Ravencoin?
----------------

Raven is an experimental digital currency that enables instant payments to
anyone, anywhere in the world. Raven uses peer-to-peer technology to operate
Ravencoin is an experimental digital currency that enables instant payments to
anyone, anywhere in the world. Ravencoin uses peer-to-peer technology to operate
with no central authority: managing transactions and issuing money are carried
out collectively by the network. Raven Core is the name of open source
software which enables the use of this currency.
out collectively by the network.


For more information, as well as an immediately useable, binary version of
the Raven Core software, see https://ravencoin.org

License
-------
Expand All @@ -30,10 +28,6 @@ regularly to indicate new official, stable release versions of Raven Core.

The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md).

The developer [mailing list](https://lists.linuxfoundation.org/mailman/listinfo/raven-dev)
should be used to discuss complicated or controversial changes before working
on a patch set.

Developer IRC can be found on Freenode at #raven-core-dev.

Testing
Expand Down
4 changes: 4 additions & 0 deletions assets/asset_metadata_spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ Additional fields may be added, but will be ignored by Ravencoin.

"forsale_price": "5000 RVN",

"domain": "bitactivate.com",

"restricted": "rule144"

}
Expand Down Expand Up @@ -92,4 +94,6 @@ All fields are optional. Clients, explorers, and wallets are not obligated to di

**forsale_price** - To give buyers an idea of the cost to own and admin the asset token. Price followed by a space, followed by the currency. Examples: "10000 RVN" or "0.3 BTC" or "50000 USD" This might be parsed by token broker websites.

**domain** - A root domain for the project (if applicable). Setting the TXT record for rvn.<domain> to a signed message of the token name -- signed by the issuer address. This could be verified by clients to ensure the token and domain go together. Example: Set TXT record for rvn.bitactivate.com to the signature of the message "BITACTIVATE". Any client or individual can verify the issuer address, message "BITACTIVATE" which is the token/asset name, and valid signature in the TXT record for rvn.bitactivate.com and return true/false.

**restricted** - Designate the token as being restricted. One example is "rule144" which means sale may be restricted because of the type of token and the exemption used for issuance. Other restrictions types can be used here as a signal to explorers, exchanges, or token brokers. No enforcement of restrictions is built into the Ravencoin protocol.
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 2)
define(_CLIENT_VERSION_MINOR, 2)
define(_CLIENT_VERSION_REVISION, 2)
define(_CLIENT_VERSION_MINOR, 5)
define(_CLIENT_VERSION_REVISION, 1)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2018)
Expand Down
98 changes: 98 additions & 0 deletions doc/release-notes/release-notes-2.2.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
Raven Core version *2.2.2* is now available!!
==============

<https://github.com/RavenProject/Ravencoin/releases/tag/v2.2.2>


This is a major release containing bug fixes and enhancements for 2.2.0/2.2.1. It is highly recommended that users
upgrade to this version.

Please report bugs using the issue tracker at GitHub:

<https://github.com/RavenProject/Ravencoin/issues>

To receive security and update notifications, please subscribe to:

<https://ravencoin.org/en/list/announcements/join/>

How to Upgrade
==============

If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over `/Applications/Raven-Qt` (on Mac)
or `ravend`/`raven-qt` (on Linux).

The first time you run version 2.1.0 or higher, your chainstate database may
be converted to a new format, which will take anywhere from a few minutes to
half an hour, depending on the speed of your machine.

Downgrading warning
==============

If you are upgrading to 2.2.2 from a version before 2.1.0 the chainstate database for this release is
not compatible. If you run 2.1.0 or newer and then decide to switch back to any
older version, you will need to run the old release with the `-reindex-chainstate`
option to rebuild the chainstate data structures in the old format.

If your node has pruning enabled, this will entail re-downloading and
processing the entire blockchain.

It is not recommended that users downgrade their version. Version 2.1.0 and later contain
changes that *will* fork the chain, users not running 2.1.0 (or later) will be not
be able to participate in this fork process and will be left on the old chain which
will not be valid.

Note: There are no consensus-rule changes between versions 2.1.0 and 2.2.2 - running versions in this range
will not fork the chain.

Compatibility
==============

Raven Core is extensively tested on multiple operating systems using
the Linux kernel, macOS 10.8+, and Windows 10(x64) and later. 32-bit versions of Windows,
and Windows XP are not supported.

Raven Core should also work on most other Unix-like systems but is not
frequently tested on them.

Raven Core has been tested with macOS 10.14 Mojave, but it is recommended that *developers*
do not update to Mojave. There is an incompatibility with Berkeley-db 4.8.30 that causes
the binaries to seg-fault. There is a workaround, but as of this release users should
not update to Mojave (see build-OSX.md for current status of this issue). There are no
known issues running the release binaries on Mojave.

Notable changes
==============
*This list includes changes from all releases between 2.1.0 and 2.2.2*
- Reduction in memory usage
- Chain synchronization speed
- New QT interface
- QT dark mode (not using OSX Mojave dark mode)
- Chain split attack vector fix
- Better asset caching
- Enhancements for Ravencoin Dev Kit and Mobile Wallet Support
- Limit listaddressesbyasset RPC call to only return 5,000 asset-addresses per call
- Updates and fixes to the functional and unit tests for better asset coverage and stability


2.2.2 Change log
==============

Changelog available here: <https://github.com/RavenProject/Ravencoin/commits/release_2.2.2>

Credits
==============

Thanks to everyone who directly contributed to this release:

- Most importantly - The Raven Community!
- Tron Black
- Jesse Empey
- Jeremy Anderson
- Corbin Fox
- Daben Steele
- Cade Call
- @Roshii
- @underdarkskies
- Mark Ney
80 changes: 80 additions & 0 deletions doc/release-notes/release-notes-2.4.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
Raven Core version *2.4.0* is now available!!
==============

<https://github.com/RavenProject/Ravencoin/releases/tag/v2.4.0>


This is a major release containing bug fixes and enhancements for all builds before it. It is highly recommended that users
upgrade to this version.

Please report bugs using the issue tracker at GitHub:

<https://github.com/RavenProject/Ravencoin/issues>

To receive security and update notifications, please subscribe to:

<https://ravencoin.org/en/list/announcements/join/>

How to Upgrade
==============

If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over `/Applications/Raven-Qt` (on Mac)
or `ravend`/`raven-qt` (on Linux).

Downgrading warning
==============

You may downgrade at any time if needed.

Note: There are no consensus-rule changes between versions v2.2.3/v2.2.2 and 2.4.0 - running versions in this range
will not fork the chain.

Compatibility
==============

Raven Core is extensively tested on multiple operating systems using
the Linux kernel, macOS 10.8+, and Windows 10(x64) and later. 32-bit versions of Windows,
and Windows XP are not supported.

Raven Core should also work on most other Unix-like systems but is not
frequently tested on them.

Raven Core has been tested with macOS 10.14 Mojave, but it is recommended that *developers*
do not update to Mojave. There is an incompatibility with Berkeley-db 4.8.30 that causes
the binaries to seg-fault. There is a workaround, but as of this release users should
not update to Mojave (see build-OSX.md for current status of this issue). There are no
known issues running the release binaries on Mojave.

Raven Core has not been tested with macOS Catalina(beta). Please use at your own risk.

Notable changes
==============
*This list includes changes from all releases between 2.2.2/2.2.3 and 2.4.0*
- Backport of Bitcoin v0.15.1 networking updates
- Reorganization of pointer access objects in functions


2.4.0 Change log
==============

Changelog available here: <https://github.com/RavenProject/Ravencoin/commits/release_2.4.0>

Credits
==============

Thanks to everyone who directly contributed to this release:

- Most importantly - The Raven Community!
- @blondfrogs (Jeremy Anderson) - [77f5a7838082669dbb7c21b4a93ce65e2a447963](https://github.com/RavenProject/Ravencoin/pull/608/commits/77f5a7838082669dbb7c21b4a93ce65e2a447963)
- @blondfrogs (Jeremy Anderson) - [fbbc40d22646c31465fa04a8a55f4734c3f75a9c](https://github.com/RavenProject/Ravencoin/pull/608/commits/fbbc40d22646c31465fa04a8a55f4734c3f75a9c)
- @practicalswift - [ba4d362a2b4ba814bba2aa2589231ba470f20e3f](https://github.com/RavenProject/Ravencoin/pull/608/commits/ba4d362a2b4ba814bba2aa2589231ba470f20e3f)
- @sdaftuar - [3027dd58001624f388dc522ec9c73eb5fc9aee70](https://github.com/RavenProject/Ravencoin/pull/608/commits/3027dd58001624f388dc522ec9c73eb5fc9aee70)
- @sdaftuar - [dc5cc1e5980b30a21427f75a7d4085f4755d4085](https://github.com/RavenProject/Ravencoin/pull/608/commits/dc5cc1e5980b30a21427f75a7d4085f4755d4085)
- @sdaftuar - [a743e754fd90ce3299b237700082e12c8cbcf3b4](https://github.com/RavenProject/Ravencoin/pull/608/commits/a743e754fd90ce3299b237700082e12c8cbcf3b4)
- @sdaftuar - [08efce585df53f86f13ec5d1dff689237c0ce4cc](https://github.com/RavenProject/Ravencoin/pull/608/commits/08efce585df53f86f13ec5d1dff689237c0ce4cc)
- @sdaftuar - [2d4826beee72e1a3749c1eb090a37139f3099a22](https://github.com/RavenProject/Ravencoin/pull/608/commits/2d4826beee72e1a3749c1eb090a37139f3099a22)
- @TheBlueMatt - [ffeb6ee6b27e778fdee188d12032b6ac7d2d1eb4](https://github.com/RavenProject/Ravencoin/pull/608/commits/ffeb6ee6b27e778fdee188d12032b6ac7d2d1eb4)
- @TheBlueMatt - [c27081c79eb6dca48e457d8dd5b09090771a75b7](https://github.com/RavenProject/Ravencoin/pull/608/commits/c27081c79eb6dca48e457d8dd5b09090771a75b7)

21 changes: 19 additions & 2 deletions roadmap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ Raven may increase the blocksize from 2 MB to X MB to allow for more on-chain tr

Rewards allow payment in RVN to asset holders.

[More on rewards...](./rewards/README.md)

### Phase 4 - Unique Assets (Complete)

Once created, assets can be made unique for a cost of 5 RVN. Only non-divisible assets can be made unique. This moves an asset to a UTXO and associates a unique identifier with the txid. From this point the asset can be moved from one address to another and can be traced back to its origin. Only the issuer of the original asset can make an asset unique.
Expand All @@ -71,17 +73,32 @@ are unique tokens.

### Phase 5 - Messaging

Messaging to token holders by authorized senders will be layered on top of the Phase 4 unique assets. See KAAAWWW Protocol for additional information.
Messaging to token holders by authorized senders will be layered on top of the Phase 4 unique assets. See [KAAAWWW Protocol](https://medium.com/@tronblack/ravencoin-kaaawww-2f72077aece) for additional information.

[More on messaging...](./messaging/README.md)
[More on preventing message spam...](./messaging-antispam/README.md)
[More on IPFS...](./ipfs/README.md)

### Phase 6 - Voting

Voting will be accomplished by creating and distributing parallel tokens to token holders. These tokens can be sent to RVN addresses to record a vote.

[More on voting...](./voting/README.md)

### Phase 7 - Compatibility Mode

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

[More on compatibility mode...](./compatibility-mode/README.md)


### Phase 8 - Mobile Wallet compatible Mnemonic Seed

Switches to a default of generating a 128 bit seed from which the master key is generated. This allows easy backup for anyone that doesn't import private keys. Warnings added to back up wallet.dat when importing private keys.

[More on Mnemonic Seed...](./mnemonic-seed/README.md)

### Appendix A - RPC commands for assets

`issue (asset_name, qty, to_address, change_address, units, reissuable, has_ipfs, ipfs_hash)`
Expand Down Expand Up @@ -110,4 +127,4 @@ Lists asset balance by address.
Lists addresses by asset.

`getassetdata (asset_name)`
Lists asset data of an asset.
Lists asset data of an asset.
49 changes: 49 additions & 0 deletions roadmap/compatibility-mode/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Compatibility Mode - Emulation

## The problem
The Ravencoin asset platform could have an uphill climb getting adoption because of its incompatibility with the existing infrastructure. Most exchanges, and crypto merchant acceptance systems are configured to handle coins (tokens) that work like Bitcoin (RPC to bitcoind) or Ethereum (IPC to geth using web3).

Direct use of the RPC transfer call for moving assets has been possible from the day that assets launched on Ravencoin - November 5, 2018. But expecting each and every exchange to modify their infrastructure to handle assets with different RPC calls might slow down Ravencoin asset adoption.

## The solution - Compatibility Mode - Emulation
The solution is to speed up adoption is to run ravend in compatibility mode that emulates the RPC capabilities of ravend, for an asset instead of RVN. Exchanges that have already added RVN, can add asset exchange quickly an easily using emulation for every asset they'd like to add.

As an example, normally the rpc call for transferring RVN is
```sendfrom "fromaccount" "toaddress" amount ( minconf "comment" "comment_to" )```
Ordinarily this call to ravend (port 8766) will transfer RVN

Configuring a different port for sending the TRONCO token will allow the same RPC call to transfer TRONCO instead of RVN. The advantage is that the only change needed for compatibility with a system that can already handle BTC and RVN is to use the port configured for TRONCO, or whatever asset you'd like.

### Configuration
Every Bitcoin-type, or Ravencoin-type coin uses a different RPC port. For example, the standard RPC port for Bitcoin is 8332, and the standard RPC port for Ravencoin is 8766.

An exchange can configure multiple Ravencoin assets by selecting a different port for each asset. Once configured, ravend will emulate a ravend daemon with RPC calls that send the specified asset, instead of RVN.

Configuration is done in ```raven.conf```
```emulate=TRONCO:8888,FREE_HUGS:8889,MAIN/SUB:8890```

Each emulated asset must have its own port that is available on the machine.

The RPC username and password will use the same one as configured for Ravencoin.

### Detection of Emulation in Compatibility Mode
An additional field is added to getblockchainfo for information.

```"emulate":"TRONCO:8888"```

This will be absent if not running in compatibility mode.

### Supported RPC Calls

Most of the Ravencoin RPC calls do not interact with assets. These can be straight pass-through. Only those that deal with transfers, and balances of RVN are switched to work with the specified asset.
```getbalance ( "account" minconf include_watchonly )```
```sendfrom "fromaccount" "toaddress" amount ( minconf "comment" "comment_to" )```
```sendmany "fromaccount" {"address":amount,...} ( minconf "comment" ["address",...] replaceable conf_target "estimate_mode")```
```sendtoaddress "address" amount ( "comment" "comment_to" subtractfeefromamount replaceable conf_target "estimate_mode")```
```move "fromaccount" "toaccount" amount ( minconf "comment" )```
```listtransactions ( "account" count skip include_watchonly)```
```listunspent ( minconf maxconf ["addresses",...] [include_unsafe] [query_options])```
```getreceivedbyaddress "address" ( minconf )```
```getunconfirmedbalance```


44 changes: 44 additions & 0 deletions roadmap/ipfs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# IPFS - Integration

IPFS (Interplanetary File System) is used by Ravencoin for issuance meta-data, messaging, and transaction meta-data.

IPFS hashes are stored on-chain.
* Issuance transaction for issuance meta-data.
* Send channel token or ownership token to the same address to "broadcast" a message.
* Any other transaction can optionally include transaction meta-data.

Ravencoin must interact with IPFS in order to show messages because the message content is stored on IPFS. IPFS access should be on by default, but should be able to be turned off with a flag. -noipfs Seed nodes, back-end systems, etc. will not need IPFS.

### Phased approach to IPFS integration

The two phase approach allows Ravencoin to use IPFS natively, but also use existing IPFS proxies.

Add a class of IPFS functions for init, get, and add, where these functions will either get from ifps daemon, ipfs proxies, or NOOP if -noipfs is set.


#### Phase 1
* Use https://cloudflare-ipfs.com/ipfs/<IPFS hash> for download
* Allow this to be configured in the Network tab under Preferences.
* Use https://globalupload.io/ for IPFS upload (meta-data, message send, transaction meta-data)


#### Phase 2
* A button that downloads and installs IPFS for the given platform (Mac, Windows, Linux)
* Ravencoin client detects when ipfs daemon is installed.
* Use ipfs get for download
* Use ipfs add for upload
* Option to act as a IPFS pinning node for Ravencoin assets. -ipfsnode

### Mobile Wallet

The mobile wallet will use IPFS proxies.

### Web Wallet

The web wallet will use IPFS proxies.

### IPFS Node
If -ipfsnode is set, then all ipfs hashes for Ravencoin that are less than 16000 characters and are valid JSON are pinned.

If -ipfsnofilter is also set, then all ipfs hashes for Ravencoin are pinned. This may take a lot of disk space. This removes the 16000 character and json data type restriction.

Loading