mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-03-13 06:01:45 +00:00
Litecoin: Protocol.
This commit is contained in:
parent
327970b682
commit
9a98061200
@ -11,9 +11,9 @@ rpcpass = ""
|
|||||||
|
|
||||||
|
|
||||||
if rpcpass == "":
|
if rpcpass == "":
|
||||||
access = ServiceProxy("http://127.0.0.1:8332")
|
access = ServiceProxy("http://127.0.0.1:9332")
|
||||||
else:
|
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()
|
cmd = sys.argv[1].lower()
|
||||||
|
|
||||||
if cmd == "backupwallet":
|
if cmd == "backupwallet":
|
||||||
|
@ -38,11 +38,11 @@
|
|||||||
|
|
||||||
# Use as many addnode= settings as you like to connect to specific peers
|
# Use as many addnode= settings as you like to connect to specific peers
|
||||||
#addnode=69.164.218.197
|
#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
|
# Alternatively use as many connect= settings as you like to connect ONLY to specific peers
|
||||||
#connect=69.164.218.197
|
#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
|
# Listening mode, enabled by default except when 'connect' is being used
|
||||||
#listen=1
|
#listen=1
|
||||||
@ -79,7 +79,7 @@
|
|||||||
#rpcallowip=2001:db8:85a3:0:0:8a2e:370:7334/96
|
#rpcallowip=2001:db8:85a3:0:0:8a2e:370:7334/96
|
||||||
|
|
||||||
# Listen for RPC connections on this TCP port:
|
# Listen for RPC connections on this TCP port:
|
||||||
#rpcport=8332
|
#rpcport=9332
|
||||||
|
|
||||||
# You can use Bitcoin or bitcoind to send commands to Bitcoin/bitcoind
|
# You can use Bitcoin or bitcoind to send commands to Bitcoin/bitcoind
|
||||||
# running on another host using this option:
|
# running on another host using this option:
|
||||||
|
@ -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
|
Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR
|
||||||
.TP
|
.TP
|
||||||
\fB\-port=\fR<port>
|
\fB\-port=\fR<port>
|
||||||
Listen for connections on <port> (default: 8333 or testnet: 18333)
|
Listen for connections on <port> (default: 9333 or testnet: 19333)
|
||||||
.TP
|
.TP
|
||||||
\fB\-maxconnections=\fR<n>
|
\fB\-maxconnections=\fR<n>
|
||||||
Maintain at most <n> connections to peers (default: 125)
|
Maintain at most <n> connections to peers (default: 125)
|
||||||
@ -122,7 +122,7 @@ Username for JSON\-RPC connections
|
|||||||
Password for JSON\-RPC connections
|
Password for JSON\-RPC connections
|
||||||
.TP
|
.TP
|
||||||
\fB\-rpcport=\fR<port>
|
\fB\-rpcport=\fR<port>
|
||||||
Listen for JSON\-RPC connections on <port> (default: 8332 or testnet: 18332)
|
Listen for JSON\-RPC connections on <port> (default: 9332 or testnet: 19332)
|
||||||
.TP
|
.TP
|
||||||
\fB\-rpcallowip=\fR<ip>
|
\fB\-rpcallowip=\fR<ip>
|
||||||
Allow JSON\-RPC connections from specified IP address
|
Allow JSON\-RPC connections from specified IP address
|
||||||
|
@ -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
|
\fBproxy=\fR\fI'127.0.0.1:9050'\fR
|
||||||
Connect via a socks4 proxy.
|
Connect via a socks4 proxy.
|
||||||
.TP
|
.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.
|
Use as many *addnode=* settings as you like to connect to specific peers.
|
||||||
.TP
|
.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.
|
Use as many *connect=* settings as you like to connect ONLY to specific peers.
|
||||||
.TP
|
.TP
|
||||||
\fRmaxconnections=\fR\fI'value'\fR
|
\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
|
\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).
|
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
|
.TP
|
||||||
\fBrpcport=\fR\fI'8332'\fR
|
\fBrpcport=\fR\fI'9332'\fR
|
||||||
Listen for RPC connections on this TCP port.
|
Listen for RPC connections on this TCP port.
|
||||||
.TP
|
.TP
|
||||||
\fBrpcconnect=\fR\fI'127.0.0.1'\fR
|
\fBrpcconnect=\fR\fI'127.0.0.1'\fR
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
rpcuser=someuser
|
rpcuser=someuser
|
||||||
rpcpassword=somepassword
|
rpcpassword=somepassword
|
||||||
host=127.0.0.1
|
host=127.0.0.1
|
||||||
port=8332
|
port=9332
|
||||||
|
|
||||||
# bootstrap.dat hashlist settings (linearize-hashes)
|
# bootstrap.dat hashlist settings (linearize-hashes)
|
||||||
max_height=313000
|
max_height=313000
|
||||||
|
@ -96,7 +96,7 @@ if __name__ == '__main__':
|
|||||||
if 'host' not in settings:
|
if 'host' not in settings:
|
||||||
settings['host'] = '127.0.0.1'
|
settings['host'] = '127.0.0.1'
|
||||||
if 'port' not in settings:
|
if 'port' not in settings:
|
||||||
settings['port'] = 8332
|
settings['port'] = 9332
|
||||||
if 'min_height' not in settings:
|
if 'min_height' not in settings:
|
||||||
settings['min_height'] = 0
|
settings['min_height'] = 0
|
||||||
if 'max_height' not in settings:
|
if 'max_height' not in settings:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
### Qos ###
|
### 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.
|
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.
|
||||||
|
@ -32,10 +32,10 @@ tc filter add dev ${IF} parent 1: protocol ip prio 2 handle 2 fw classid 1:11
|
|||||||
# ret=$?
|
# ret=$?
|
||||||
#done
|
#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)
|
# (defined by $LOCALNET)
|
||||||
# --set-mark marks packages matching these criteria with the number "2"
|
# --set-mark marks packages matching these criteria with the number "2"
|
||||||
# these packages are filtered by the tc filter with "handle 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}
|
# 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 --dport 9333 ! -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 --sport 9333 ! -d ${LOCALNET} -j MARK --set-mark 0x2
|
||||||
|
@ -23,7 +23,7 @@ import re
|
|||||||
import sys
|
import sys
|
||||||
import dns.resolver
|
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}\/)$")
|
PATTERN_AGENT = re.compile(r"^(\/Satoshi:0.8.6\/|\/Satoshi:0.9.(2|3)\/|\/Satoshi:0.10.\d{1,2}\/)$")
|
||||||
|
|
||||||
def parseline(line):
|
def parseline(line):
|
||||||
|
@ -67,7 +67,7 @@ def connect_JSON(config):
|
|||||||
testnet = config.get('testnet', '0')
|
testnet = config.get('testnet', '0')
|
||||||
testnet = (int(testnet) > 0) # 0/1 in config file, convert to True/False
|
testnet = (int(testnet) > 0) # 0/1 in config file, convert to True/False
|
||||||
if not 'rpcport' in config:
|
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'])
|
connect = "http://%s:%s@127.0.0.1:%s"%(config['rpcuser'], config['rpcpassword'], config['rpcport'])
|
||||||
try:
|
try:
|
||||||
result = ServiceProxy(connect)
|
result = ServiceProxy(connect)
|
||||||
|
@ -119,7 +119,7 @@ Threads
|
|||||||
|
|
||||||
- ThreadMapPort : Universal plug-and-play startup/shutdown
|
- 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.
|
- 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.
|
- 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).
|
- BitcoinMiner : Generates bitcoins (if wallet is enabled).
|
||||||
|
|
||||||
|
@ -42,11 +42,11 @@ reachable from the Tor network. Add these lines to your /etc/tor/torrc (or equiv
|
|||||||
config file):
|
config file):
|
||||||
|
|
||||||
HiddenServiceDir /var/lib/tor/bitcoin-service/
|
HiddenServiceDir /var/lib/tor/bitcoin-service/
|
||||||
HiddenServicePort 8333 127.0.0.1:8333
|
HiddenServicePort 9333 127.0.0.1:9333
|
||||||
HiddenServicePort 18333 127.0.0.1:18333
|
HiddenServicePort 19333 127.0.0.1:19333
|
||||||
|
|
||||||
The directory can be different of course, but (both) port numbers should be equal to
|
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
|
-externalip=X You can tell bitcoin about its publicly reachable address using
|
||||||
this option, and this can be a .onion address. Given the above
|
this option, and this can be a .onion address. Given the above
|
||||||
@ -76,7 +76,7 @@ specify:
|
|||||||
|
|
||||||
./bitcoind ... -discover
|
./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
|
If you only want to use Tor to reach onion addresses, but not use it as a proxy
|
||||||
for normal IPv4/IPv6 communication, use:
|
for normal IPv4/IPv6 communication, use:
|
||||||
|
@ -124,10 +124,10 @@ def main():
|
|||||||
g.write(' * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.\n')
|
g.write(' * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.\n')
|
||||||
g.write(' */\n')
|
g.write(' */\n')
|
||||||
with open(os.path.join(indir,'nodes_main.txt'),'r') as f:
|
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')
|
g.write('\n')
|
||||||
with open(os.path.join(indir,'nodes_test.txt'),'r') as f:
|
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')
|
g.write('#endif // BITCOIN_CHAINPARAMSSEEDS_H\n')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -17,7 +17,7 @@ static const CAmount COIN = 100000000;
|
|||||||
static const CAmount CENT = 1000000;
|
static const CAmount CENT = 1000000;
|
||||||
|
|
||||||
/** No amount larger than this (in satoshi) is valid */
|
/** 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); }
|
inline bool MoneyRange(const CAmount& nValue) { return (nValue >= 0 && nValue <= MAX_MONEY); }
|
||||||
|
|
||||||
/** Type-safe wrapper class to for fee rates
|
/** Type-safe wrapper class to for fee rates
|
||||||
|
@ -30,7 +30,7 @@ std::string HelpMessageCli()
|
|||||||
strUsage += " -regtest " + _("Enter regression test mode, which uses a special chain in which blocks can be "
|
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";
|
"solved instantly. This is intended for regression testing tools and app development.") + "\n";
|
||||||
strUsage += " -rpcconnect=<ip> " + strprintf(_("Send commands to node running on <ip> (default: %s)"), "127.0.0.1") + "\n";
|
strUsage += " -rpcconnect=<ip> " + strprintf(_("Send commands to node running on <ip> (default: %s)"), "127.0.0.1") + "\n";
|
||||||
strUsage += " -rpcport=<port> " + strprintf(_("Connect to JSON-RPC on <port> (default: %u or testnet: %u)"), 8332, 18332) + "\n";
|
strUsage += " -rpcport=<port> " + strprintf(_("Connect to JSON-RPC on <port> (default: %u or testnet: %u)"), 9332, 19332) + "\n";
|
||||||
strUsage += " -rpcwait " + _("Wait for RPC server to start") + "\n";
|
strUsage += " -rpcwait " + _("Wait for RPC server to start") + "\n";
|
||||||
strUsage += " -rpcuser=<user> " + _("Username for JSON-RPC connections") + "\n";
|
strUsage += " -rpcuser=<user> " + _("Username for JSON-RPC connections") + "\n";
|
||||||
strUsage += " -rpcpassword=<pw> " + _("Password for JSON-RPC connections") + "\n";
|
strUsage += " -rpcpassword=<pw> " + _("Password for JSON-RPC connections") + "\n";
|
||||||
|
@ -110,20 +110,20 @@ public:
|
|||||||
* The characters are rarely used upper ASCII, not valid as UTF-8, and produce
|
* The characters are rarely used upper ASCII, not valid as UTF-8, and produce
|
||||||
* a large 4-byte int at any alignment.
|
* a large 4-byte int at any alignment.
|
||||||
*/
|
*/
|
||||||
pchMessageStart[0] = 0xf9;
|
pchMessageStart[0] = 0xfb;
|
||||||
pchMessageStart[1] = 0xbe;
|
pchMessageStart[1] = 0xc0;
|
||||||
pchMessageStart[2] = 0xb4;
|
pchMessageStart[2] = 0xb6;
|
||||||
pchMessageStart[3] = 0xd9;
|
pchMessageStart[3] = 0xdb;
|
||||||
vAlertPubKey = ParseHex("04fc9702847840aaf195de8442ebecedf5b095cdbb9bc716bda9110971b28a49e0ead8564ff0db22209e0374782c093bb899692d524e9d6a6956e7c5ecbcd68284");
|
vAlertPubKey = ParseHex("040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9");
|
||||||
nDefaultPort = 8333;
|
nDefaultPort = 9333;
|
||||||
bnProofOfWorkLimit = ~uint256(0) >> 32;
|
bnProofOfWorkLimit = ~uint256(0) >> 20;
|
||||||
nSubsidyHalvingInterval = 210000;
|
nSubsidyHalvingInterval = 840000;
|
||||||
nEnforceBlockUpgradeMajority = 750;
|
nEnforceBlockUpgradeMajority = 750;
|
||||||
nRejectBlockOutdatedMajority = 950;
|
nRejectBlockOutdatedMajority = 950;
|
||||||
nToCheckBlockUpgradeMajority = 1000;
|
nToCheckBlockUpgradeMajority = 1000;
|
||||||
nMinerThreads = 0;
|
nMinerThreads = 0;
|
||||||
nTargetTimespan = 14 * 24 * 60 * 60; // two weeks
|
nTargetTimespan = 3.5 * 24 * 60 * 60; // 3.5 days
|
||||||
nTargetSpacing = 10 * 60;
|
nTargetSpacing = 2.5 * 60; // 2.5 minutes
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the genesis block. Note that the output of the genesis coinbase cannot
|
* Build the genesis block. Note that the output of the genesis coinbase cannot
|
||||||
@ -135,34 +135,34 @@ public:
|
|||||||
* CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B)
|
* CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B)
|
||||||
* vMerkleTree: 4a5e1e
|
* 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;
|
CMutableTransaction txNew;
|
||||||
txNew.vin.resize(1);
|
txNew.vin.resize(1);
|
||||||
txNew.vout.resize(1);
|
txNew.vout.resize(1);
|
||||||
txNew.vin[0].scriptSig = CScript() << 486604799 << CScriptNum(4) << vector<unsigned char>((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp));
|
txNew.vin[0].scriptSig = CScript() << 486604799 << CScriptNum(4) << vector<unsigned char>((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp));
|
||||||
txNew.vout[0].nValue = 50 * COIN;
|
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.vtx.push_back(txNew);
|
||||||
genesis.hashPrevBlock = 0;
|
genesis.hashPrevBlock = 0;
|
||||||
genesis.hashMerkleRoot = genesis.BuildMerkleTree();
|
genesis.hashMerkleRoot = genesis.BuildMerkleTree();
|
||||||
genesis.nVersion = 1;
|
genesis.nVersion = 1;
|
||||||
genesis.nTime = 1231006505;
|
genesis.nTime = 1317972665;
|
||||||
genesis.nBits = 0x1d00ffff;
|
genesis.nBits = 0x1e0ffff0;
|
||||||
genesis.nNonce = 2083236893;
|
genesis.nNonce = 2084524493;
|
||||||
|
|
||||||
hashGenesisBlock = genesis.GetHash();
|
hashGenesisBlock = genesis.GetHash();
|
||||||
assert(hashGenesisBlock == uint256("0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"));
|
assert(hashGenesisBlock == uint256("0x12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2"));
|
||||||
assert(genesis.hashMerkleRoot == uint256("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"));
|
assert(genesis.hashMerkleRoot == uint256("0x97ddfbbae6be97fd6cdf3e7ca13232a3afff2353e29badfab7f73011edd4ced9"));
|
||||||
|
|
||||||
vSeeds.push_back(CDNSSeedData("bitcoin.sipa.be", "seed.bitcoin.sipa.be"));
|
vSeeds.push_back(CDNSSeedData("litecointools.com", "dnsseed.litecointools.com"));
|
||||||
vSeeds.push_back(CDNSSeedData("bluematt.me", "dnsseed.bluematt.me"));
|
vSeeds.push_back(CDNSSeedData("litecoinpool.org", "dnsseed.litecoinpool.org"));
|
||||||
vSeeds.push_back(CDNSSeedData("dashjr.org", "dnsseed.bitcoin.dashjr.org"));
|
vSeeds.push_back(CDNSSeedData("xurious.com", "dnsseed.ltc.xurious.com"));
|
||||||
vSeeds.push_back(CDNSSeedData("bitcoinstats.com", "seed.bitcoinstats.com"));
|
vSeeds.push_back(CDNSSeedData("koin-project.com", "dnsseed.koin-project.com"));
|
||||||
vSeeds.push_back(CDNSSeedData("xf2.org", "bitseed.xf2.org"));
|
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[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_PUBLIC_KEY] = list_of(0x04)(0x88)(0xB2)(0x1E);
|
||||||
base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x88)(0xAD)(0xE4);
|
base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x88)(0xAD)(0xE4);
|
||||||
|
|
||||||
@ -193,31 +193,30 @@ public:
|
|||||||
CTestNetParams() {
|
CTestNetParams() {
|
||||||
networkID = CBaseChainParams::TESTNET;
|
networkID = CBaseChainParams::TESTNET;
|
||||||
strNetworkID = "test";
|
strNetworkID = "test";
|
||||||
pchMessageStart[0] = 0x0b;
|
pchMessageStart[0] = 0xfc;
|
||||||
pchMessageStart[1] = 0x11;
|
pchMessageStart[1] = 0xc1;
|
||||||
pchMessageStart[2] = 0x09;
|
pchMessageStart[2] = 0xb7;
|
||||||
pchMessageStart[3] = 0x07;
|
pchMessageStart[3] = 0xdc;
|
||||||
vAlertPubKey = ParseHex("04302390343f91cc401d56d68b123028bf52e5fca1939df127f63c6467cdf9c8e2c14b61104cf817d0b780da337893ecc4aaff1309e536162dabbdb45200ca2b0a");
|
vAlertPubKey = ParseHex("04302390343f91cc401d56d68b123028bf52e5fca1939df127f63c6467cdf9c8e2c14b61104cf817d0b780da337893ecc4aaff1309e536162dabbdb45200ca2b0a");
|
||||||
nDefaultPort = 18333;
|
nDefaultPort = 19333;
|
||||||
nEnforceBlockUpgradeMajority = 51;
|
nEnforceBlockUpgradeMajority = 51;
|
||||||
nRejectBlockOutdatedMajority = 75;
|
nRejectBlockOutdatedMajority = 75;
|
||||||
nToCheckBlockUpgradeMajority = 100;
|
nToCheckBlockUpgradeMajority = 100;
|
||||||
nMinerThreads = 0;
|
nMinerThreads = 0;
|
||||||
nTargetTimespan = 14 * 24 * 60 * 60; //! two weeks
|
nTargetTimespan = 3.5 * 24 * 60 * 60; // 3.5 days
|
||||||
nTargetSpacing = 10 * 60;
|
nTargetSpacing = 2.5 * 60; // 2.5 minutes
|
||||||
|
|
||||||
//! Modify the testnet genesis block so the timestamp is valid for a later start.
|
//! Modify the testnet genesis block so the timestamp is valid for a later start.
|
||||||
genesis.nTime = 1296688602;
|
genesis.nTime = 1317798646;
|
||||||
genesis.nNonce = 414098458;
|
genesis.nNonce = 385270584;
|
||||||
hashGenesisBlock = genesis.GetHash();
|
hashGenesisBlock = genesis.GetHash();
|
||||||
assert(hashGenesisBlock == uint256("0x000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943"));
|
assert(hashGenesisBlock == uint256("0xf5ae71e26c74beacc88382716aced69cddf3dffff24f384e1808905e0188f68f"));
|
||||||
|
|
||||||
vFixedSeeds.clear();
|
vFixedSeeds.clear();
|
||||||
vSeeds.clear();
|
vSeeds.clear();
|
||||||
vSeeds.push_back(CDNSSeedData("alexykot.me", "testnet-seed.alexykot.me"));
|
vSeeds.push_back(CDNSSeedData("litecointools.com", "testnet-seed.litecointools.com"));
|
||||||
vSeeds.push_back(CDNSSeedData("bitcoin.petertodd.org", "testnet-seed.bitcoin.petertodd.org"));
|
vSeeds.push_back(CDNSSeedData("xurious.com", "testnet-seed.ltc.xurious.com"));
|
||||||
vSeeds.push_back(CDNSSeedData("bluematt.me", "testnet-seed.bluematt.me"));
|
vSeeds.push_back(CDNSSeedData("wemine-testnet.com", "dnsseed.wemine-testnet.com"));
|
||||||
vSeeds.push_back(CDNSSeedData("bitcoin.schildbach.de", "testnet-seed.bitcoin.schildbach.de"));
|
|
||||||
|
|
||||||
base58Prefixes[PUBKEY_ADDRESS] = list_of(111);
|
base58Prefixes[PUBKEY_ADDRESS] = list_of(111);
|
||||||
base58Prefixes[SCRIPT_ADDRESS] = list_of(196);
|
base58Prefixes[SCRIPT_ADDRESS] = list_of(196);
|
||||||
@ -266,8 +265,8 @@ public:
|
|||||||
genesis.nBits = 0x207fffff;
|
genesis.nBits = 0x207fffff;
|
||||||
genesis.nNonce = 2;
|
genesis.nNonce = 2;
|
||||||
hashGenesisBlock = genesis.GetHash();
|
hashGenesisBlock = genesis.GetHash();
|
||||||
nDefaultPort = 18444;
|
nDefaultPort = 19444;
|
||||||
assert(hashGenesisBlock == uint256("0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"));
|
assert(hashGenesisBlock == uint256("0x9372df8b4c0144d2238b73d65ce81b5eb37ec416c23fc29307b89de4b0493cf8"));
|
||||||
|
|
||||||
vFixedSeeds.clear(); //! Regtest mode doesn't have any fixed seeds.
|
vFixedSeeds.clear(); //! Regtest mode doesn't have any fixed seeds.
|
||||||
vSeeds.clear(); //! Regtest mode doesn't have any DNS seeds.
|
vSeeds.clear(); //! Regtest mode doesn't have any DNS seeds.
|
||||||
|
@ -22,7 +22,7 @@ public:
|
|||||||
CBaseMainParams()
|
CBaseMainParams()
|
||||||
{
|
{
|
||||||
networkID = CBaseChainParams::MAIN;
|
networkID = CBaseChainParams::MAIN;
|
||||||
nRPCPort = 8332;
|
nRPCPort = 9332;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
static CBaseMainParams mainParams;
|
static CBaseMainParams mainParams;
|
||||||
@ -36,7 +36,7 @@ public:
|
|||||||
CBaseTestNetParams()
|
CBaseTestNetParams()
|
||||||
{
|
{
|
||||||
networkID = CBaseChainParams::TESTNET;
|
networkID = CBaseChainParams::TESTNET;
|
||||||
nRPCPort = 18332;
|
nRPCPort = 19332;
|
||||||
strDataDir = "testnet3";
|
strDataDir = "testnet3";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -283,7 +283,7 @@ std::string HelpMessage(HelpMessageMode mode)
|
|||||||
strUsage += " -onion=<ip:port> " + strprintf(_("Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)"), "-proxy") + "\n";
|
strUsage += " -onion=<ip:port> " + strprintf(_("Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)"), "-proxy") + "\n";
|
||||||
strUsage += " -onlynet=<net> " + _("Only connect to nodes in network <net> (ipv4, ipv6 or onion)") + "\n";
|
strUsage += " -onlynet=<net> " + _("Only connect to nodes in network <net> (ipv4, ipv6 or onion)") + "\n";
|
||||||
strUsage += " -permitbaremultisig " + strprintf(_("Relay non-P2SH multisig (default: %u)"), 1) + "\n";
|
strUsage += " -permitbaremultisig " + strprintf(_("Relay non-P2SH multisig (default: %u)"), 1) + "\n";
|
||||||
strUsage += " -port=<port> " + strprintf(_("Listen for connections on <port> (default: %u or testnet: %u)"), 8333, 18333) + "\n";
|
strUsage += " -port=<port> " + strprintf(_("Listen for connections on <port> (default: %u or testnet: %u)"), 9333, 19333) + "\n";
|
||||||
strUsage += " -proxy=<ip:port> " + _("Connect through SOCKS5 proxy") + "\n";
|
strUsage += " -proxy=<ip:port> " + _("Connect through SOCKS5 proxy") + "\n";
|
||||||
strUsage += " -seednode=<ip> " + _("Connect to a node to retrieve peer addresses, and disconnect") + "\n";
|
strUsage += " -seednode=<ip> " + _("Connect to a node to retrieve peer addresses, and disconnect") + "\n";
|
||||||
strUsage += " -timeout=<n> " + strprintf(_("Specify connection timeout in milliseconds (minimum: 1, default: %d)"), DEFAULT_CONNECT_TIMEOUT) + "\n";
|
strUsage += " -timeout=<n> " + 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=<addr> " + _("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 += " -rpcbind=<addr> " + _("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=<user> " + _("Username for JSON-RPC connections") + "\n";
|
strUsage += " -rpcuser=<user> " + _("Username for JSON-RPC connections") + "\n";
|
||||||
strUsage += " -rpcpassword=<pw> " + _("Password for JSON-RPC connections") + "\n";
|
strUsage += " -rpcpassword=<pw> " + _("Password for JSON-RPC connections") + "\n";
|
||||||
strUsage += " -rpcport=<port> " + strprintf(_("Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)"), 8332, 18332) + "\n";
|
strUsage += " -rpcport=<port> " + strprintf(_("Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)"), 9332, 19332) + "\n";
|
||||||
strUsage += " -rpcallowip=<ip> " + _("Allow JSON-RPC connections from specified source. Valid for <ip> 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 += " -rpcallowip=<ip> " + _("Allow JSON-RPC connections from specified source. Valid for <ip> 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=<n> " + strprintf(_("Set the number of threads to service RPC calls (default: %d)"), 4) + "\n";
|
strUsage += " -rpcthreads=<n> " + 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";
|
strUsage += " -rpckeepalive " + strprintf(_("RPC support for HTTP persistent connections (default: %d)"), 1) + "\n";
|
||||||
|
15
src/main.cpp
15
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.
|
// See BIP30 and http://r6.ca/blog/20120206T005236Z.html for more information.
|
||||||
// This logic is not necessary for memory pool transactions, as AcceptToMemoryPool
|
// This logic is not necessary for memory pool transactions, as AcceptToMemoryPool
|
||||||
// already refuses previously-known transaction ids entirely.
|
// already refuses previously-known transaction ids entirely.
|
||||||
// This rule was originally applied all blocks whose timestamp was after March 15, 2012, 0:00 UTC.
|
// 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 except the
|
// Now that the whole chain is irreversibly beyond that time it is applied to all blocks,
|
||||||
// two in the chain that violate it. This prevents exploiting the issue against nodes in their
|
// this prevents exploiting the issue against nodes in their initial block download.
|
||||||
// initial block download.
|
bool fEnforceBIP30 = true;
|
||||||
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")));
|
|
||||||
if (fEnforceBIP30) {
|
if (fEnforceBIP30) {
|
||||||
BOOST_FOREACH(const CTransaction& tx, block.vtx) {
|
BOOST_FOREACH(const CTransaction& tx, block.vtx) {
|
||||||
const CCoins* coins = view.AccessCoins(tx.GetHash());
|
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
|
// BIP16 didn't become active until Oct 1 2012
|
||||||
int64_t nBIP16SwitchTime = 1333238400;
|
int64_t nBIP16SwitchTime = 1349049600;
|
||||||
bool fStrictPayToScriptHash = (pindex->GetBlockTime() >= nBIP16SwitchTime);
|
bool fStrictPayToScriptHash = (pindex->GetBlockTime() >= nBIP16SwitchTime);
|
||||||
|
|
||||||
unsigned int flags = fStrictPayToScriptHash ? SCRIPT_VERIFY_P2SH : SCRIPT_VERIFY_NONE;
|
unsigned int flags = fStrictPayToScriptHash ? SCRIPT_VERIFY_P2SH : SCRIPT_VERIFY_NONE;
|
||||||
|
@ -174,8 +174,8 @@ Value addnode(const Array& params, bool fHelp)
|
|||||||
"1. \"node\" (string, required) The node (see getpeerinfo for nodes)\n"
|
"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"
|
"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"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("addnode", "\"192.168.0.6:8333\" \"onetry\"")
|
+ HelpExampleCli("addnode", "\"192.168.0.6:9333\" \"onetry\"")
|
||||||
+ HelpExampleRpc("addnode", "\"192.168.0.6:8333\", \"onetry\"")
|
+ HelpExampleRpc("addnode", "\"192.168.0.6:9333\", \"onetry\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
string strNode = params[0].get_str();
|
string strNode = params[0].get_str();
|
||||||
@ -228,7 +228,7 @@ Value getaddednodeinfo(const Array& params, bool fHelp)
|
|||||||
" \"connected\" : true|false, (boolean) If connected\n"
|
" \"connected\" : true|false, (boolean) If connected\n"
|
||||||
" \"addresses\" : [\n"
|
" \"addresses\" : [\n"
|
||||||
" {\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"
|
" \"connected\" : \"outbound\" (string) connection, inbound or outbound\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
|
@ -95,7 +95,7 @@ static inline int64_t roundint64(double d)
|
|||||||
CAmount AmountFromValue(const Value& value)
|
CAmount AmountFromValue(const Value& value)
|
||||||
{
|
{
|
||||||
double dAmount = value.get_real();
|
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");
|
throw JSONRPCError(RPC_TYPE_ERROR, "Invalid amount");
|
||||||
CAmount nAmount = roundint64(dAmount * COIN);
|
CAmount nAmount = roundint64(dAmount * COIN);
|
||||||
if (!MoneyRange(nAmount))
|
if (!MoneyRange(nAmount))
|
||||||
@ -1027,7 +1027,7 @@ std::string HelpExampleCli(string methodname, string args){
|
|||||||
|
|
||||||
std::string HelpExampleRpc(string methodname, string args){
|
std::string HelpExampleRpc(string methodname, string args){
|
||||||
return "> curl --user myusername --data-binary '{\"jsonrpc\": \"1.0\", \"id\":\"curltest\", "
|
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;
|
const CRPCTable tableRPC;
|
||||||
|
@ -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("[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", "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]", "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", "::ffff:127.0.0.1", -1));
|
||||||
BOOST_CHECK(TestSplitHost("[::ffff:127.0.0.1]:8333", "::ffff:127.0.0.1", 8333));
|
BOOST_CHECK(TestSplitHost("[::ffff:127.0.0.1]:9333", "::ffff:127.0.0.1", 9333));
|
||||||
BOOST_CHECK(TestSplitHost("[::]:8333", "::", 8333));
|
BOOST_CHECK(TestSplitHost("[::]:9333", "::", 9333));
|
||||||
BOOST_CHECK(TestSplitHost("::8333", "::8333", -1));
|
BOOST_CHECK(TestSplitHost("::9333", "::9333", -1));
|
||||||
BOOST_CHECK(TestSplitHost(":8333", "", 8333));
|
BOOST_CHECK(TestSplitHost(":9333", "", 9333));
|
||||||
BOOST_CHECK(TestSplitHost("[]:8333", "", 8333));
|
BOOST_CHECK(TestSplitHost("[]:9333", "", 9333));
|
||||||
BOOST_CHECK(TestSplitHost("", "", -1));
|
BOOST_CHECK(TestSplitHost("", "", -1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,10 +83,10 @@ bool static TestParse(string src, string canon)
|
|||||||
BOOST_AUTO_TEST_CASE(netbase_lookupnumeric)
|
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", "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("::ffff:127.0.0.1", "127.0.0.1:65535"));
|
||||||
BOOST_CHECK(TestParse("::", "[::]: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("[127.0.0.1]", "127.0.0.1:65535"));
|
||||||
BOOST_CHECK(TestParse(":::", ""));
|
BOOST_CHECK(TestParse(":::", ""));
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ class CAutoFile;
|
|||||||
|
|
||||||
inline double AllowFreeThreshold()
|
inline double AllowFreeThreshold()
|
||||||
{
|
{
|
||||||
return COIN * 144 / 250;
|
return COIN * 576 / 250;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool AllowFree(double dPriority)
|
inline bool AllowFree(double dPriority)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user