Author

Topic: Como calcular um valor fixo para taxa de transaçao (usando Bitcoin core) (Read 137 times)

newbie
Activity: 1
Merit: 0
Pessoal, sou iniciante em bitcoin e queria uma ajuda. Sou programador e junto com o aprendizado estou tentando usar o bitcoin core para fazer a comunicação com o blockchain.

Minha principal duvida é: posso definir uma taxa fixa para uma transação?

Digamos que eu queira transferir 0.1 BTC para algum endereço, posso estipular EXATAMENTE a taxa que quero pagar por isso (independente se os mineradores vão executar ou não)? ex: 0.1 BTC (valor que quero enviar) + 0.00005 BTC (taxa que quero pagar, fixo) = 0.10005 BTC (total que vai sair da minha conta)

Eu fiz a instalação do bitcoin core e estou conectando na testnet. O aplicativo (em java) que estou fazendo usa a interface RPC que vem na instalação do bitcoin core.

Estou tentando chegar a uma taxa fixa chamando o metodo "settxfee" antes de chamar o "sendfrom", porém sem sucesso.

Vi que o "QT" (que vem na instalação) permite fazer algo proximo ao que eu quero, porém não consegui reproduzir.. olhando alguns foruns vi que o calculo é feito com base nos bytes da transação, mas pelo que entendi eu não consigo saber quantos bytes terá minha transação antes de enviar para a rede. Pelo que vi o QT faz esse calculo e consegue enviar para a blockchain exatamente a taxa que é calculado previamente (exatamente o que eu quero fazer). Segue exemplo:

Pelo QT fiz uma transação que antes de enviar para a rede me foi apresentado algumas informações e o valor da taxa:

Para: 2N4fUHMEhwxaHwXeZwytcVq6nb4f61Pepys
Débito: -0.00010000 BTC
Taxa da transação: -0.00004980 BTC (para 0.166kb)
Valor líquido: -0.00014980 BTC

** coloquei a taxa personalizada em 0.00030000 por kilobyte

Eu entendi que a taxa foi resultado da multiplicação da taxa personalizada que escolhi com os 0.166kb da transação, mas esse 0.166kb foi escolhido aleatoriamente pelo QT?
Como foi que o QT (parametros RPC) enviou para a rede essa taxa de 0.00004980 BTC? (tentei usar "settxfee" no meu programa mas nunca é enviado para a rede o valor que informo)

Consultando a transação feita no prorpio QT ele mostra o seguinte:

Status: 1/não confirmado, transmitido aravés de 8 nós
Data: 18/06/2018 02:22
Para: conta-teste 2N4fUHMEhwxaHwXeZwytcVq6nb4f61Pepys
Débito: -0.00010000 BTC
Taxa da transação: -0.00004980 BTC
Valor líquido: -0.00014980 BTC
ID da transação: 5c18c0b60818acc0771a866144749dc896f4b43168467bd7c7e3b30968364a0b
Tamanho tota da transação: 247 bytes
Index da saída: 0

Quando consulto a transação no blockcypher (https://live.blockcypher.com/btc-testnet/tx/5c18c0b60818acc0771a866144749dc896f4b43168467bd7c7e3b30968364a0b/ ) vejo que a taxa foi corretamente (0.00004980 BTC) mas a transação tem 138 bytes. Ou seja: o QT calculou 0.166kb antes de enviar a transação, apos criar a transação o QT me mostra 247 bytes, porém no blockcypher diz que a transação tem 138 bytes.

Desculpem o texto confuso. No final das contas eu quero mesmo é saber se posso definir de forma fixa a taxa de transação e caso SIM como faço o calculo e envio usando o bitcoin core (via parametros RPC).

Obrigado!!

Aplicativos usados:

Bitcoin core  v0.16.1
QT 5.7.1
ambiente windows
Jump to: