Author

Topic: API Getbalance (Read 1878 times)

hero member
Activity: 882
Merit: 1000
It's got electrolytes
February 14, 2014, 01: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 !
sr. member
Activity: 315
Merit: 250
February 14, 2014, 01: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.
newbie
Activity: 52
Merit: 0
February 13, 2014, 11:35:46 PM
#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
sr. member
Activity: 315
Merit: 250
February 13, 2014, 11:10:09 PM
#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?
newbie
Activity: 52
Merit: 0
February 13, 2014, 10:18:22 PM
#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
hero member
Activity: 882
Merit: 1000
It's got electrolytes
February 13, 2014, 10:02:29 PM
#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.

newbie
Activity: 52
Merit: 0
February 13, 2014, 09:39:58 PM
#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.
hero member
Activity: 882
Merit: 1000
It's got electrolytes
February 13, 2014, 09:21:21 PM
#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.

newbie
Activity: 52
Merit: 0
February 13, 2014, 08:41:21 PM
#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 ?
hero member
Activity: 882
Merit: 1000
It's got electrolytes
February 13, 2014, 04: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.

newbie
Activity: 52
Merit: 0
February 13, 2014, 12:22:19 PM
#2
Ninguém ?  Huh
newbie
Activity: 52
Merit: 0
February 11, 2014, 08:07:21 PM
#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

Jump to: