Commit 858d4db4 authored by Eriksson Monteiro's avatar Eriksson Monteiro

update millix node: improve wallet sync

parent ecfd2524
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<br> <br>
<a href="#"><img src="https://github.com/millix/millix-wallet/blob/master/app/icon.png?raw=true" alt="millix node" width="200"></a> <a href="#"><img src="https://github.com/millix/millix-wallet/blob/master/app/icon.png?raw=true" alt="millix node" width="200"></a>
<br> <br>
millix node <small>v1.17.2</small> millix node <small>v1.17.3</small>
<br> <br>
</h1> </h1>
......
...@@ -779,8 +779,8 @@ export const NETWORK_SHORT_TIME_WAIT_MAX = 1500; ...@@ -779,8 +779,8 @@ export const NETWORK_SHORT_TIME_WAIT_MAX = 1500;
export const DATABASE_ENGINE = 'sqlite'; export const DATABASE_ENGINE = 'sqlite';
export const DATABASE_CONNECTION = {}; export const DATABASE_CONNECTION = {};
export const MILLIX_CIRCULATION = 9e15; export const MILLIX_CIRCULATION = 9e15;
export const NODE_MILLIX_BUILD_DATE = 1649203461; export const NODE_MILLIX_BUILD_DATE = 1649251316;
export const NODE_MILLIX_VERSION = '1.17.2-tangled'; export const NODE_MILLIX_VERSION = '1.17.3-tangled';
export const DATA_BASE_DIR_MAIN_NETWORK = './millix-tangled'; export const DATA_BASE_DIR_MAIN_NETWORK = './millix-tangled';
export const DATA_BASE_DIR_TEST_NETWORK = './millix-tangled'; export const DATA_BASE_DIR_TEST_NETWORK = './millix-tangled';
let DATA_BASE_DIR = MODE_TEST_NETWORK ? DATA_BASE_DIR_TEST_NETWORK : DATA_BASE_DIR_MAIN_NETWORK; let DATA_BASE_DIR = MODE_TEST_NETWORK ? DATA_BASE_DIR_TEST_NETWORK : DATA_BASE_DIR_MAIN_NETWORK;
......
...@@ -10,6 +10,7 @@ import database from '../../database/database'; ...@@ -10,6 +10,7 @@ import database from '../../database/database';
import wallet from './wallet'; import wallet from './wallet';
import async from 'async'; import async from 'async';
import _ from 'lodash'; import _ from 'lodash';
import eventBus from '../event-bus';
export class WalletSync { export class WalletSync {
...@@ -151,8 +152,9 @@ export class WalletSync { ...@@ -151,8 +152,9 @@ export class WalletSync {
const transactionOutputToQueue = []; const transactionOutputToQueue = [];
async.eachSeries(transactionOutputToSyncList, (transactionOutput, callback) => { async.eachSeries(transactionOutputToSyncList, (transactionOutput, callback) => {
peer.transactionOutputSpendRequest(transactionOutput.transaction_id, transactionOutput.output_position) peer.transactionOutputSpendRequest(transactionOutput.transaction_id, transactionOutput.output_position)
.then(_ => callback()) .then(data => _.each(data.transaction_list, transaction => eventBus.emit('transaction_new', transaction)))
.catch(() => { .catch(_ => _)
.then(() => {
transactionOutputToQueue.push({ transactionOutputToQueue.push({
transaction_output_id: transactionOutput.transaction_output_id transaction_output_id: transactionOutput.transaction_output_id
}); });
......
...@@ -13,6 +13,7 @@ import ntp from '../ntp'; ...@@ -13,6 +13,7 @@ import ntp from '../ntp';
import console from '../console'; import console from '../console';
import task from '../task'; import task from '../task';
import cache from '../cache'; import cache from '../cache';
import walletSync from './wallet-sync';
export class WalletTransactionConsensus { export class WalletTransactionConsensus {
...@@ -1001,6 +1002,7 @@ export class WalletTransactionConsensus { ...@@ -1001,6 +1002,7 @@ export class WalletTransactionConsensus {
cache.removeCacheItem('validation', transactionID); cache.removeCacheItem('validation', transactionID);
consensusData.active = false; consensusData.active = false;
walletSync.syncTransactionSpendingOutputs(transaction, config.MODE_NODE_SYNC_FULL);
console.log('[wallet-transaction-consensus] transaction object no present for tx id:', transactionID); console.log('[wallet-transaction-consensus] transaction object no present for tx id:', transactionID);
return database.applyShards(shardID => { return database.applyShards(shardID => {
const transactionRepository = database.getRepository('transaction', shardID); const transactionRepository = database.getRepository('transaction', shardID);
......
...@@ -964,9 +964,7 @@ class Wallet { ...@@ -964,9 +964,7 @@ class Wallet {
walletSync.clearTransactionSync(transaction.transaction_id); walletSync.clearTransactionSync(transaction.transaction_id);
walletSync.syncTransactionSpendingOutputs(transaction, config.MODE_NODE_SYNC_FULL); walletSync.syncTransactionSpendingOutputs(transaction, config.MODE_NODE_SYNC_FULL);
if (config.MODE_NODE_SYNC_FULL) { if (config.MODE_NODE_SYNC_FULL || hasKeyIdentifier) {
this.transactionSpendRequest(transaction.transaction_id, syncPriority).then(_ => _).catch(_ => _);
if (transaction.transaction_id !== genesisConfig.genesis_transaction) { if (transaction.transaction_id !== genesisConfig.genesis_transaction) {
_.each(transaction.transaction_input_list, inputTransaction => { _.each(transaction.transaction_input_list, inputTransaction => {
if (!this._transactionReceivedFromNetwork[inputTransaction.output_transaction_id]) { if (!this._transactionReceivedFromNetwork[inputTransaction.output_transaction_id]) {
...@@ -995,7 +993,10 @@ class Wallet { ...@@ -995,7 +993,10 @@ class Wallet {
} }
}); });
} }
}
if (config.MODE_NODE_SYNC_FULL) {
this.transactionSpendRequest(transaction.transaction_id, syncPriority).then(_ => _).catch(_ => _);
_.each(transaction.transaction_parent_list, parentTransactionID => { _.each(transaction.transaction_parent_list, parentTransactionID => {
if (!this._transactionReceivedFromNetwork[parentTransactionID]) { if (!this._transactionReceivedFromNetwork[parentTransactionID]) {
database.firstShards((shardID) => { database.firstShards((shardID) => {
...@@ -1208,7 +1209,10 @@ class Wallet { ...@@ -1208,7 +1209,10 @@ class Wallet {
.then(hasTransaction => hasTransaction ? resolve(hasTransaction) : reject())); .then(hasTransaction => hasTransaction ? resolve(hasTransaction) : reject()));
}).then(hasTransaction => { }).then(hasTransaction => {
if (!hasTransaction) { if (!hasTransaction) {
peer.transactionSyncRequest(transactionID, {priority: 1}) peer.transactionSyncRequest(transactionID, {
priority : 1,
dispatch_request: true
})
.then(_ => _) .then(_ => _)
.catch(_ => _); .catch(_ => _);
} }
......
...@@ -125,7 +125,7 @@ db.initialize() ...@@ -125,7 +125,7 @@ db.initialize()
}); });
} }
}); });
//millix v1.17.2-tangled //millix v1.17.3-tangled
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment