Re: [bitcoin-dev] bitcoin-java, a new bitcoin library
Thanks for posting; I have been looking for such a library to get into the technical details. Do you plan a slack or IRC for collaboration? Best, Mohamed From: bitcoin-dev On Behalf Of Humberto Marcolino via bitcoin-dev Sent: Tuesday, October 5, 2021 08:24 AM To: bitcoin-dev@lists.linuxfoundation.org Subject: [bitcoin-dev] bitcoin-java, a new bitcoin library Hello, My name is Humberto, owner of the repository https://github.com/bitcoin-education/bitcoin-java. I'm posting to divulge a new open-source Bitcoin library written in Java, with support for taproot single key transactions: https://github.com/bitcoin-education/bitcoin-java. My main motivation to build this library was for educational purposes. Also, I was missing a lean bitcoin library written in Java, since I think bitcoinj too feature-heavy. I don't intend to include features that allow communication with nodes nor any online features in it. I think it is ideal for developers that want to build a wallet in Java. Feedback, PRs, and issues are welcome and appreciated. Website of the project, where I plan to post more examples using it: https://www.bitcoineducation.site/ Best regards, Humberto ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
[bitcoin-dev] Question- must every mining rig attempt every block?
For purposes of conserving energy, couldn't each mining rig have some non-gameable attribute which would be used to calculate if a block would be accepted by that rig? Don't the mining rigs have to be able to identify themselves to the network somehow, in order to claim their block reward? Could their bitcoin network ID be used as a non-gameable attribute? Essentially a green light / red light system. In order for a block to be accepted by the network, it must have all attributes of a successful block today, and it must also have come from a rig that had a green light. Perhaps hash some data from the last successful block, along with the miners non-gameable attribute, and if it's below a certain number set by algorithm, the miner gets a green light to race to produce a valid block. Nathan Alexander Arlington, TX ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Question- must every mining rig attempt every block?
Good morning Nathan, > For purposes of conserving energy, couldn't each mining rig have some > non-gameable attribute which would be used to calculate if a block would > be accepted by that rig? > > Don't the mining rigs have to be able to identify themselves to the > network somehow, in order to claim their block reward? Could their > bitcoin network ID be used as a non-gameable attribute? They are "identified" by the address that is on the coinbase output. There is nothing preventing a *single* miner having *multiple* addresses, in much the same way that a *single* HODLer is not prevented from having *multiple* addresses. > > Essentially a green light / red light system. In order for a block to be > accepted by the network, it must have all attributes of a successful > block today, and it must also have come from a rig that had a green light. Since a miner can have multiple addresses, the miners can game this by simply grinding on *which* of their multiple addresses gets the green light. That grinding is no more different in quality than grinding the block hash. Thus, you just move proof-of-work elsewhere and make it harder to see, not reduce it. Worse, *identifying* miners reduces the important anonymity property of mining. With non-anonymous mining, it is much easier for states to co-opt large mines, since they are identifiable, and states can target larger miners. Thus, miners ***must*** use multiple addresses as a simple protection against state co-option. > > Perhaps hash some data from the last successful block, along with the > miners non-gameable attribute, and if it's below a certain number set by > algorithm, the miner gets a green light to race to produce a valid block. The power consumption of proof-of-work ***is not a problem***, it is instead the solution against state co-option. If you reduce the power consumption, it becomes easier for states to simply purchase and co-opt mines and attack the system, since it is easier to muster the power consumption and outright 51% Bitcoin. The power consumption is an important security parameter, ***even more important than raw hashes-per-second***, since hashes-per-second will inevitably rise anyway even with constant power consumption. It should always remain economically infeasible to 51% Bitcoin, otherwise Bitcoin will ***die*** and all your HODLings in it. Regards, ZmnSCPxj ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] Question- must every mining rig attempt every block?
Hi Nathan, That's a fair question, but note that we've already had a bunch of "green mining" related posts a few months ago, so I suspect you'll be able to find many criticisms to this idea in the following thread: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-May/018937.html It also looks like you'll be able to find some related answers on Bitcoin Stack Exchange: https://bitcoin.stackexchange.com/questions/106308/decreasing-energy-consumption-of-bitcoins-pow-with-paired-mining-rounds And generally speaking these types of discussions don't end up being very fruitful for bitcoin-dev, because these are the types of changes that are unlikely to ever be seriously considered for Bitcoin. Cheers, Ruben On Tue, Oct 5, 2021 at 4:09 PM Nathan T Alexander via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > For purposes of conserving energy, couldn't each mining rig have some > non-gameable attribute which would be used to calculate if a block would > be accepted by that rig? > > Don't the mining rigs have to be able to identify themselves to the > network somehow, in order to claim their block reward? Could their > bitcoin network ID be used as a non-gameable attribute? > > Essentially a green light / red light system. In order for a block to be > accepted by the network, it must have all attributes of a successful > block today, and it must also have come from a rig that had a green light. > > Perhaps hash some data from the last successful block, along with the > miners non-gameable attribute, and if it's below a certain number set by > algorithm, the miner gets a green light to race to produce a valid block. > > Nathan Alexander > > Arlington, TX > > ___ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Re: [bitcoin-dev] bitcoin-java, a new bitcoin library
Ciao Humberto! building a new library is a great way to learn about bitcoin, you should also take a look at the Bitcoin Dev Kit project (https://github.com/bitcoindevkit) where we're building support for Kotlin/Java (and Android) and eventually Swift and iOS. You don't need to know Rust (though it's a great language to learn! ) and we'd love to have new folks join us as we develop the language bindings which is also a great way to learn the primitives for on-chain Bitcoin. Steve On Mon, Oct 4, 2021, at 5:23 PM, Humberto Marcolino via bitcoin-dev wrote: > Hello, > > My name is Humberto, owner of the repository > https://github.com/bitcoin-education/bitcoin-java. > > I'm posting to divulge a new open-source Bitcoin library written in Java, > with support for taproot single key transactions: > https://github.com/bitcoin-education/bitcoin-java. > > My main motivation to build this library was for educational purposes. Also, > I was missing a lean bitcoin library written in Java, since I think bitcoinj > too feature-heavy. I don't intend to include features that allow > communication with nodes nor any online features in it. I think it is ideal > for developers that want to build a wallet in Java. > > Feedback, PRs, and issues are welcome and appreciated. > > Website of the project, where I plan to post more examples using it: > https://www.bitcoineducation.site/ > > Best regards, > > Humberto > ___ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > ___ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev