Title: Como calcular um valor fixo para taxa de transaçao (usando Bitcoin core) Post by: welmau on June 18, 2018, 05:45:50 AM 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 |