Compare commits

..

45 commits

Author SHA1 Message Date
Milos Milosevic
4647044ab3 Fix issue with wrong image name 2023-07-11 12:15:56 +02:00
Milos Milosevic
a73ba73aaf Add force to delete 2023-07-11 12:15:56 +02:00
Milos Milosevic
b6b5893979 Move shutting down to after_script 2023-07-11 12:15:56 +02:00
Milos Milosevic
c5953c542c Again without 2023-07-11 12:15:56 +02:00
Milos Milosevic
1e84ce51de Call docker properly 2023-07-11 12:15:56 +02:00
Milos Milosevic
902f76a093 Do not remove too many images 2023-07-11 12:15:56 +02:00
Milos Milosevic
24dbcc628e Rerun without docker-compose build 2023-07-11 12:15:56 +02:00
Vlad Dobromyslov
e24de4f199 Merge branch 'feature/552-son-eth-hf-time' into 'develop'
#552 - NEW HARDFORK TIME FOR SON ETH

See merge request PBSA/peerplays!237
2023-07-06 15:32:52 +00:00
Vlad Dobromyslov
15ebbfe6bb #552 - NEW HARDFORK TIME FOR SON ETH 2023-07-06 15:38:20 +03:00
Vlad Dobromyslov
917e09a80b Merge branch 'bug/551-son-account-operations-count' into 'develop'
#551 - fix is_son_dereg_valid funtion

See merge request PBSA/peerplays!236
2023-07-03 19:50:59 +00:00
Vlad Dobromyslov
646b421308 #551 - fix is_son_dereg_valid funtion 2023-07-03 18:37:54 +03:00
Vlad Dobromyslov
dd2a531364 Merge branch 'bug/548-balance-discrepancies-blind-transfer' into 'develop'
#548 - Fix blind_transfer before and after ETH HARDFORK

See merge request PBSA/peerplays!234
2023-07-01 11:51:01 +00:00
Vlad Dobromyslov
ae0a895daf #548 - Fix blind_transfer before and after ETH HARDFORK 2023-07-01 11:51:01 +00:00
Vlad Dobromyslov
8530228189 Merge branch 'feature/remove-image-e2e-tests' into 'develop'
Remove unneeded docker images at the end of the pipeline

See merge request PBSA/peerplays!233
2023-06-30 18:33:26 +00:00
Milo M
85fb3fee67 Remove unneeded docker images at the end of the pipeline 2023-06-30 18:33:26 +00:00
Vlad Dobromyslov
2c9fd332d4 Merge branch 'bug/548-balance-discrepancies' into 'develop'
Fix balance discrepancies

See merge request PBSA/peerplays!231
2023-06-19 09:58:13 +00:00
Vlad Dobromyslov
fb01043e55 Fix balance discrepancies 2023-06-19 09:58:12 +00:00
Vlad Dobromyslov
a1186372d2 Merge branch 'bug/550-son_schedule_object' into 'develop'
#550 - update schedule for sidechain type

See merge request PBSA/peerplays!229
2023-06-08 05:28:30 +00:00
Vlad Dobromyslov
3a51723e51 #550 - update schedule for sidechain type 2023-06-08 05:28:30 +00:00
Vlad Dobromyslov
f23244cde0 Merge branch 'bug/549-testnet-sync' into 'develop'
Fix #549 testnet sync

See merge request PBSA/peerplays!228
2023-06-05 09:24:05 +00:00
Vlad Dobromyslov
fee7bc99fa Fix #549 testnet sync 2023-06-05 09:24:04 +00:00
Vlad Dobromyslov
6cf31b1075 Add develop branch to build target 2023-06-05 12:22:54 +03:00
Vlad Dobromyslov
97eaf4575a Merge branch 'beatrice' into develop
Conflicts are resolved:
	.gitlab-ci.yml
2023-06-05 09:32:07 +03:00
Vlad Dobromyslov
d367c308b8 Merge branch 'feature/python-e2e-tests-jm' into 'develop'
Python e2e test

See merge request PBSA/peerplays!221
2023-05-15 10:53:07 +00:00
Milos Milosevic
838a9820f1 Right order of the steps 2023-04-26 13:22:19 +02:00
Vlad Dobromyslov
3e1f38d972 Merge branch 'bug/530-eth-deposit_address' into 'develop'
#530 - fix ETH deposit_address

See merge request PBSA/peerplays!222
2023-04-21 07:15:16 +00:00
Vlad Dobromyslov
dfd3dfae09 #530 - fix ETH deposit_address 2023-04-21 09:21:17 +03:00
Milos Milosevic
1f72b4fbd6 Remove symbolic-ref call 2023-04-21 00:35:02 +02:00
Milos Milosevic
3ee2439d5b Revert changes on Dockerfile 2023-04-20 14:15:30 +02:00
Milos Milosevic
cfecfb457b Pull propper image 2023-04-19 00:23:54 +02:00
Milos Milosevic
25bbacaa88 Add docker prune before run 2023-04-18 16:17:48 +02:00
Milos Milosevic
0175a7d0ec Try the full flow 2023-04-18 13:27:00 +02:00
Milos Milosevic
fd492ca196 Run tests in the end 2023-04-18 12:53:12 +02:00
Milos Milosevic
2a6c917e4c Try through python 2023-04-18 11:14:20 +02:00
Milos Milosevic
6fe15f27b0 Try with rename 2023-04-18 09:47:10 +02:00
Milos Milosevic
d2374aeed9 Try via command line again 2023-04-18 08:13:20 +02:00
Milos Milosevic
6f792db52d Passing locally 2023-04-18 00:22:26 +02:00
Milos Milosevic
1b61016693 docker login still needed 2023-04-17 22:45:05 +02:00
Milos Milosevic
0f375777c2 Quick exec 2023-04-17 22:37:26 +02:00
Milos Milosevic
a2ce65e1ef Add pull image 2023-04-17 08:52:41 +02:00
Milos Milosevic
432876a677 Try different approach 2023-04-16 23:49:51 +02:00
Vlad Dobromyslov
948e7dd5e4 Merge branch 'bug/524-eth-mainnet-tr' into 'develop'
Bug/524-eth-mainnet-tr

See merge request PBSA/peerplays!219
2023-03-29 09:38:55 +00:00
Vlad Dobromyslov
b21f9c4282 Bug/524-eth-mainnet-tr 2023-03-29 09:38:54 +00:00
Vlad Dobromyslov
1586531e13 Merge branch 'bug/develop-518-last_voting_time' into 'develop'
#518 - update update_vote_time when voting for SON

See merge request PBSA/peerplays!217
2023-03-17 09:31:24 +00:00
Vlad Dobromyslov
8e0e20eb6f #518 - update update_vote_time when voting for SON 2023-03-17 11:33:33 +03:00
24 changed files with 300 additions and 331 deletions

View file

@ -156,16 +156,14 @@ test-e2e:
- docker pull $IMAGE - docker pull $IMAGE
- docker tag $IMAGE peerplays-base:latest - docker tag $IMAGE peerplays-base:latest
- docker image ls -a - docker image ls -a
- docker-compose build
- python3 main.py --start all - python3 main.py --start all
- docker ps -a - docker ps -a
- python3 -m pytest test_btc_init_state.py test_hive_inital_state.py test_pp_inital_state.py - python3 -m pytest test_btc_init_state.py test_hive_inital_state.py test_pp_inital_state.py
- python3 main.py --stop
- deactivate - deactivate
- docker ps -a - docker ps -a
after_script: after_script:
- docker rmi $(docker images -a | grep -v 'hive-for-peerplays\|ethereum-for-peerplays\|bitcoin-for-peerplays\|ubuntu-for-peerplays' | awk '{print $3}') - cd peerplays-utils/peerplays-qa-environment/e2e-tests
- docker-compose down
- docker rmi -f $(docker images -a | grep -v 'hive-for-peerplays\|ethereum-for-peerplays\|bitcoin-for-peerplays\|ubuntu-for-peerplays\|peerplays-base\|IMAGE' | awk '{print $3}')
tags: tags:
- python-tests - python-tests
when:
manual

View file

@ -134,8 +134,11 @@ RUN \
libsodium-dev libsodium-dev
RUN \ RUN \
git clone --branch version3.8.0 --depth 1 https://gitlab.com/PBSA/peerplays-1.0/libbitcoin-explorer.git && \ git clone https://github.com/libbitcoin/libbitcoin-build.git && \
cd libbitcoin-explorer && \ cd libbitcoin-build && \
git reset --hard 92c215fc1ffa272bab4d485d369d0306db52d69d && \
./generate3.sh && \
cd ../libbitcoin-explorer && \
./install.sh && \ ./install.sh && \
ldconfig && \ ldconfig && \
rm -rf /home/peerplays/src/* rm -rf /home/peerplays/src/*

View file

@ -134,8 +134,11 @@ RUN \
libsodium-dev libsodium-dev
RUN \ RUN \
git clone --branch version3.8.0 --depth 1 https://gitlab.com/PBSA/peerplays-1.0/libbitcoin-explorer.git && \ git clone https://github.com/libbitcoin/libbitcoin-build.git && \
cd libbitcoin-explorer && \ cd libbitcoin-build && \
git reset --hard 92c215fc1ffa272bab4d485d369d0306db52d69d && \
./generate3.sh && \
cd ../libbitcoin-explorer && \
./install.sh && \ ./install.sh && \
ldconfig && \ ldconfig && \
rm -rf /home/peerplays/src/* rm -rf /home/peerplays/src/*

View file

@ -77,8 +77,11 @@ sudo ldconfig
libbitcoin-explorer setup: libbitcoin-explorer setup:
``` ```
git clone --branch version3.8.0 --depth 1 https://gitlab.com/PBSA/peerplays-1.0/libbitcoin-explorer.git git clone https://github.com/libbitcoin/libbitcoin-build.git
cd libbitcoin-explorer cd libbitcoin-build
git reset --hard 92c215fc1ffa272bab4d485d369d0306db52d69d
./generate3.sh
cd ../libbitcoin-explorer
sudo ./install.sh sudo ./install.sh
sudo ldconfig sudo ldconfig
``` ```

View file

@ -2197,7 +2197,7 @@ vector<variant> database_api_impl::lookup_vote_ids(const vector<vote_id_type> &v
case vote_id_type::committee: { case vote_id_type::committee: {
auto itr = committee_idx.find(id); auto itr = committee_idx.find(id);
if (itr != committee_idx.end()) if (itr != committee_idx.end())
result.emplace_back(variant(*itr, 2)); // Depth of committee_member_object is 1, add 1 to be safe result.emplace_back(variant(*itr, 1));
else else
result.emplace_back(variant()); result.emplace_back(variant());
break; break;
@ -2205,7 +2205,7 @@ vector<variant> database_api_impl::lookup_vote_ids(const vector<vote_id_type> &v
case vote_id_type::witness: { case vote_id_type::witness: {
auto itr = witness_idx.find(id); auto itr = witness_idx.find(id);
if (itr != witness_idx.end()) if (itr != witness_idx.end())
result.emplace_back(variant(*itr, 2)); // Depth of witness_object is 1, add 1 here to be safe result.emplace_back(variant(*itr, 1));
else else
result.emplace_back(variant()); result.emplace_back(variant());
break; break;
@ -2213,15 +2213,11 @@ vector<variant> database_api_impl::lookup_vote_ids(const vector<vote_id_type> &v
case vote_id_type::worker: { case vote_id_type::worker: {
auto itr = for_worker_idx.find(id); auto itr = for_worker_idx.find(id);
if (itr != for_worker_idx.end()) { if (itr != for_worker_idx.end()) {
result.emplace_back(variant(*itr, 4)); // Depth of worker_object is 3, add 1 here to be safe. result.emplace_back(variant(*itr, 1));
// If we want to extract the balance object inside,
// need to increase this value
} else { } else {
auto itr = against_worker_idx.find(id); auto itr = against_worker_idx.find(id);
if (itr != against_worker_idx.end()) { if (itr != against_worker_idx.end()) {
result.emplace_back(variant(*itr, 4)); // Depth of worker_object is 3, add 1 here to be safe. result.emplace_back(variant(*itr, 1));
// If we want to extract the balance object inside,
// need to increase this value
} else { } else {
result.emplace_back(variant()); result.emplace_back(variant());
} }

View file

@ -386,14 +386,23 @@ vector<uint64_t> database::get_random_numbers(uint64_t minimum, uint64_t maximum
bool database::is_asset_creation_allowed(const string &symbol) bool database::is_asset_creation_allowed(const string &symbol)
{ {
time_point_sec now = head_block_time();
std::unordered_set<std::string> post_son_hf_symbols = {"ETH", "USDT", "BNB", "ADA", "DOGE", "XRP", "USDC", "DOT", "UNI", "BUSD", "BCH", "LTC", "SOL", "LINK", "MATIC", "THETA",
"WBTC", "XLM", "ICP", "DAI", "VET", "ETC", "TRX", "FIL", "XMR", "EGR", "EOS", "SHIB", "AAVE", "CRO", "ALGO", "AMP", "BTCB",
"BSV", "KLAY", "CAKE", "FTT", "LEO", "XTZ", "TFUEL", "MIOTA", "LUNA", "NEO", "ATOM", "MKR", "FEI", "WBNB", "UST", "AVAX",
"STEEM", "HIVE", "HBD", "SBD", "BTS"};
if (symbol == "BTC") if (symbol == "BTC")
{ {
if (head_block_time() < HARDFORK_SON_TIME) if (now < HARDFORK_SON_TIME)
return false;
}
if (post_son_hf_symbols.find(symbol) != post_son_hf_symbols.end())
{
if (now >= HARDFORK_SON_TIME)
return false; return false;
} }
return true; return true;
} }
} } }
}

View file

@ -170,7 +170,6 @@ struct worker_pay_visitor
worker.pay_worker(pay, db); worker.pay_worker(pay, db);
} }
}; };
void database::update_worker_votes() void database::update_worker_votes()
{ {
auto& idx = get_index_type<worker_index>(); auto& idx = get_index_type<worker_index>();
@ -186,28 +185,6 @@ void database::update_worker_votes()
} }
} }
void database::hotfix_2024()
{
if (head_block_time() >= HARDFORK_HOTFIX_2024_TIME)
{
if (get_chain_id().str() == "6b6b5f0ce7a36d323768e534f3edb41c6d6332a541a95725b98e28d140850134")
{
const auto& vb_idx = get_index_type<vesting_balance_index>().indices().get<by_id>();
auto vbo = vb_idx.find(vesting_balance_id_type(388));
if (vbo != vb_idx.end())
{
if (vbo->owner == account_id_type(14786))
{
modify(*vbo, [&]( vesting_balance_object& _vbo)
{
_vbo.owner = account_id_type(0);
});
}
}
}
}
}
void database::pay_sons_before_hf_ethereum() void database::pay_sons_before_hf_ethereum()
{ {
const auto now = head_block_time(); const auto now = head_block_time();
@ -2306,7 +2283,7 @@ void database::perform_son_tasks()
// Add vote_ids for HIVE and ETHEREUM to all existing SONs // Add vote_ids for HIVE and ETHEREUM to all existing SONs
const auto &all_sons = get_index_type<son_index>().indices().get<by_id>(); const auto &all_sons = get_index_type<son_index>().indices().get<by_id>();
for (const son_object &son : all_sons) { for (const son_object &son : all_sons) {
const auto existing_vote_id_bitcoin = son.get_bitcoin_vote_id(); vote_id_type existing_vote_id_bitcoin;
vote_id_type new_vote_id_hive; vote_id_type new_vote_id_hive;
vote_id_type new_vote_id_eth; vote_id_type new_vote_id_eth;
@ -2323,7 +2300,7 @@ void database::perform_son_tasks()
// Duplicate all votes from bitcoin to hive // Duplicate all votes from bitcoin to hive
const auto &all_accounts = get_index_type<account_index>().indices().get<by_id>(); const auto &all_accounts = get_index_type<account_index>().indices().get<by_id>();
for (const auto &account : all_accounts) { for (const auto &account : all_accounts) {
if (existing_vote_id_bitcoin.valid() && account.options.votes.count(*existing_vote_id_bitcoin) != 0) { if (account.options.votes.count(existing_vote_id_bitcoin) != 0) {
modify(account, [new_vote_id_hive](account_object &a) { modify(account, [new_vote_id_hive](account_object &a) {
a.options.votes.insert(new_vote_id_hive); a.options.votes.insert(new_vote_id_hive);
}); });
@ -2533,7 +2510,6 @@ void database::perform_chain_maintenance(const signed_block& next_block, const g
update_active_committee_members(); update_active_committee_members();
update_active_sons(); update_active_sons();
update_worker_votes(); update_worker_votes();
hotfix_2024();
const dynamic_global_property_object& dgpo = get_dynamic_global_properties(); const dynamic_global_property_object& dgpo = get_dynamic_global_properties();

View file

@ -1,7 +0,0 @@
#ifndef HARDFORK_HOTFIX_2024_TIME
#ifdef BUILD_PEERPLAYS_TESTNET
#define HARDFORK_HOTFIX_2024_TIME (fc::time_point_sec::from_iso_string("2023-12-20T00:00:00"))
#else
#define HARDFORK_HOTFIX_2024_TIME (fc::time_point_sec::from_iso_string("2023-12-20T00:00:00"))
#endif
#endif

View file

@ -2,6 +2,6 @@
#ifdef BUILD_PEERPLAYS_TESTNET #ifdef BUILD_PEERPLAYS_TESTNET
#define HARDFORK_SON_FOR_ETHEREUM_TIME (fc::time_point_sec::from_iso_string("2023-07-17T12:00:00")) #define HARDFORK_SON_FOR_ETHEREUM_TIME (fc::time_point_sec::from_iso_string("2023-07-17T12:00:00"))
#else #else
#define HARDFORK_SON_FOR_ETHEREUM_TIME (fc::time_point_sec::from_iso_string("2023-10-24T12:00:00")) #define HARDFORK_SON_FOR_ETHEREUM_TIME (fc::time_point_sec::from_iso_string("2023-07-31T12:00:00"))
#endif #endif
#endif #endif

View file

@ -158,7 +158,7 @@
#define GRAPHENE_RECENTLY_MISSED_COUNT_INCREMENT 4 #define GRAPHENE_RECENTLY_MISSED_COUNT_INCREMENT 4
#define GRAPHENE_RECENTLY_MISSED_COUNT_DECREMENT 3 #define GRAPHENE_RECENTLY_MISSED_COUNT_DECREMENT 3
#define GRAPHENE_CURRENT_DB_VERSION "PPY2.5" #define GRAPHENE_CURRENT_DB_VERSION "PPY2.4"
#define GRAPHENE_IRREVERSIBLE_THRESHOLD (70 * GRAPHENE_1_PERCENT) #define GRAPHENE_IRREVERSIBLE_THRESHOLD (70 * GRAPHENE_1_PERCENT)

View file

@ -594,7 +594,6 @@ namespace graphene { namespace chain {
const flat_map<sidechain_type, vector<son_sidechain_info> >& new_active_sons ); const flat_map<sidechain_type, vector<son_sidechain_info> >& new_active_sons );
void update_son_wallet( const flat_map<sidechain_type, vector<son_sidechain_info> >& new_active_sons ); void update_son_wallet( const flat_map<sidechain_type, vector<son_sidechain_info> >& new_active_sons );
void update_worker_votes(); void update_worker_votes();
void hotfix_2024();
public: public:
double calculate_vesting_factor(const account_object& stake_account); double calculate_vesting_factor(const account_object& stake_account);

View file

@ -100,7 +100,6 @@ private:
uint16_t retries_threshold = 150; uint16_t retries_threshold = 150;
bool first_block_skipped; bool first_block_skipped;
bool son_processing_enabled;
void on_applied_block(const signed_block &b); void on_applied_block(const signed_block &b);
}; };
@ -136,8 +135,7 @@ peerplays_sidechain_plugin_impl::peerplays_sidechain_plugin_impl(peerplays_sidec
} }
return net_handlers; return net_handlers;
}()), }()),
first_block_skipped(false), first_block_skipped(false) {
son_processing_enabled(false) {
} }
peerplays_sidechain_plugin_impl::~peerplays_sidechain_plugin_impl() { peerplays_sidechain_plugin_impl::~peerplays_sidechain_plugin_impl() {
@ -873,16 +871,7 @@ void peerplays_sidechain_plugin_impl::settle_sidechain_transactions(sidechain_ty
void peerplays_sidechain_plugin_impl::on_applied_block(const signed_block &b) { void peerplays_sidechain_plugin_impl::on_applied_block(const signed_block &b) {
if (first_block_skipped) { if (first_block_skipped) {
if (son_processing_enabled) {
schedule_son_processing(); schedule_son_processing();
} else {
const fc::time_point now_fine = fc::time_point::now();
const fc::time_point_sec now = now_fine + fc::microseconds(500000);
if (plugin.database().get_slot_time(1) >= now) {
son_processing_enabled = true;
schedule_son_processing();
}
}
} else { } else {
first_block_skipped = true; first_block_skipped = true;
} }

View file

@ -680,7 +680,7 @@ void sidechain_net_handler::on_applied_block(const signed_block &b) {
const bool is_tracked_asset = const bool is_tracked_asset =
((sidechain == sidechain_type::bitcoin) && (transfer_op.amount.asset_id == gpo.parameters.btc_asset())) || ((sidechain == sidechain_type::bitcoin) && (transfer_op.amount.asset_id == gpo.parameters.btc_asset())) ||
((sidechain == sidechain_type::ethereum) && (transfer_op.amount.asset_id == gpo.parameters.eth_asset())) || ((sidechain == sidechain_type::ethereum) && (transfer_op.amount.asset_id == gpo.parameters.eth_asset())) ||
((sidechain == sidechain_type::ethereum) && (transfer_op.amount.asset_id != gpo.parameters.btc_asset()) && (transfer_op.amount.asset_id != gpo.parameters.hbd_asset()) && (transfer_op.amount.asset_id != gpo.parameters.hive_asset()) && (transfer_op.amount.asset_id != asset_id_type())) || ((sidechain == sidechain_type::ethereum) && (transfer_op.amount.asset_id != gpo.parameters.btc_asset()) && (transfer_op.amount.asset_id != gpo.parameters.hbd_asset()) && (transfer_op.amount.asset_id != gpo.parameters.hive_asset())) ||
((sidechain == sidechain_type::hive) && (transfer_op.amount.asset_id == gpo.parameters.hbd_asset())) || ((sidechain == sidechain_type::hive) && (transfer_op.amount.asset_id == gpo.parameters.hbd_asset())) ||
((sidechain == sidechain_type::hive) && (transfer_op.amount.asset_id == gpo.parameters.hive_asset())); ((sidechain == sidechain_type::hive) && (transfer_op.amount.asset_id == gpo.parameters.hive_asset()));

View file

@ -40,7 +40,7 @@ public:
{ {
fixture_.init_nathan(); fixture_.init_nathan();
fixture_.generate_blocks(HARDFORK_SON_FOR_ETHEREUM_TIME); fixture_.generate_blocks(HARDFORK_SON_FOR_ETHEREUM_TIME);
fixture_.generate_maintenance_block(); fixture_.generate_block();
} }
void create_son(const std::string& account_name, const std::string& son_url, void create_son(const std::string& account_name, const std::string& son_url,