Skip to content

Commit

Permalink
Add support for Ravencoin (RVN) (#745)
Browse files Browse the repository at this point in the history
* Add support for Ravencoin (RVN)
  • Loading branch information
sphericale authored and Neil committed Mar 3, 2019
1 parent 54bbf90 commit a10be86
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 0 deletions.
49 changes: 49 additions & 0 deletions electrumx/lib/coins.py
Expand Up @@ -2805,3 +2805,52 @@ def genesis_block(cls, block):
raise CoinError('genesis block has hash {} expected {}'
.format(header_hex_hash, cls.GENESIS_HASH))
return header + bytes(1)


class Ravencoin(Coin):
NAME = "Ravencoin"
SHORTNAME = "RVN"
NET = "mainnet"
XPUB_VERBYTES = bytes.fromhex("0488B21E")
XPRV_VERBYTES = bytes.fromhex("0488ADE4")
P2PKH_VERBYTE = bytes.fromhex("3C")
P2SH_VERBYTES = [bytes.fromhex("7A")]
WIF_BYTE = bytes.fromhex("80")
GENESIS_HASH = ('0000006b444bc2f2ffe627be9d9e7e7a'
'0730000870ef6eb6da46c8eae389df90')
DESERIALIZER = lib_tx.DeserializerSegWit
TX_COUNT = 3911020
TX_COUNT_HEIGHT = 602000
TX_PER_BLOCK = 4
RPC_PORT = 8766
REORG_LIMIT = 55
PEERS = [
'rvn.satoshi.org.uk s t',
'electrum-rvn.minermore.com s t',
'153.126.197.243 s t'
]
@classmethod
def header_hash(cls, header):
'''Given a header return the hash.'''
import x16r_hash
return x16r_hash.getPoWHash(header)


class RavencoinTestnet(Ravencoin):
NET = "testnet"
XPUB_VERBYTES = bytes.fromhex("043587CF")
XPRV_VERBYTES = bytes.fromhex("04358394")
P2PKH_VERBYTE = bytes.fromhex("6F")
P2SH_VERBYTES = [bytes.fromhex("C4")]
WIF_BYTE = bytes.fromhex("EF")
GENESIS_HASH = ('000000ecfc5e6324a079542221d00e10'
'362bdc894d56500c414060eea8a3ad5a')
TX_COUNT = 108085
TX_COUNT_HEIGHT = 60590
TX_PER_BLOCK = 4
RPC_PORT = 18766
PEER_DEFAULT_PORTS = {'t': '50003', 's': '50004'}
REORG_LIMIT = 55
PEERS = [
'rvn.satoshi.org.uk s t'
]
33 changes: 33 additions & 0 deletions tests/blocks/ravencoin_mainnet_600000.json
@@ -0,0 +1,33 @@
{
"hash": "000000000000a9be296ec8090c18aaa185301dec40c519757d90a2c30b7af0c0",
"size": 5746,
"weight": 22984,
"height": 600000,
"version": 805306368,
"versionHex": "30000000",
"merkleroot": "dbffd6fb4705bc5b12e9de0525e284e68250f7d7d270e088132d4921fa7b5830",
"tx": [
"6d5547b8f687868d2c408be2256b31c9ebd823f85efeb52c860e5e962cea81ef",
"a1c7f69c788f360e9c3a45907fcd606a61bd4fab21d70ce75b3f6d52dcab7d58",
"636de59560347d535d0e06fd6ab7ebd5f9ac15b4c7e8ba5433accbb250f6351d",
"bcb0bfadbd33083c1c8d7ed17dab5dbcfc6d487bbf08999d8a597c5713832d6a",
"c6ad0ac785ab13a9809ee15150353fbaaed7cc630dac360999f8012d04e7c950",
"be27abc8dd460c2122d3f7b3ed6df285ec4b0a4063f76bf7e9000309e04585c6",
"6f8aefaa59f406a28b04dae5bdc360e0734c3f2a89532f13eaa167c5ba35f468",
"e5a8e5248a7d8a615553f1bbb87e012407935e90980fec4dcdfab2ab2ecb5699",
"f755c1f693b7f8e2eae8abb74da7802b1cc88aea51960bdcc9cae329fdd35b5f",
"ac110dc9a2f01a9fd4637341ccfae562b4c5d6a4827579b9ef0f05cab0301633",
"ef666db4f4f0e4934d78634b03bbc9ffbbf95447ad2bd96b4206a68d7e2ed626",
"371f42508783dab54f0780b544f8b4fa1acd5e58a6d1593d85cef40dc657300a",
"45326e9c6af4709484933bc3885aaa2ce8c5e916bd33305af77f74f97e245322"
],
"time": 1551368420,
"mediantime": 1551368044,
"nonce": 1666030350,
"bits": "1b0131a2",
"difficulty": 54892.53546688479,
"chainwork": "0000000000000000000000000000000000000000000000044e7120594172092d",
"previousblockhash": "00000000000105fdd9996334b1e3e975ee7018b1d2b78852847134cea2d7672c",
"nextblockhash": "00000000000083b113598aa33804ed20f981da0b898a26ef63afea89476d67f5",
"block": "000000302c67d7a2ce3471845288b7d2b11870ee75e9e3b1346399d9fd0501000000000030587bfa21492d1388e070d2d7f75082e684e22505dee9125bbc0547fbd6ffdbe400785ca231011b0e9b4d630d01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff3203c02709048945aa710809306e4cbe0d00001f2f4f7074696d697a6174696f6e206279206f74686572506f6f6c2e636f6d2f0000000001cbcf566a740000001976a914416e560575b8f45df6f7af747c4d98921ef5d9d188ac0000000002000000022bd7e50a07cbd1716fe12af52a5136408bd5c48b25d1c22c9c5071e838b74dac000000006b483045022100d71699e7a7f8fdef1f242d9831492f5ff9d5776f497fdeb17dd7152abedc268f022056420a039763a31b22d857e32acee85e588438f512dbe4aa8884c165d2f61810012103111a39c031da5ffc7220753a85ac06f35bfc24848e7706ddbb601f68f10c6dc8feffffff2bd7e50a07cbd1716fe12af52a5136408bd5c48b25d1c22c9c5071e838b74dac020000006b483045022100ae5ac3a29278d1cb0c4d458bd379caabcb371d3e84359711f17198e9cdf2b6e00220029c911715de3387423f4acb44d3800da04245921a655d6f7fe0ba1932d82c70012103111a39c031da5ffc7220753a85ac06f35bfc24848e7706ddbb601f68f10c6dc8feffffff0300000000000000004176a91408aa3137361550fc1dbb98ab30283b989e8fcad488acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00ca9a3b000000007500000000000000004176a91485d8526171a05aeeb96a827b051da0e24c10b76e88acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00f651fdc0350000757fbe9417020000001976a91485d8526171a05aeeb96a827b051da0e24c10b76e88acbd2709000200000002587dabdc526d3f5be70cd721ab4fbd616a60cd7f90453a9c0e368f789cf6c7a1020000006b483045022100e8117bd9d58fbf998e4c3a718d00c5ff5d553bfd0f25a0017f516f536ec2a88c02201daabf38d5c79f5c413dc0069f8c3c9f70cf9751e214ab8b463d2263cbd838b601210316afd684c4b1c047329dd8e1838ee18ed1152b678c801543c86b22d7e85fac84feffffff587dabdc526d3f5be70cd721ab4fbd616a60cd7f90453a9c0e368f789cf6c7a1010000006a47304402206161d2263b6ac94c763d648dadfe230fd2f349be26049dbb2d86cd59dfda899802207a165a6723f6307676ecb3f28d84e20a4269bd9f4027d1966433b92ca75774f301210316afd684c4b1c047329dd8e1838ee18ed1152b678c801543c86b22d7e85fac84feffffff03bb5d9417020000001976a914c49a5d026a25c3a3f0330735bcc95876bc510ff688ac00000000000000004176a91408aa38c652d271a6ad335242d6d28644ce95fbc788acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00ca9a3b000000007500000000000000004176a914c49a5d026a25c3a3f0330735bcc95876bc510ff688acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d002cb7c1c035000075bd27090002000000021d35f650b2cbac3354bae8c7b415acf9d5ebb76afd060e5d537d346095e56d63000000006b483045022100d3b22f8a798a315fbbb00b71da5e4ee9126abc6711c6d4389da176acf1d7d14d02201673d390091303acc8ab20746f4a58279491631abf40571032f840684e102746012102bddc6fc48d0fc58995a3b022f260bb5eb5282b2276c53a29957a35d9944cce78feffffff1d35f650b2cbac3354bae8c7b415acf9d5ebb76afd060e5d537d346095e56d63020000006a4730440220765802796ab2b88ee685eaa008df99a78526c6a4810c04d85d16c9416fbdf32d02207e290f3c5fc2f8083db0c5b657d623324e694a1d177ea050a65892017893bc88012102bddc6fc48d0fc58995a3b022f260bb5eb5282b2276c53a29957a35d9944cce78feffffff0300000000000000004176a91408aa554fc4b7aba98547a5dedeb3ae146820f31e88acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00ca9a3b000000007500000000000000004176a9140330cf5e76c2df8d24bd43e16470bbf33a71830088acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00621c86c035000075f7fc9317020000001976a9140330cf5e76c2df8d24bd43e16470bbf33a71830088acbd27090002000000026a2d8313577c598a9d9908bf7b486dfcbc5dab7dd17e8d1c3c0833bdadbfb0bc020000006a47304402204c9a6e23b09c8559fb9a84623b6d22cdd875db502c175b79a80c75d0627d534602201dd3c2e42399f1cd4299b43a5006fa71ed23bbbf429b10c48e79a98b72e583bd0121039d7bddbe999449506cf5dfb085d3c2428b0bdb140283aa286b0f2806a9b8acddfeffffff6a2d8313577c598a9d9908bf7b486dfcbc5dab7dd17e8d1c3c0833bdadbfb0bc010000006a4730440220661a6d05bca7f8f455e3d0d363bcbfd621ef32b981244dbeacb50b4dde21a7ad0220604bb73b129d9256f46e04ba180064387b1944f330958788540be3c4e22c66e20121039d7bddbe999449506cf5dfb085d3c2428b0bdb140283aa286b0f2806a9b8acddfeffffff03339c9317020000001976a914fa1c13da8991518284a083f91729c1c828faed4f88ac00000000000000004176a91408aa5e9eacdb389f5222219f9e1e9ef3b37e6f5688acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00ca9a3b000000007500000000000000004176a914fa1c13da8991518284a083f91729c1c828faed4f88acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d0098814ac035000075be270900020000000250c9e7042d01f8990936ac0d63ccd7aeba3f355051e19e80a913ab85c70aadc6000000006b483045022100cfbbb9f0bb6d6b5fd95540ce6ae0f204ca7f0ab753b3bcf8a183274dca25d02e022062de74ac120a70d4f8ea4012fbd0c7ba5ae9e695480d1a3ce2fe30561e69fd54012102ad164f09b7f975d5ffbfcef7d7ee3312f0b3672fe1335e457e48b444c878b34afeffffff50c9e7042d01f8990936ac0d63ccd7aeba3f355051e19e80a913ab85c70aadc6020000006b483045022100fea02233f8aa461e465c789d3f033a4bed874c24a190556f45c3d3ed14a8704a02207c2cf442ec88fb6c089b7cfbfde0962e7b3114349ffea3bff25e5df9311af03d012102ad164f09b7f975d5ffbfcef7d7ee3312f0b3672fe1335e457e48b444c878b34afeffffff0300000000000000004176a91408aa6034369acfed2151d721d8a6bf32ce2baaca88acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00ca9a3b00000000756f3b9317020000001976a9147217edb05c664800b98a08a2df52b591a563778588ac00000000000000004176a9147217edb05c664800b98a08a2df52b591a563778588acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00cee60ec035000075be2709000200000002c68545e0090300e9f76bf763400a4bec85f26dedb3f7d322210c46ddc8ab27be010000006b483045022100afb7fab4300bbafcac748544304b309bbcc8a6a621338b4e107977326d33dfe702206ead0ca1171921038486ea174e5678057b290add7d4eea401e4f1a43b510623501210294619c2cc259bef1c1b7741137d86186924489a3d3e85a3cad2587e845f682acfeffffffc68545e0090300e9f76bf763400a4bec85f26dedb3f7d322210c46ddc8ab27be020000006b483045022100d0111437da48252204dcd0c30fb31fe68fff0c5b096a2c844ce8ef174aac416902203f9f13b639d631a1837d5e66a6a65815ce818e47f418cbf74b6ccbacba13b9e701210294619c2cc259bef1c1b7741137d86186924489a3d3e85a3cad2587e845f682acfeffffff03abda9217020000001976a914f99841fff1ea234c09f237cb0784eef8599cf84788ac00000000000000004176a91408aa6eb49c352ec31f2c1cb39c6ae4ff6cd7db4888acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00ca9a3b000000007500000000000000004176a914f99841fff1ea234c09f237cb0784eef8599cf84788acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00044cd3bf350000757e270900020000000268f435bac567a1ea132f53892a3f4c73e060c3bde5da048ba206f459aaef8a6f000000006b483045022100dd466b05a26a568ecede65b26c2302129767980ac59d9f2d699e4c6182bc9743022071d5aeec135a25fdc56daa773bcc130b1e1ae0c0f96ccf593167c984c68c4ee8012103821bb1308d9cae52d6fdf346fdd9e769780ac55a15b92c578f19828ed017309cfeffffff68f435bac567a1ea132f53892a3f4c73e060c3bde5da048ba206f459aaef8a6f020000006a47304402203a70ae3c8b0da3cb4525ababd8bbe5a653001c29d073212b2d5d060a060fa348022024d6360d6017f8f82e46d9fc0dd67189286808bd255c3be8fc1e38c7c771a711012103821bb1308d9cae52d6fdf346fdd9e769780ac55a15b92c578f19828ed017309cfeffffff03e7799217020000001976a91412f1572a70f5bc2a3c9a290b434a02dd1ff4c23c88ac00000000000000004176a91408aac2570fcc7c1e5fd39f83e1ba69756d5e749088acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00ca9a3b000000007500000000000000004176a91412f1572a70f5bc2a3c9a290b434a02dd1ff4c23c88acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d003ab197bf35000075be27090002000000029956cb2eabb2facd4dec0f98905e930724017eb8bbf15355618a7d8a24e5a8e5000000006b483045022100ac3ac36b9f1698f8a2247322a5ec4568f474b1dc58f2e05b27a9ab0601720e26022007f5b683d23aa4b12963da4680650b02c657ce88a96ae6e966b037dc4e2093c5012102dfbd7075df12c5d0b5844e5eb453e88313f9e36746ed629d7d22b38bd4764ce4feffffff9956cb2eabb2facd4dec0f98905e930724017eb8bbf15355618a7d8a24e5a8e5020000006a47304402207ff9e3cfb3fbdb50cb802635adb7307cb19e038231d49c7c29dac21ad065b48a02204aa58bdbf2dd7f64a3461f7ec89bf7b3b082e07674ca88895f8c3617595f799f012102dfbd7075df12c5d0b5844e5eb453e88313f9e36746ed629d7d22b38bd4764ce4feffffff0300000000000000004176a91408aada61283d88b8c205cf4bcfd575b0c70b9f3088acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00ca9a3b000000007500000000000000004176a914c3cfef8cacd215e818124cb82aee8a4557cdfec588acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d0070165cbf3500007523199217020000001976a914c3cfef8cacd215e818124cb82aee8a4557cdfec588aca72709000200000001c7eafa3c73d99d8bba636f75ef3857438e4a74f4dc7f2a34fa8ec19f2f368e6b010000006b483045022100b2c6e0c4091370fec664acec1f55f01d3018d250366a1777bf628d79c2060a300220679f968ec91d26923700b1ebe1ff2a9a0b6f7347be6b134fb329ef971371d6550121035e51fa2302af7d42e53e1ca69d2f2665acadcf8a29f2f51c049b8e4554fcd90dfeffffff02adc25cc1020000001976a9141510abad6d3aa9b1691ba45058ad8e551c6589ba88acf01f1915030000001976a914288e3081abe5e2595a91a6912263a57b6ff6f23e88acbe27090002000000025f5bd3fd29e3cac9dc0b9651ea8ac81c2b80a74db7abe8eae2f8b793f6c155f7020000006b483045022100b804db86921da1776edb047821e50bd8cb2235285f781592b8f904bacc7e107502201f7e8316f275c5de5d981edf540c5c1f21db122c8e5f0d1f7d808ae91a5845cd01210353624de263baf35d7468a396ce0d479d0f1a4dc7b8c23d0fb7a07d3f00bce092feffffff5f5bd3fd29e3cac9dc0b9651ea8ac81c2b80a74db7abe8eae2f8b793f6c155f7010000006b483045022100c676b0c3f332de4893e999bb5d0aba2759b05f689dca1f185dfa341a973263b60220645e7d8a1e494e1c85887b0609856eb112e5772fbe5c361f606b5ed2bdd53f1001210353624de263baf35d7468a396ce0d479d0f1a4dc7b8c23d0fb7a07d3f00bce092feffffff0300000000000000004176a91408aae1649bd306499f2562aea7e3063852d444d088acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00ca9a3b000000007500000000000000004176a9145b99bcc96e3c69d3a593c022fd633991ccbec23a88acc02572766e74185757572e52564e415353455453464f5253414c452e434f4d00a67b20bf350000755fb89117020000001976a9145b99bcc96e3c69d3a593c022fd633991ccbec23a88ac7e27090002000000029ee53d2e17769734612e64c9e8a9cc093ad0ad8ead288aa0effec1c429ff35e1020000006a473044022100cd2c55966ab99583afcbec21b7fa6cd16bc56d09abc8ef3c584c78f9e0de8780021f416b17d1d1b73b4cf1bf9f458b880945ba33cdc8bc3f2bb45fffecb2ea26a9012103d32889e4af7c63f0a6c139da9f5a5b8a91ee1fb9f0b3ad650c3c87ede19c9991feffffff30056b7643dcf5ce8a09c77aa642f443d991b456e0d913bc3f0453933bea6157010000006a47304402204f5bbe8377a7eaf75b83c699e013b65f62862a2461ed3d153d2eae923de2e3f402205f86d1a7d4dc3af34bb5832606853bffc0a9384ce2f4ba0dd37da13be66d69da012103c37678e916c3d9e493123ef57daf179f338df6d56891d58997c173a43c6843e0feffffff03d0341149000000001976a914b213e11e064ebc9c017afc022a7b1bb5bc81034c88ac00000000000000003276a91442c87dd3bb55dcbecf6c0aa8ee9a195813a88bc888acc01672766e7409424545524d4f4e455900ca9a3b000000007500000000000000003276a914b213e11e064ebc9c017afc022a7b1bb5bc81034c88acc01672766e7409424545524d4f4e455900d912abd67f030075bd27090002000000020a3057c60df4ce853d59d1a6585ecd1afab4f844b580074fb5da838750421f37000000006a47304402203a402eb5434044912942539ea1e211717ae7444d5d31bd616f5279bcb3e405a40220688ef42273627f25dd7972fe66fedb9163175f77a60e89016829f4636c9f030b0121029e036a13c8fa695b1dd87e3a05a2c96e40afe7df8bd4d04c1d515cd1e8447e46feffffff907d6becd6d1ef2fdaa6dfe8a700bf9df498664ba11b15807090636cd1480930020000006a47304402200acf7ac14d94f0b38a229366e3aa05017b9770402c8bcbf40712827519aa5101022015c8375ee190038b6446d4c9da9966e9a6c15a9b1d44acf1fbf876ff89f963e401210259b0de1d4f5013df03a594347979e46aa72a634221cbc50d5982bb30a31d3929feffffff0330da1049000000001976a91447c32024930a4c5bbe65810ae0b0e099a948b48588ac00000000000000003576a91442c87dd3bb55dcbecf6c0aa8ee9a195813a88bc888acc01972766e740c4c49515549445f415353455400ca9a3b000000007500000000000000003576a91447c32024930a4c5bbe65810ae0b0e099a948b48588acc01972766e740c4c49515549445f4153534554000b495dc92f000075bd270900"
}
21 changes: 21 additions & 0 deletions tests/blocks/ravencoin_testnet_200000.json
@@ -0,0 +1,21 @@
{
"hash": "00000006580060522a1361e79685fe2a85e917de1089fe5743ab1ee35407d789",
"size": 281,
"weight": 1016,
"height": 200000,
"version": 805306368,
"versionHex": "30000000",
"merkleroot": "cb1a8b42f809dc5b443608b8056734653f619652af3012c0827372bcd7808954",
"tx": [
"cb1a8b42f809dc5b443608b8056734653f619652af3012c0827372bcd7808954"
],
"time": 1550634944,
"mediantime": 1550634620,
"nonce": 1933676035,
"bits": "1d0d67c7",
"difficulty": 0.0745957759224163,
"chainwork": "00000000000000000000000000000000000000000000000000001c4a9cd47c3c",
"previousblockhash": "0000000bf80298a54a30bc2cabc55b1940696047577cfb87e5af1b942cfc421d",
"nextblockhash": "000000034d3fee7aac4a6aa33f4cff189f9e6836f0649b048d0cb953e045dd43",
"block": "000000301d42fc2c941bafe587fb7c5747606940195bc5ab2cbc304aa59802f80b000000548980d7bc727382c01230af5296613f65346705b80836445bdc09f8428b1acbc0cf6c5cc7670d1d038e417301010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff2003400d0304c0cf6c5c08ef47c347000000000d2f6e6f64655374726174756d2f00000000020000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90088526a740000001976a914eb0ff2678a9e5f1d2c0e8bd4812dc46043c669fc88ac0120000000000000000000000000000000000000000000000000000000000000000000000000"
}

0 comments on commit a10be86

Please sign in to comment.