Bitcoin Forum
May 06, 2024, 11:15:33 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: API Getbalance  (Read 1880 times)
Djeizan (OP)
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
February 12, 2014, 12:07:21 AM
 #1

Boa Noite Pessoal

Como é de conhecimento de alguns aqui a API Getbalance tem um problema, quando temos varias carteiras numa mesma instância não é possível verificar o saldo das carteiras isoladamente através desta API.

Sabem se há alguma movimentação quanto a correção disto ?, se não, qual seria a solução de contorno ?


Obrigado

1715037333
Hero Member
*
Offline Offline

Posts: 1715037333

View Profile Personal Message (Offline)

Ignore
1715037333
Reply with quote  #2

1715037333
Report to moderator
1715037333
Hero Member
*
Offline Offline

Posts: 1715037333

View Profile Personal Message (Offline)

Ignore
1715037333
Reply with quote  #2

1715037333
Report to moderator
Remember that Bitcoin is still beta software. Don't put all of your money into BTC!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Djeizan (OP)
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
February 13, 2014, 04:22:19 PM
 #2

Ninguém ?  Huh
algorista
Hero Member
*****
Offline Offline

Activity: 882
Merit: 1000


It's got electrolytes


View Profile
February 13, 2014, 08:12:55 PM
 #3

Vc está falando da versão alternativa que tem a possibilidade de informar um nome diferente para o arquivo wallet.dat ?
Ou está falando do recurso "account" ?

Porque se for da api account então é algo problematico mesmo.


+---------=====[ Rm 12:21 ]=====---------+
Djeizan (OP)
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
February 14, 2014, 12:41:21 AM
 #4

Falo da API Getbalance mesmo, usando o mesmo Wallet.dat
a solução de contorno seria ter um wallet.dat para cada conta BTC e ai carregar o Bitcoind passando como parâmetro o Wallet da conta correspondente ?
algorista
Hero Member
*****
Offline Offline

Activity: 882
Merit: 1000


It's got electrolytes


View Profile
February 14, 2014, 01:21:21 AM
 #5

Falo da API Getbalance mesmo, usando o mesmo Wallet.dat
a solução de contorno seria ter um wallet.dat para cada conta BTC e ai carregar o Bitcoind passando como parâmetro o Wallet da conta correspondente ?

Até onde sei a versão oficial não permite fazer multiplas wallets, nem informar um outro arquivo na linha de comando.
Existe uma versão alternativa no git que faz isso, mas a quatro meses não havia previsão de entrar no core.

Realmente não sei como poderia ser feito.

O recurso "account" no RPC serve apenas para agrupar recebimentos, mas não serve para ver saldos.


+---------=====[ Rm 12:21 ]=====---------+
Djeizan (OP)
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
February 14, 2014, 01:39:58 AM
 #6


Até onde sei a versão oficial não permite fazer multiplas wallets, nem informar um outro arquivo na linha de comando.
Existe uma versão alternativa no git que faz isso, mas a quatro meses não havia previsão de entrar no core.

Realmente não sei como poderia ser feito.

O recurso "account" no RPC serve apenas para agrupar recebimentos, mas não serve para ver saldos.



Se usarmos o parâmetro -datadir podemos "emular" essa funcionalidade de usar vários wallets.dat, obviamente não é algo elegante a se fazer, mas funciona Smiley

O Curioso é que se você der um "getbalance" sem parâmetro algum ele retorna o seu saldo total direitinho, o problema é quando você dá um "getbalance" para cada conta que você tem cadastrada, neste caso ele retorna números que não fazem sentido algum.
algorista
Hero Member
*****
Offline Offline

Activity: 882
Merit: 1000


It's got electrolytes


View Profile
February 14, 2014, 02:02:29 AM
 #7


Até onde sei a versão oficial não permite fazer multiplas wallets, nem informar um outro arquivo na linha de comando.
Existe uma versão alternativa no git que faz isso, mas a quatro meses não havia previsão de entrar no core.

Realmente não sei como poderia ser feito.

O recurso "account" no RPC serve apenas para agrupar recebimentos, mas não serve para ver saldos.



Se usarmos o parâmetro -datadir podemos "emular" essa funcionalidade de usar vários wallets.dat, obviamente não é algo elegante a se fazer, mas funciona Smiley

O Curioso é que se você der um "getbalance" sem parâmetro algum ele retorna o seu saldo total direitinho, o problema é quando você dá um "getbalance" para cada conta que você tem cadastrada, neste caso ele retorna números que não fazem sentido algum.

O problema com o "account" é que quando vc envia BTC não consegue especificar um account, então ele tira saldo de qualquer um e de varios ao mesmo tempo, bagunçando o saldo.

A sua ideia de fazer varias pastas data vai criar um problema: copias do blockchain.
Com linux vc poderia fazer alguns links de uma pasta comum onde estaria o blockchain, mas vai ficando uma gambiarra difici de manter.

Talvez você queira experimentar com a versão alternativa do CodeShark comentada em https://github.com/bitcoin/bitcoin/pull/2124
Eu nunca usei então não sei avaliar a maturidade desse branch.


+---------=====[ Rm 12:21 ]=====---------+
Djeizan (OP)
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
February 14, 2014, 02:18:22 AM
 #8


O problema com o "account" é que quando vc envia BTC não consegue especificar um account, então ele tira saldo de qualquer um e de varios ao mesmo tempo, bagunçando o saldo.

A sua ideia de fazer varias pastas data vai criar um problema: copias do blockchain.
Com linux vc poderia fazer alguns links de uma pasta comum onde estaria o blockchain, mas vai ficando uma gambiarra difici de manter.

Talvez você queira experimentar com a versão alternativa do CodeShark comentada em https://github.com/bitcoin/bitcoin/pull/2124
Eu nunca usei então não sei avaliar a maturidade desse branch.


Mas por qual motivo se eu olhar o saldo total ele consegue calcular adequadamente ?, dependendo de como os saldos foram movimentados, se você consultar as contas separadamente ele retorna saldos que a somatória dá umas 3 vezes o saldo real, isto no meu ponto de vista é um Bug.

Sobre as varias pastas, tem razão, talvez então o mais adequado seja carregar sempre no mesmo diretório mas manipular o arquivo wallet.dat, sempre sobrescrevendo com o arquivo da carteira que você quer manipular.

Vou dar uma olhada nessa versão alternativa do CodeShark
person
Sr. Member
****
Offline Offline

Activity: 315
Merit: 250



View Profile WWW
February 14, 2014, 03:10:09 AM
 #9

Mas por qual motivo se eu olhar o saldo total ele consegue calcular adequadamente ?, dependendo de como os saldos foram movimentados, se você consultar as contas separadamente ele retorna saldos que a somatória dá umas 3 vezes o saldo real, isto no meu ponto de vista é um Bug.

Porque o bitcoind registra os inputs para cada account/address, mas consolida os outputs para a wallet como um todo.

Quando voce dá o getbalance (sem parametro), ele soma todos e dá o saldo correto...
Se você der um listaccounts, olhe que o primeiro 'account' é "" e deve ter um valor negativo no seu caso.
O getbalance de uma account especifica vai bater com o valor daquela account no listaccounts... mas a soma total não fecha se você nao subtrair a quantidade de BTC que saiu da account "".

É isso que você está perguntando?
Djeizan (OP)
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
February 14, 2014, 03:35:46 AM
 #10


Porque o bitcoind registra os inputs para cada account/address, mas consolida os outputs para a wallet como um todo.

Quando voce dá o getbalance (sem parametro), ele soma todos e dá o saldo correto...
Se você der um listaccounts, olhe que o primeiro 'account' é "" e deve ter um valor negativo no seu caso.
O getbalance de uma account especifica vai bater com o valor daquela account no listaccounts... mas a soma total não fecha se você nao subtrair a quantidade de BTC que saiu da account "".

É isso que você está perguntando?

Isso mesmo Person
person
Sr. Member
****
Offline Offline

Activity: 315
Merit: 250



View Profile WWW
February 14, 2014, 05:10:54 AM
 #11

Aproveitando a thread, importante falar que o bintcoin-qt não vai listar nessas funções (getbalance ou listaccounts) os endereços usados como Change/troco.
Por isso, o principal (único?) objetivo dessas funções é saber quanto 'entrou' nessas accounts.

Para saber a situação atual (saldo) você precisa usar o listunspent para recuperar todos os outputs ainda não usados.
A soma desses valores é para ser igual ao total da sua wallet.
A soma dos valores de uma "account" é para ser igual ao total de outputs não utilizados naquela account.
Todos os registros que não tem um "account" associado nesse comando são endereços de troco utilizados quando você nao usou a totalidade de um output anterior (de algum account) em uma transação.
algorista
Hero Member
*****
Offline Offline

Activity: 882
Merit: 1000


It's got electrolytes


View Profile
February 14, 2014, 05:29:04 AM
 #12

Aproveitando a thread, importante falar que o bintcoin-qt não vai listar nessas funções (getbalance ou listaccounts) os endereços usados como Change/troco.
Por isso, o principal (único?) objetivo dessas funções é saber quanto 'entrou' nessas accounts.

Para saber a situação atual (saldo) você precisa usar o listunspent para recuperar todos os outputs ainda não usados.
A soma desses valores é para ser igual ao total da sua wallet.
A soma dos valores de uma "account" é para ser igual ao total de outputs não utilizados naquela account.
Todos os registros que não tem um "account" associado nesse comando são endereços de troco utilizados quando você nao usou a totalidade de um output anterior (de algum account) em uma transação.

Explicou tudo !

+---------=====[ Rm 12:21 ]=====---------+
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!