SPV bitcoind? (was: Introducing BitcoinKit.framework) [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2013-07-18T23:03:59+00:00


Summary:

In an email conversation from 2013, Wendell expresses his willingness to write specifications and supervise/audit/advise for a few hours a week regarding a potential project. Peter Todd responds by saying he has more good ideas than he has time to implement but is considering it. He mentions that he accepted funds from John Dillon to implement replace-by-fee, but the scope of the project turned out to be bigger than originally thought. Todd suggests reviewing his git commit track record before offering anything.In an email exchange, Peter Todd discusses the possibility of implementing a new idea with Wendell Davis, who suggests that Todd may want to consider bringing in someone else to handle the programming if he lacks confidence in his skills. Davis offers Eric Lombrozo as a potential candidate for the job. Todd responds by stating that he has more good ideas than time to implement them, but admits that he is considering the project. He also mentions that he accepted funds from John Dillon to implement replace-by-fee, and suggests that anyone interested in offering bribes should look at his git commit track record. Todd notes that he has been more of an academic than a programmer.In an email exchange from 2013, Wendell proposed an idea to Peter Todd for a desktop client that would only use a fraction of available disk space. Peter responded that he has a lot of good ideas and he is considering this one. However, he joked that he would accept bribes but also explained that he had previously accepted funds from John Dillon to implement replace-by-fee. Peter suggested looking at his git commit track record before making any offers. The email also included a digital signature as an attachment.The behavior of SPV clients is considered abusive since they utilize maximum node resources with minimum cost. This, however, is not entirely true as compromised web servers are also a common occurrence and the asymmetry in node resources is biased against devices such as phones and tablets that have limited memory bandwidth. A good anti-DoS strategy should prioritize existing users over new users and old coins over new coins. In case Bitcoin suddenly becomes too popular, there must be enough nodes to support all users and some rules can be followed, such as disconnecting recent connections to long-lived connections to avoid running out of TCP sockets and preferring processing new blocks to serving old parts of the chain when disk seeks run out. It is suggested that instead of talking about DoS, we should discuss what happens if Bitcoin suddenly gets too popular and how to handle it.In an email thread discussing a more sophisticated approach to answering challenges, Peter Todd suggests using a version of H() that has a computational trap-door and is significantly faster running time than H(). He asks Adam what can be used for H', and suggests creating a set of expensive-to-compute data associated with the node's identity that can be stored once by the node but requires clients to store one set for every unique node they connect to. This can also be used as a proof-of-work to make creating lots of nodes expensive, and can incorporate blockchain data. This method can also make MITM attacks on encrypted P2P connections expensive without any form of authentication.Michael has informed Bazyli about a fresh build based on git (Xcode) and has faced an issue where the paillier and account tests were missing. Michael has asked Bazyli to comment them out in tests/CMakeLists.txt so that the coinexplorer can build without any issues. Michael has also mentioned that he has done a git push, therefore, Bazyli needs to do a git pull first before proceeding.The email is a response to a query about building Xcode projects with libcoin on Mac OSX. The sender notes that they develop mainly on Mac OSX and build Xcode projects with libcoin daily on both Mac OSX and Linux, but find building on Windows more difficult. The sender suggests that QT is not necessary and can be removed as the qt part got split out. Building clean on Mac requires OpenSSL, BDB, and Boost, which can be installed using homebrew. Latest CMake should also be used and a normal CMake Xcode call: cmake -GXcode should do the job. The sender provides some quick notes for building stuff and recommends trying coinexplorer because it splits out the wallet from the server, making it nice if you want to build a webcoin-like server. The sender does not use the wallet parts from bitcoind personally, so if there are problems with these, the sender will need to have a closer look. Additionally, the current version of libcoin adds a lot of different features and handles things quite differently compared to the first version, which was a direct refactorization of bitcoin. For example, one can look up any unspent output by script (bitcoin address) in milliseconds, which is nice for web wallets.


Updated on: 2023-08-01T05:19:43.655338+00:00