free-lsd (OP)
Newbie
Offline
Activity: 10
Merit: 0
|
|
December 21, 2015, 11:00:36 AM |
|
Только что перевел с одного своего аккаунта на другой сумму, которая была больше той что на аккаунте, теперь на исходном акке баланс минусовый. Как можно от это исправить, потому что рушится вся система по мониторингу за аккаунтами. У меня получается в кошельке каждый аккаунт привязан к пользователю, потом через определенное время я с аккаунтов пользователя перевожу деньги на основной акк. А сейчас получается полная неразбериха, на основном аккаунте больше чем на самом деле, на пользовательском в минус ушло. Как это починить и почему это вообще произошло, если на целевом аккаунте была конкретная подтвержденная сумма, почему move позволил перевести больше чем есть?
|
|
|
|
|
|
There are several different types of Bitcoin clients. The most secure are full nodes like Bitcoin Core, which will follow the rules of the network no matter what miners do. Even if every miner decided to create 1000 bitcoins per block, full nodes would stick to the rules and reject those blocks.
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
diks
Legendary
Offline
Activity: 2632
Merit: 1450
|
|
December 21, 2015, 11:22:31 AM |
|
спрашивая совета и прося помощи учтите, что другие пользователи не имеют понятия о Ваших аккаунтах, суммах, транзакциях, конкретных действиях, ответов системы и т.д.
ссылки, скрины, сайты, подробное описание и последовательность Ваших действий
|
|
|
|
bogdan2323
|
|
December 21, 2015, 11:40:40 AM |
|
спрашивая совета и прося помощи учтите, что другие пользователи не имеют понятия о Ваших аккаунтах, суммах, транзакциях, конкретных действиях, ответов системы и т.д.
ссылки, скрины, сайты, подробное описание и последовательность Ваших действий
Я подумал что речь идет о двойной трате, а оказывается люди в бухгалтерию играют. Присоединяюсь к пожеланиям - только скрины могут помочь получить ответ на свой вопрос
|
|
|
|
negeroy
Legendary
Offline
Activity: 1148
Merit: 1051
|
|
December 21, 2015, 12:19:19 PM |
|
а move проверяет ли баланс перед отправкой rpcwallet.cpp if (nAmount > nBalance) + throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Account has insufficient funds"); string strFrom = AccountFromValue(params[0]); string strTo = AccountFromValue(params[1]); int64 nAmount = AmountFromValue(params[2]); + int nMinDepth = 1; if (params.size() > 3) - // unused parameter, used to be nMinDepth, keep type-checking it though - (void)params[3].get_int(); + nMinDepth = params[3].get_int(); string strComment; if (params.size() > 4) strComment = params[4].get_str(); @@ -574,6 +574,10 @@ Value movecmd(const Array& params, bool fHelp) if (!walletdb.TxnBegin()) throw JSONRPCError(RPC_DATABASE_ERROR, "database error"); + int64 nBalance = GetAccountBalance(strFrom, nMinDepth); + if (nAmount > nBalance) + throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Account has insufficient funds"); + int64 nNow = GetAdjustedTime(); // Debit
|
|
|
|
midvidyk
Legendary
Offline
Activity: 1330
Merit: 1012
|
|
December 21, 2015, 07:19:50 PM |
|
У меня на блокчейн.инфо тоже был отрицательный баланс. Но тогда я игрался с публичными привкеями.
|
|
|
|
free-lsd (OP)
Newbie
Offline
Activity: 10
Merit: 0
|
|
December 23, 2015, 09:39:12 PM |
|
а move проверяет ли баланс перед отправкой rpcwallet.cpp if (nAmount > nBalance) + throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Account has insufficient funds"); string strFrom = AccountFromValue(params[0]); string strTo = AccountFromValue(params[1]); int64 nAmount = AmountFromValue(params[2]); + int nMinDepth = 1; if (params.size() > 3) - // unused parameter, used to be nMinDepth, keep type-checking it though - (void)params[3].get_int(); + nMinDepth = params[3].get_int(); string strComment; if (params.size() > 4) strComment = params[4].get_str(); @@ -574,6 +574,10 @@ Value movecmd(const Array& params, bool fHelp) if (!walletdb.TxnBegin()) throw JSONRPCError(RPC_DATABASE_ERROR, "database error"); + int64 nBalance = GetAccountBalance(strFrom, nMinDepth); + if (nAmount > nBalance) + throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Account has insufficient funds"); + int64 nNow = GetAdjustedTime(); // Debit
У меня почему-то никаких исключений не кидается, перевод всегда осуществляется.
|
|
|
|
free-lsd (OP)
Newbie
Offline
Activity: 10
Merit: 0
|
|
December 23, 2015, 09:50:03 PM |
|
спрашивая совета и прося помощи учтите, что другие пользователи не имеют понятия о Ваших аккаунтах, суммах, транзакциях, конкретных действиях, ответов системы и т.д.
ссылки, скрины, сайты, подробное описание и последовательность Ваших действий
Я попытался с одного тестового аккаунта перевести баланс на другой с помощью move, но указал баланс больший чем есть, при этом мне ни ошибок ни предупреждений не выдало, перевод осуществился, теперь состояние аккаунтов выглядит так: https://i.imgur.com/1QVqrXO.png
|
|
|
|
negeroy
Legendary
Offline
Activity: 1148
Merit: 1051
|
|
December 23, 2015, 10:00:01 PM |
|
а move проверяет ли баланс перед отправкой rpcwallet.cpp if (nAmount > nBalance) + throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Account has insufficient funds"); string strFrom = AccountFromValue(params[0]); string strTo = AccountFromValue(params[1]); int64 nAmount = AmountFromValue(params[2]); + int nMinDepth = 1; if (params.size() > 3) - // unused parameter, used to be nMinDepth, keep type-checking it though - (void)params[3].get_int(); + nMinDepth = params[3].get_int(); string strComment; if (params.size() > 4) strComment = params[4].get_str(); @@ -574,6 +574,10 @@ Value movecmd(const Array& params, bool fHelp) if (!walletdb.TxnBegin()) throw JSONRPCError(RPC_DATABASE_ERROR, "database error"); + int64 nBalance = GetAccountBalance(strFrom, nMinDepth); + if (nAmount > nBalance) + throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Account has insufficient funds"); + int64 nNow = GetAdjustedTime(); // Debit
У меня почему-то никаких исключений не кидается, перевод всегда осуществляется. вот здесь глянь https://github.com/bitcoin/bitcoin/pull/2703https://github.com/paraboul/bitcoin/commit/388ef407ca3722d050f5e16f00dfac00a2000156этот вопрос поднимался и было решение проблемы, только внесли ли разрабы изменения хз
|
|
|
|
free-lsd (OP)
Newbie
Offline
Activity: 10
Merit: 0
|
|
December 24, 2015, 07:37:12 AM |
|
Я читал но решения там не увидел, и коммит видимо не добавили в основную ветку, да.
|
|
|
|
|