Merge tag '0.1.10'
This commit is contained in:
commit
7756c9d443
5 changed files with 52 additions and 24 deletions
|
|
@ -29,6 +29,12 @@ Start the witness back up
|
||||||
|
|
||||||
./programs/witness_node/witness_node
|
./programs/witness_node/witness_node
|
||||||
|
|
||||||
|
Upgrading A Peerplays Node
|
||||||
|
-----------------
|
||||||
|
To minimize downtime of your peerplays node when upgrading, one upgrade idea was written in this steemit article: https://steemit.com/peerplays/@joseph/peerplays-update-setting-a-backup-witness-server-switching-servers
|
||||||
|
|
||||||
|
Wallet Setup
|
||||||
|
-----------------
|
||||||
Then, in a separate terminal window, start the command-line wallet `cli_wallet`:
|
Then, in a separate terminal window, start the command-line wallet `cli_wallet`:
|
||||||
|
|
||||||
./programs/cli_wallet/cli_wallet
|
./programs/cli_wallet/cli_wallet
|
||||||
|
|
@ -38,7 +44,6 @@ To set your initial password to 'password' use:
|
||||||
>>> set_password password
|
>>> set_password password
|
||||||
>>> unlock password
|
>>> unlock password
|
||||||
|
|
||||||
|
|
||||||
A list of CLI wallet commands is available
|
A list of CLI wallet commands is available
|
||||||
[here](https://github.com/PBSA/peerplays/blob/master/libraries/wallet/include/graphene/wallet/wallet.hpp).
|
[here](https://github.com/PBSA/peerplays/blob/master/libraries/wallet/include/graphene/wallet/wallet.hpp).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,19 +167,36 @@ namespace detail {
|
||||||
"ppy.esteem.ws:7777", // good-karma
|
"ppy.esteem.ws:7777", // good-karma
|
||||||
"peerplays.bitcoiner.me:9777", // bitcoiner
|
"peerplays.bitcoiner.me:9777", // bitcoiner
|
||||||
"peerplays.roelandp.nl:9777", // roelandp
|
"peerplays.roelandp.nl:9777", // roelandp
|
||||||
"78.46.95.153:7777", // theprophet0
|
|
||||||
"ppyseed.bacchist.me:42420", // bacchist-witness
|
"ppyseed.bacchist.me:42420", // bacchist-witness
|
||||||
"5.9.18.213:18828", // pfunk
|
"5.9.18.213:18828", // pfunk
|
||||||
"31.171.244.121:7777", // taconator
|
"31.171.244.121:7777", // taconator
|
||||||
"seed.peerplaysdb.com:9777", // jesta
|
"seed.peerplaysdb.com:9777", // jesta
|
||||||
"ppy-seed.xeldal.com:19777", // xeldal
|
"ppy-seed.xeldal.com:19777", // xeldal
|
||||||
"peerplays-seed.altcap.io:61388", // winner.winner.chicken.dinner
|
"seed.ppy.altcap.io:61388", // winner.winner.chicken.dinner
|
||||||
"seed.peerplaysnodes.com:9777", // wackou
|
"seed.peerplaysnodes.com:9777", // wackou
|
||||||
"peerplays-seed.privex.io:7777", // someguy123/privex
|
"peerplays-seed.privex.io:7777", // someguy123/privex
|
||||||
"51.15.78.16:9777", // agoric.systems
|
"51.15.78.16:9777", // agoric.systems
|
||||||
"212.71.253.163:9777", // xtar
|
"212.71.253.163:9777", // xtar
|
||||||
"51.15.35.96:9777", // lafona
|
"51.15.35.96:9777", // lafona
|
||||||
"anyx.ca:9777" // anyx
|
"anyx.ca:9777", // anyx
|
||||||
|
"82.223.108.91:7777", // hiltos-witness
|
||||||
|
"seed.ppy.nuevax.com:19777", // nuevax
|
||||||
|
"peerplays.butler.net:9777", // billbutler-witness
|
||||||
|
"peerplays.bitcoiner.me:9777", // bitcoiner
|
||||||
|
"ppyseed.bacchist.me:42420", // bacchist-witness
|
||||||
|
"peerplays.bhuz.info:9777", // bhuz
|
||||||
|
"node.peerblock.trade:9777", // bitcoinsig
|
||||||
|
"peerplays.crypto.fans:9777", // sc-steemit
|
||||||
|
"54.38.193.20:9777", // royal-flush
|
||||||
|
"ppy001.bts-nodes.net:7777", // baxters-sports-witness
|
||||||
|
"ppy002.bts-nodes.net:7777", // baxters-sports-witness
|
||||||
|
"ppy003.bts-nodes.net:7777", // baxters-sports-witness
|
||||||
|
"ppy004.bts-nodes.net:7777", // baxters-sports-witness
|
||||||
|
"ppy.proxyhosts.info:7777", // baxters-sports-witness
|
||||||
|
"ppyseed.spacemx.tech:9777", // spacecrypt-witness
|
||||||
|
"peerplaysblockchain.net:9777", // houdini-witness
|
||||||
|
"54.37.235.164:7777", // melea-trust
|
||||||
|
"peerplays-seed.lukestokes.info:7777" // lukestokes-witness
|
||||||
};
|
};
|
||||||
for( const string& endpoint_string : seeds )
|
for( const string& endpoint_string : seeds )
|
||||||
{
|
{
|
||||||
|
|
@ -525,6 +542,7 @@ namespace detail {
|
||||||
{ try {
|
{ try {
|
||||||
|
|
||||||
auto latency = graphene::time::now() - blk_msg.block.timestamp;
|
auto latency = graphene::time::now() - blk_msg.block.timestamp;
|
||||||
|
FC_ASSERT( (latency.count()/1000) > -5000, "Rejecting block with timestamp in the future" );
|
||||||
if (!sync_mode || blk_msg.block.block_num() % 10000 == 0)
|
if (!sync_mode || blk_msg.block.block_num() % 10000 == 0)
|
||||||
{
|
{
|
||||||
const auto& witness = blk_msg.block.witness(*_chain_db);
|
const auto& witness = blk_msg.block.witness(*_chain_db);
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@ void verify_account_votes( const database& db, const account_options& options )
|
||||||
"Voted for more witnesses than currently allowed (${c})", ("c", chain_params.maximum_witness_count) );
|
"Voted for more witnesses than currently allowed (${c})", ("c", chain_params.maximum_witness_count) );
|
||||||
FC_ASSERT( options.num_committee <= chain_params.maximum_committee_count,
|
FC_ASSERT( options.num_committee <= chain_params.maximum_committee_count,
|
||||||
"Voted for more committee members than currently allowed (${c})", ("c", chain_params.maximum_committee_count) );
|
"Voted for more committee members than currently allowed (${c})", ("c", chain_params.maximum_committee_count) );
|
||||||
|
FC_ASSERT( db.find_object(options.voting_account), "Invalid proxy account specified." );
|
||||||
|
|
||||||
uint32_t max_vote_id = gpo.next_available_vote_id;
|
uint32_t max_vote_id = gpo.next_available_vote_id;
|
||||||
bool has_worker_votes = false;
|
bool has_worker_votes = false;
|
||||||
|
|
@ -108,7 +109,6 @@ void_result account_create_evaluator::do_evaluate( const account_create_operatio
|
||||||
FC_ASSERT( !op.extensions.value.buyback_options.valid() );
|
FC_ASSERT( !op.extensions.value.buyback_options.valid() );
|
||||||
}
|
}
|
||||||
|
|
||||||
FC_ASSERT( d.find_object(op.options.voting_account), "Invalid proxy account specified." );
|
|
||||||
FC_ASSERT( fee_paying_account->is_lifetime_member(), "Only Lifetime members may register an account." );
|
FC_ASSERT( fee_paying_account->is_lifetime_member(), "Only Lifetime members may register an account." );
|
||||||
FC_ASSERT( op.referrer(d).is_member(d.head_block_time()), "The referrer must be either a lifetime or annual subscriber." );
|
FC_ASSERT( op.referrer(d).is_member(d.head_block_time()), "The referrer must be either a lifetime or annual subscriber." );
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1244,10 +1244,15 @@ void database::perform_chain_maintenance(const signed_block& next_block, const g
|
||||||
// There may be a difference between the account whose stake is voting and the one specifying opinions.
|
// There may be a difference between the account whose stake is voting and the one specifying opinions.
|
||||||
// Usually they're the same, but if the stake account has specified a voting_account, that account is the one
|
// Usually they're the same, but if the stake account has specified a voting_account, that account is the one
|
||||||
// specifying the opinions.
|
// specifying the opinions.
|
||||||
const account_object& opinion_account =
|
const account_object* opinion_account_ptr =
|
||||||
(stake_account.options.voting_account ==
|
(stake_account.options.voting_account ==
|
||||||
GRAPHENE_PROXY_TO_SELF_ACCOUNT)? stake_account
|
GRAPHENE_PROXY_TO_SELF_ACCOUNT)? &stake_account
|
||||||
: d.get(stake_account.options.voting_account);
|
: d.find(stake_account.options.voting_account);
|
||||||
|
|
||||||
|
if( !opinion_account_ptr ) // skip non-exist account
|
||||||
|
return;
|
||||||
|
|
||||||
|
const account_object& opinion_account = *opinion_account_ptr;
|
||||||
|
|
||||||
const auto& stats = stake_account.statistics(d);
|
const auto& stats = stake_account.statistics(d);
|
||||||
uint64_t voting_stake = stats.total_core_in_orders.value
|
uint64_t voting_stake = stats.total_core_in_orders.value
|
||||||
|
|
|
||||||
|
|
@ -184,8 +184,8 @@ void database::clear_expired_transactions()
|
||||||
//Transactions must have expired by at least two forking windows in order to be removed.
|
//Transactions must have expired by at least two forking windows in order to be removed.
|
||||||
auto& transaction_idx = static_cast<transaction_index&>(get_mutable_index(implementation_ids, impl_transaction_object_type));
|
auto& transaction_idx = static_cast<transaction_index&>(get_mutable_index(implementation_ids, impl_transaction_object_type));
|
||||||
const auto& dedupe_index = transaction_idx.indices().get<by_expiration>();
|
const auto& dedupe_index = transaction_idx.indices().get<by_expiration>();
|
||||||
while( (!dedupe_index.empty()) && (head_block_time() > dedupe_index.rbegin()->trx.expiration) )
|
while( (!dedupe_index.empty()) && (head_block_time() > dedupe_index.begin()->trx.expiration) )
|
||||||
transaction_idx.remove(*dedupe_index.rbegin());
|
transaction_idx.remove(*dedupe_index.begin());
|
||||||
} FC_CAPTURE_AND_RETHROW() }
|
} FC_CAPTURE_AND_RETHROW() }
|
||||||
|
|
||||||
void database::clear_expired_proposals()
|
void database::clear_expired_proposals()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue