From 9a980612005adffdeb2a17ca7a09fe126dd45e0e Mon Sep 17 00:00:00 2001 From: Adrian Gallagher Date: Mon, 19 Jan 2015 18:05:34 +1100 Subject: [PATCH] Litecoin: Protocol. --- contrib/bitrpc/bitrpc.py | 4 +- contrib/debian/examples/bitcoin.conf | 6 +- contrib/debian/manpages/bitcoin-qt.1 | 4 +- contrib/debian/manpages/bitcoin.conf.5 | 6 +- contrib/linearize/example-linearize.cfg | 2 +- contrib/linearize/linearize-hashes.py | 2 +- contrib/qos/README.md | 2 +- contrib/qos/tc.sh | 6 +- contrib/seeds/makeseeds.py | 2 +- contrib/spendfrom/spendfrom.py | 2 +- doc/coding.md | 4 +- doc/tor.md | 8 +-- share/seeds/generate-seeds.py | 4 +- src/amount.h | 2 +- src/bitcoin-cli.cpp | 2 +- src/chainparams.cpp | 79 ++++++++++++------------- src/chainparamsbase.cpp | 4 +- src/init.cpp | 4 +- src/main.cpp | 15 ++--- src/rpcnet.cpp | 6 +- src/rpcserver.cpp | 4 +- src/test/netbase_tests.cpp | 18 +++--- src/txmempool.h | 2 +- 23 files changed, 92 insertions(+), 96 deletions(-) diff --git a/contrib/bitrpc/bitrpc.py b/contrib/bitrpc/bitrpc.py index 02577b1b6..8763ff4d5 100644 --- a/contrib/bitrpc/bitrpc.py +++ b/contrib/bitrpc/bitrpc.py @@ -11,9 +11,9 @@ rpcpass = "" if rpcpass == "": - access = ServiceProxy("http://127.0.0.1:8332") + access = ServiceProxy("http://127.0.0.1:9332") else: - access = ServiceProxy("http://"+rpcuser+":"+rpcpass+"@127.0.0.1:8332") + access = ServiceProxy("http://"+rpcuser+":"+rpcpass+"@127.0.0.1:9332") cmd = sys.argv[1].lower() if cmd == "backupwallet": diff --git a/contrib/debian/examples/bitcoin.conf b/contrib/debian/examples/bitcoin.conf index 31cca981e..31df96bae 100644 --- a/contrib/debian/examples/bitcoin.conf +++ b/contrib/debian/examples/bitcoin.conf @@ -38,11 +38,11 @@ # Use as many addnode= settings as you like to connect to specific peers #addnode=69.164.218.197 -#addnode=10.0.0.2:8333 +#addnode=10.0.0.2:9333 # Alternatively use as many connect= settings as you like to connect ONLY to specific peers #connect=69.164.218.197 -#connect=10.0.0.1:8333 +#connect=10.0.0.1:9333 # Listening mode, enabled by default except when 'connect' is being used #listen=1 @@ -79,7 +79,7 @@ #rpcallowip=2001:db8:85a3:0:0:8a2e:370:7334/96 # Listen for RPC connections on this TCP port: -#rpcport=8332 +#rpcport=9332 # You can use Bitcoin or bitcoind to send commands to Bitcoin/bitcoind # running on another host using this option: diff --git a/contrib/debian/manpages/bitcoin-qt.1 b/contrib/debian/manpages/bitcoin-qt.1 index a023582bc..c43556f05 100644 --- a/contrib/debian/manpages/bitcoin-qt.1 +++ b/contrib/debian/manpages/bitcoin-qt.1 @@ -41,7 +41,7 @@ Use proxy to reach tor hidden services (default: same as \fB\-proxy\fR) Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR .TP \fB\-port=\fR -Listen for connections on (default: 8333 or testnet: 18333) +Listen for connections on (default: 9333 or testnet: 19333) .TP \fB\-maxconnections=\fR Maintain at most connections to peers (default: 125) @@ -122,7 +122,7 @@ Username for JSON\-RPC connections Password for JSON\-RPC connections .TP \fB\-rpcport=\fR -Listen for JSON\-RPC connections on (default: 8332 or testnet: 18332) +Listen for JSON\-RPC connections on (default: 9332 or testnet: 19332) .TP \fB\-rpcallowip=\fR Allow JSON\-RPC connections from specified IP address diff --git a/contrib/debian/manpages/bitcoin.conf.5 b/contrib/debian/manpages/bitcoin.conf.5 index 8a0078d5d..1a1417f49 100644 --- a/contrib/debian/manpages/bitcoin.conf.5 +++ b/contrib/debian/manpages/bitcoin.conf.5 @@ -18,10 +18,10 @@ Enable or disable run on the test network instead of the real *bitcoin* network. \fBproxy=\fR\fI'127.0.0.1:9050'\fR Connect via a socks4 proxy. .TP -\fBaddnode=\fR\fI'10.0.0.2:8333'\fR +\fBaddnode=\fR\fI'10.0.0.2:9333'\fR Use as many *addnode=* settings as you like to connect to specific peers. .TP -\fBconnect=\fR\fI'10.0.0.1:8333'\fR +\fBconnect=\fR\fI'10.0.0.1:9333'\fR Use as many *connect=* settings as you like to connect ONLY to specific peers. .TP \fRmaxconnections=\fR\fI'value'\fR @@ -40,7 +40,7 @@ You must set *rpcpassword* to secure the JSON-RPC api. \fBrpcallowip=\fR\fI'192.168.1.*'\fR By default, only RPC connections from localhost are allowed. Specify as many *rpcallowip=* settings as you like to allow connections from other hosts (and you may use * as a wildcard character). .TP -\fBrpcport=\fR\fI'8332'\fR +\fBrpcport=\fR\fI'9332'\fR Listen for RPC connections on this TCP port. .TP \fBrpcconnect=\fR\fI'127.0.0.1'\fR diff --git a/contrib/linearize/example-linearize.cfg b/contrib/linearize/example-linearize.cfg index e0fef1388..f031446ff 100644 --- a/contrib/linearize/example-linearize.cfg +++ b/contrib/linearize/example-linearize.cfg @@ -3,7 +3,7 @@ rpcuser=someuser rpcpassword=somepassword host=127.0.0.1 -port=8332 +port=9332 # bootstrap.dat hashlist settings (linearize-hashes) max_height=313000 diff --git a/contrib/linearize/linearize-hashes.py b/contrib/linearize/linearize-hashes.py index dc7f65404..149b8ca90 100755 --- a/contrib/linearize/linearize-hashes.py +++ b/contrib/linearize/linearize-hashes.py @@ -96,7 +96,7 @@ if __name__ == '__main__': if 'host' not in settings: settings['host'] = '127.0.0.1' if 'port' not in settings: - settings['port'] = 8332 + settings['port'] = 9332 if 'min_height' not in settings: settings['min_height'] = 0 if 'max_height' not in settings: diff --git a/contrib/qos/README.md b/contrib/qos/README.md index 5e0a975fc..8c958d236 100644 --- a/contrib/qos/README.md +++ b/contrib/qos/README.md @@ -1,5 +1,5 @@ ### Qos ### -This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Bitcoin network. It limits outbound TCP traffic with a source or destination port of 8333, but not if the destination IP is within a LAN (defined as 192.168.x.x). +This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Bitcoin network. It limits outbound TCP traffic with a source or destination port of 9333, but not if the destination IP is within a LAN (defined as 192.168.x.x). This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it. diff --git a/contrib/qos/tc.sh b/contrib/qos/tc.sh index f62060421..49fe5b09d 100644 --- a/contrib/qos/tc.sh +++ b/contrib/qos/tc.sh @@ -32,10 +32,10 @@ tc filter add dev ${IF} parent 1: protocol ip prio 2 handle 2 fw classid 1:11 # ret=$? #done -#limit outgoing traffic to and from port 8333. but not when dealing with a host on the local network +#limit outgoing traffic to and from port 9333. but not when dealing with a host on the local network # (defined by $LOCALNET) # --set-mark marks packages matching these criteria with the number "2" # these packages are filtered by the tc filter with "handle 2" # this filter sends the packages into the 1:11 class, and this class is limited to ${LIMIT} -iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 8333 ! -d ${LOCALNET} -j MARK --set-mark 0x2 -iptables -t mangle -A OUTPUT -p tcp -m tcp --sport 8333 ! -d ${LOCALNET} -j MARK --set-mark 0x2 +iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 9333 ! -d ${LOCALNET} -j MARK --set-mark 0x2 +iptables -t mangle -A OUTPUT -p tcp -m tcp --sport 9333 ! -d ${LOCALNET} -j MARK --set-mark 0x2 diff --git a/contrib/seeds/makeseeds.py b/contrib/seeds/makeseeds.py index b831395f2..881240393 100755 --- a/contrib/seeds/makeseeds.py +++ b/contrib/seeds/makeseeds.py @@ -23,7 +23,7 @@ import re import sys import dns.resolver -PATTERN_IPV4 = re.compile(r"^((\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})):8333$") +PATTERN_IPV4 = re.compile(r"^((\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})):9333$") PATTERN_AGENT = re.compile(r"^(\/Satoshi:0.8.6\/|\/Satoshi:0.9.(2|3)\/|\/Satoshi:0.10.\d{1,2}\/)$") def parseline(line): diff --git a/contrib/spendfrom/spendfrom.py b/contrib/spendfrom/spendfrom.py index 72ee0425e..984505a5c 100755 --- a/contrib/spendfrom/spendfrom.py +++ b/contrib/spendfrom/spendfrom.py @@ -67,7 +67,7 @@ def connect_JSON(config): testnet = config.get('testnet', '0') testnet = (int(testnet) > 0) # 0/1 in config file, convert to True/False if not 'rpcport' in config: - config['rpcport'] = 18332 if testnet else 8332 + config['rpcport'] = 19332 if testnet else 9332 connect = "http://%s:%s@127.0.0.1:%s"%(config['rpcuser'], config['rpcpassword'], config['rpcport']) try: result = ServiceProxy(connect) diff --git a/doc/coding.md b/doc/coding.md index 43294dbe4..2b4d48319 100644 --- a/doc/coding.md +++ b/doc/coding.md @@ -119,7 +119,7 @@ Threads - ThreadMapPort : Universal plug-and-play startup/shutdown -- ThreadSocketHandler : Sends/Receives data from peers on port 8333. +- ThreadSocketHandler : Sends/Receives data from peers on port 9333. - ThreadOpenAddedConnections : Opens network connections to added nodes. @@ -131,7 +131,7 @@ Threads - ThreadFlushWalletDB : Close the wallet.dat file if it hasn't been used in 500ms. -- ThreadRPCServer : Remote procedure call handler, listens on port 8332 for connections and services them. +- ThreadRPCServer : Remote procedure call handler, listens on port 9332 for connections and services them. - BitcoinMiner : Generates bitcoins (if wallet is enabled). diff --git a/doc/tor.md b/doc/tor.md index 560f71fa2..6086e4a15 100644 --- a/doc/tor.md +++ b/doc/tor.md @@ -42,11 +42,11 @@ reachable from the Tor network. Add these lines to your /etc/tor/torrc (or equiv config file): HiddenServiceDir /var/lib/tor/bitcoin-service/ - HiddenServicePort 8333 127.0.0.1:8333 - HiddenServicePort 18333 127.0.0.1:18333 + HiddenServicePort 9333 127.0.0.1:9333 + HiddenServicePort 19333 127.0.0.1:19333 The directory can be different of course, but (both) port numbers should be equal to -your bitcoind's P2P listen port (8333 by default). +your bitcoind's P2P listen port (9333 by default). -externalip=X You can tell bitcoin about its publicly reachable address using this option, and this can be a .onion address. Given the above @@ -76,7 +76,7 @@ specify: ./bitcoind ... -discover -and open port 8333 on your firewall (or use -upnp). +and open port 9333 on your firewall (or use -upnp). If you only want to use Tor to reach onion addresses, but not use it as a proxy for normal IPv4/IPv6 communication, use: diff --git a/share/seeds/generate-seeds.py b/share/seeds/generate-seeds.py index cdd683121..40f3f3d8c 100755 --- a/share/seeds/generate-seeds.py +++ b/share/seeds/generate-seeds.py @@ -124,10 +124,10 @@ def main(): g.write(' * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.\n') g.write(' */\n') with open(os.path.join(indir,'nodes_main.txt'),'r') as f: - process_nodes(g, f, 'pnSeed6_main', 8333) + process_nodes(g, f, 'pnSeed6_main', 9333) g.write('\n') with open(os.path.join(indir,'nodes_test.txt'),'r') as f: - process_nodes(g, f, 'pnSeed6_test', 18333) + process_nodes(g, f, 'pnSeed6_test', 19333) g.write('#endif // BITCOIN_CHAINPARAMSSEEDS_H\n') if __name__ == '__main__': diff --git a/src/amount.h b/src/amount.h index c0d37954c..ca22603d0 100644 --- a/src/amount.h +++ b/src/amount.h @@ -17,7 +17,7 @@ static const CAmount COIN = 100000000; static const CAmount CENT = 1000000; /** No amount larger than this (in satoshi) is valid */ -static const CAmount MAX_MONEY = 21000000 * COIN; +static const CAmount MAX_MONEY = 84000000 * COIN; inline bool MoneyRange(const CAmount& nValue) { return (nValue >= 0 && nValue <= MAX_MONEY); } /** Type-safe wrapper class to for fee rates diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index ea349b197..7877003e4 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -30,7 +30,7 @@ std::string HelpMessageCli() strUsage += " -regtest " + _("Enter regression test mode, which uses a special chain in which blocks can be " "solved instantly. This is intended for regression testing tools and app development.") + "\n"; strUsage += " -rpcconnect= " + strprintf(_("Send commands to node running on (default: %s)"), "127.0.0.1") + "\n"; - strUsage += " -rpcport= " + strprintf(_("Connect to JSON-RPC on (default: %u or testnet: %u)"), 8332, 18332) + "\n"; + strUsage += " -rpcport= " + strprintf(_("Connect to JSON-RPC on (default: %u or testnet: %u)"), 9332, 19332) + "\n"; strUsage += " -rpcwait " + _("Wait for RPC server to start") + "\n"; strUsage += " -rpcuser= " + _("Username for JSON-RPC connections") + "\n"; strUsage += " -rpcpassword= " + _("Password for JSON-RPC connections") + "\n"; diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 0ae01fcfa..9c62594d1 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -110,20 +110,20 @@ public: * The characters are rarely used upper ASCII, not valid as UTF-8, and produce * a large 4-byte int at any alignment. */ - pchMessageStart[0] = 0xf9; - pchMessageStart[1] = 0xbe; - pchMessageStart[2] = 0xb4; - pchMessageStart[3] = 0xd9; - vAlertPubKey = ParseHex("04fc9702847840aaf195de8442ebecedf5b095cdbb9bc716bda9110971b28a49e0ead8564ff0db22209e0374782c093bb899692d524e9d6a6956e7c5ecbcd68284"); - nDefaultPort = 8333; - bnProofOfWorkLimit = ~uint256(0) >> 32; - nSubsidyHalvingInterval = 210000; + pchMessageStart[0] = 0xfb; + pchMessageStart[1] = 0xc0; + pchMessageStart[2] = 0xb6; + pchMessageStart[3] = 0xdb; + vAlertPubKey = ParseHex("040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9"); + nDefaultPort = 9333; + bnProofOfWorkLimit = ~uint256(0) >> 20; + nSubsidyHalvingInterval = 840000; nEnforceBlockUpgradeMajority = 750; nRejectBlockOutdatedMajority = 950; nToCheckBlockUpgradeMajority = 1000; nMinerThreads = 0; - nTargetTimespan = 14 * 24 * 60 * 60; // two weeks - nTargetSpacing = 10 * 60; + nTargetTimespan = 3.5 * 24 * 60 * 60; // 3.5 days + nTargetSpacing = 2.5 * 60; // 2.5 minutes /** * Build the genesis block. Note that the output of the genesis coinbase cannot @@ -135,34 +135,34 @@ public: * CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B) * vMerkleTree: 4a5e1e */ - const char* pszTimestamp = "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"; + const char* pszTimestamp = "NY Times 05/Oct/2011 Steve Jobs, Appleā€™s Visionary, Dies at 56"; CMutableTransaction txNew; txNew.vin.resize(1); txNew.vout.resize(1); txNew.vin[0].scriptSig = CScript() << 486604799 << CScriptNum(4) << vector((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp)); txNew.vout[0].nValue = 50 * COIN; - txNew.vout[0].scriptPubKey = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG; + txNew.vout[0].scriptPubKey = CScript() << ParseHex("040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9") << OP_CHECKSIG; genesis.vtx.push_back(txNew); genesis.hashPrevBlock = 0; genesis.hashMerkleRoot = genesis.BuildMerkleTree(); genesis.nVersion = 1; - genesis.nTime = 1231006505; - genesis.nBits = 0x1d00ffff; - genesis.nNonce = 2083236893; + genesis.nTime = 1317972665; + genesis.nBits = 0x1e0ffff0; + genesis.nNonce = 2084524493; hashGenesisBlock = genesis.GetHash(); - assert(hashGenesisBlock == uint256("0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f")); - assert(genesis.hashMerkleRoot == uint256("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b")); + assert(hashGenesisBlock == uint256("0x12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2")); + assert(genesis.hashMerkleRoot == uint256("0x97ddfbbae6be97fd6cdf3e7ca13232a3afff2353e29badfab7f73011edd4ced9")); - vSeeds.push_back(CDNSSeedData("bitcoin.sipa.be", "seed.bitcoin.sipa.be")); - vSeeds.push_back(CDNSSeedData("bluematt.me", "dnsseed.bluematt.me")); - vSeeds.push_back(CDNSSeedData("dashjr.org", "dnsseed.bitcoin.dashjr.org")); - vSeeds.push_back(CDNSSeedData("bitcoinstats.com", "seed.bitcoinstats.com")); - vSeeds.push_back(CDNSSeedData("xf2.org", "bitseed.xf2.org")); + vSeeds.push_back(CDNSSeedData("litecointools.com", "dnsseed.litecointools.com")); + vSeeds.push_back(CDNSSeedData("litecoinpool.org", "dnsseed.litecoinpool.org")); + vSeeds.push_back(CDNSSeedData("xurious.com", "dnsseed.ltc.xurious.com")); + vSeeds.push_back(CDNSSeedData("koin-project.com", "dnsseed.koin-project.com")); + vSeeds.push_back(CDNSSeedData("weminemnc.com", "dnsseed.weminemnc.com")); - base58Prefixes[PUBKEY_ADDRESS] = list_of(0); + base58Prefixes[PUBKEY_ADDRESS] = list_of(48); base58Prefixes[SCRIPT_ADDRESS] = list_of(5); - base58Prefixes[SECRET_KEY] = list_of(128); + base58Prefixes[SECRET_KEY] = list_of(176); base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x88)(0xB2)(0x1E); base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x88)(0xAD)(0xE4); @@ -193,31 +193,30 @@ public: CTestNetParams() { networkID = CBaseChainParams::TESTNET; strNetworkID = "test"; - pchMessageStart[0] = 0x0b; - pchMessageStart[1] = 0x11; - pchMessageStart[2] = 0x09; - pchMessageStart[3] = 0x07; + pchMessageStart[0] = 0xfc; + pchMessageStart[1] = 0xc1; + pchMessageStart[2] = 0xb7; + pchMessageStart[3] = 0xdc; vAlertPubKey = ParseHex("04302390343f91cc401d56d68b123028bf52e5fca1939df127f63c6467cdf9c8e2c14b61104cf817d0b780da337893ecc4aaff1309e536162dabbdb45200ca2b0a"); - nDefaultPort = 18333; + nDefaultPort = 19333; nEnforceBlockUpgradeMajority = 51; nRejectBlockOutdatedMajority = 75; nToCheckBlockUpgradeMajority = 100; nMinerThreads = 0; - nTargetTimespan = 14 * 24 * 60 * 60; //! two weeks - nTargetSpacing = 10 * 60; + nTargetTimespan = 3.5 * 24 * 60 * 60; // 3.5 days + nTargetSpacing = 2.5 * 60; // 2.5 minutes //! Modify the testnet genesis block so the timestamp is valid for a later start. - genesis.nTime = 1296688602; - genesis.nNonce = 414098458; + genesis.nTime = 1317798646; + genesis.nNonce = 385270584; hashGenesisBlock = genesis.GetHash(); - assert(hashGenesisBlock == uint256("0x000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943")); + assert(hashGenesisBlock == uint256("0xf5ae71e26c74beacc88382716aced69cddf3dffff24f384e1808905e0188f68f")); vFixedSeeds.clear(); vSeeds.clear(); - vSeeds.push_back(CDNSSeedData("alexykot.me", "testnet-seed.alexykot.me")); - vSeeds.push_back(CDNSSeedData("bitcoin.petertodd.org", "testnet-seed.bitcoin.petertodd.org")); - vSeeds.push_back(CDNSSeedData("bluematt.me", "testnet-seed.bluematt.me")); - vSeeds.push_back(CDNSSeedData("bitcoin.schildbach.de", "testnet-seed.bitcoin.schildbach.de")); + vSeeds.push_back(CDNSSeedData("litecointools.com", "testnet-seed.litecointools.com")); + vSeeds.push_back(CDNSSeedData("xurious.com", "testnet-seed.ltc.xurious.com")); + vSeeds.push_back(CDNSSeedData("wemine-testnet.com", "dnsseed.wemine-testnet.com")); base58Prefixes[PUBKEY_ADDRESS] = list_of(111); base58Prefixes[SCRIPT_ADDRESS] = list_of(196); @@ -266,8 +265,8 @@ public: genesis.nBits = 0x207fffff; genesis.nNonce = 2; hashGenesisBlock = genesis.GetHash(); - nDefaultPort = 18444; - assert(hashGenesisBlock == uint256("0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206")); + nDefaultPort = 19444; + assert(hashGenesisBlock == uint256("0x9372df8b4c0144d2238b73d65ce81b5eb37ec416c23fc29307b89de4b0493cf8")); vFixedSeeds.clear(); //! Regtest mode doesn't have any fixed seeds. vSeeds.clear(); //! Regtest mode doesn't have any DNS seeds. diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp index 8646a3160..b7ec173fc 100644 --- a/src/chainparamsbase.cpp +++ b/src/chainparamsbase.cpp @@ -22,7 +22,7 @@ public: CBaseMainParams() { networkID = CBaseChainParams::MAIN; - nRPCPort = 8332; + nRPCPort = 9332; } }; static CBaseMainParams mainParams; @@ -36,7 +36,7 @@ public: CBaseTestNetParams() { networkID = CBaseChainParams::TESTNET; - nRPCPort = 18332; + nRPCPort = 19332; strDataDir = "testnet3"; } }; diff --git a/src/init.cpp b/src/init.cpp index 353b16e4e..48201f25d 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -283,7 +283,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -onion= " + strprintf(_("Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)"), "-proxy") + "\n"; strUsage += " -onlynet= " + _("Only connect to nodes in network (ipv4, ipv6 or onion)") + "\n"; strUsage += " -permitbaremultisig " + strprintf(_("Relay non-P2SH multisig (default: %u)"), 1) + "\n"; - strUsage += " -port= " + strprintf(_("Listen for connections on (default: %u or testnet: %u)"), 8333, 18333) + "\n"; + strUsage += " -port= " + strprintf(_("Listen for connections on (default: %u or testnet: %u)"), 9333, 19333) + "\n"; strUsage += " -proxy= " + _("Connect through SOCKS5 proxy") + "\n"; strUsage += " -seednode= " + _("Connect to a node to retrieve peer addresses, and disconnect") + "\n"; strUsage += " -timeout= " + strprintf(_("Specify connection timeout in milliseconds (minimum: 1, default: %d)"), DEFAULT_CONNECT_TIMEOUT) + "\n"; @@ -378,7 +378,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -rpcbind= " + _("Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces)") + "\n"; strUsage += " -rpcuser= " + _("Username for JSON-RPC connections") + "\n"; strUsage += " -rpcpassword= " + _("Password for JSON-RPC connections") + "\n"; - strUsage += " -rpcport= " + strprintf(_("Listen for JSON-RPC connections on (default: %u or testnet: %u)"), 8332, 18332) + "\n"; + strUsage += " -rpcport= " + strprintf(_("Listen for JSON-RPC connections on (default: %u or testnet: %u)"), 9332, 19332) + "\n"; strUsage += " -rpcallowip= " + _("Allow JSON-RPC connections from specified source. Valid for are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times") + "\n"; strUsage += " -rpcthreads= " + strprintf(_("Set the number of threads to service RPC calls (default: %d)"), 4) + "\n"; strUsage += " -rpckeepalive " + strprintf(_("RPC support for HTTP persistent connections (default: %d)"), 1) + "\n"; diff --git a/src/main.cpp b/src/main.cpp index dff16063e..c8a0d10e4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1663,13 +1663,10 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin // See BIP30 and http://r6.ca/blog/20120206T005236Z.html for more information. // This logic is not necessary for memory pool transactions, as AcceptToMemoryPool // already refuses previously-known transaction ids entirely. - // This rule was originally applied all blocks whose timestamp was after March 15, 2012, 0:00 UTC. - // Now that the whole chain is irreversibly beyond that time it is applied to all blocks except the - // two in the chain that violate it. This prevents exploiting the issue against nodes in their - // initial block download. - bool fEnforceBIP30 = (!pindex->phashBlock) || // Enforce on CreateNewBlock invocations which don't have a hash. - !((pindex->nHeight==91842 && pindex->GetBlockHash() == uint256("0x00000000000a4d0a398161ffc163c503763b1f4360639393e0e4c8e300e0caec")) || - (pindex->nHeight==91880 && pindex->GetBlockHash() == uint256("0x00000000000743f190a18c5577a3c2d2a1f610ae9601ac046a38084ccb7cd721"))); + // This rule was originally applied all blocks whose timestamp was after October 1, 2012, 0:00 UTC. + // Now that the whole chain is irreversibly beyond that time it is applied to all blocks, + // this prevents exploiting the issue against nodes in their initial block download. + bool fEnforceBIP30 = true; if (fEnforceBIP30) { BOOST_FOREACH(const CTransaction& tx, block.vtx) { const CCoins* coins = view.AccessCoins(tx.GetHash()); @@ -1679,8 +1676,8 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin } } - // BIP16 didn't become active until Apr 1 2012 - int64_t nBIP16SwitchTime = 1333238400; + // BIP16 didn't become active until Oct 1 2012 + int64_t nBIP16SwitchTime = 1349049600; bool fStrictPayToScriptHash = (pindex->GetBlockTime() >= nBIP16SwitchTime); unsigned int flags = fStrictPayToScriptHash ? SCRIPT_VERIFY_P2SH : SCRIPT_VERIFY_NONE; diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index 6ddbd62fc..97a4a9b25 100644 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -174,8 +174,8 @@ Value addnode(const Array& params, bool fHelp) "1. \"node\" (string, required) The node (see getpeerinfo for nodes)\n" "2. \"command\" (string, required) 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once\n" "\nExamples:\n" - + HelpExampleCli("addnode", "\"192.168.0.6:8333\" \"onetry\"") - + HelpExampleRpc("addnode", "\"192.168.0.6:8333\", \"onetry\"") + + HelpExampleCli("addnode", "\"192.168.0.6:9333\" \"onetry\"") + + HelpExampleRpc("addnode", "\"192.168.0.6:9333\", \"onetry\"") ); string strNode = params[0].get_str(); @@ -228,7 +228,7 @@ Value getaddednodeinfo(const Array& params, bool fHelp) " \"connected\" : true|false, (boolean) If connected\n" " \"addresses\" : [\n" " {\n" - " \"address\" : \"192.168.0.201:8333\", (string) The bitcoin server host and port\n" + " \"address\" : \"192.168.0.201:9333\", (string) The bitcoin server host and port\n" " \"connected\" : \"outbound\" (string) connection, inbound or outbound\n" " }\n" " ,...\n" diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 6db2b0421..4c8e60a44 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -95,7 +95,7 @@ static inline int64_t roundint64(double d) CAmount AmountFromValue(const Value& value) { double dAmount = value.get_real(); - if (dAmount <= 0.0 || dAmount > 21000000.0) + if (dAmount <= 0.0 || dAmount > 84000000.0) throw JSONRPCError(RPC_TYPE_ERROR, "Invalid amount"); CAmount nAmount = roundint64(dAmount * COIN); if (!MoneyRange(nAmount)) @@ -1027,7 +1027,7 @@ std::string HelpExampleCli(string methodname, string args){ std::string HelpExampleRpc(string methodname, string args){ return "> curl --user myusername --data-binary '{\"jsonrpc\": \"1.0\", \"id\":\"curltest\", " - "\"method\": \"" + methodname + "\", \"params\": [" + args + "] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/\n"; + "\"method\": \"" + methodname + "\", \"params\": [" + args + "] }' -H 'content-type: text/plain;' http://127.0.0.1:9332/\n"; } const CRPCTable tableRPC; diff --git a/src/test/netbase_tests.cpp b/src/test/netbase_tests.cpp index c26e73838..3c8bbf77c 100644 --- a/src/test/netbase_tests.cpp +++ b/src/test/netbase_tests.cpp @@ -60,15 +60,15 @@ BOOST_AUTO_TEST_CASE(netbase_splithost) BOOST_CHECK(TestSplitHost("www.bitcoin.org:80", "www.bitcoin.org", 80)); BOOST_CHECK(TestSplitHost("[www.bitcoin.org]:80", "www.bitcoin.org", 80)); BOOST_CHECK(TestSplitHost("127.0.0.1", "127.0.0.1", -1)); - BOOST_CHECK(TestSplitHost("127.0.0.1:8333", "127.0.0.1", 8333)); + BOOST_CHECK(TestSplitHost("127.0.0.1:9333", "127.0.0.1", 9333)); BOOST_CHECK(TestSplitHost("[127.0.0.1]", "127.0.0.1", -1)); - BOOST_CHECK(TestSplitHost("[127.0.0.1]:8333", "127.0.0.1", 8333)); + BOOST_CHECK(TestSplitHost("[127.0.0.1]:9333", "127.0.0.1", 9333)); BOOST_CHECK(TestSplitHost("::ffff:127.0.0.1", "::ffff:127.0.0.1", -1)); - BOOST_CHECK(TestSplitHost("[::ffff:127.0.0.1]:8333", "::ffff:127.0.0.1", 8333)); - BOOST_CHECK(TestSplitHost("[::]:8333", "::", 8333)); - BOOST_CHECK(TestSplitHost("::8333", "::8333", -1)); - BOOST_CHECK(TestSplitHost(":8333", "", 8333)); - BOOST_CHECK(TestSplitHost("[]:8333", "", 8333)); + BOOST_CHECK(TestSplitHost("[::ffff:127.0.0.1]:9333", "::ffff:127.0.0.1", 9333)); + BOOST_CHECK(TestSplitHost("[::]:9333", "::", 9333)); + BOOST_CHECK(TestSplitHost("::9333", "::9333", -1)); + BOOST_CHECK(TestSplitHost(":9333", "", 9333)); + BOOST_CHECK(TestSplitHost("[]:9333", "", 9333)); BOOST_CHECK(TestSplitHost("", "", -1)); } @@ -83,10 +83,10 @@ bool static TestParse(string src, string canon) BOOST_AUTO_TEST_CASE(netbase_lookupnumeric) { BOOST_CHECK(TestParse("127.0.0.1", "127.0.0.1:65535")); - BOOST_CHECK(TestParse("127.0.0.1:8333", "127.0.0.1:8333")); + BOOST_CHECK(TestParse("127.0.0.1:9333", "127.0.0.1:9333")); BOOST_CHECK(TestParse("::ffff:127.0.0.1", "127.0.0.1:65535")); BOOST_CHECK(TestParse("::", "[::]:65535")); - BOOST_CHECK(TestParse("[::]:8333", "[::]:8333")); + BOOST_CHECK(TestParse("[::]:9333", "[::]:9333")); BOOST_CHECK(TestParse("[127.0.0.1]", "127.0.0.1:65535")); BOOST_CHECK(TestParse(":::", "")); } diff --git a/src/txmempool.h b/src/txmempool.h index f671352b5..dc58f35a4 100644 --- a/src/txmempool.h +++ b/src/txmempool.h @@ -17,7 +17,7 @@ class CAutoFile; inline double AllowFreeThreshold() { - return COIN * 144 / 250; + return COIN * 576 / 250; } inline bool AllowFree(double dPriority)