Ajit Vadakayil: BLOCKCHAIN, PROOF OF ELAPSED TIME, INTEL ...

Is anyone else freaked out by this whole blocksize debate? Does anyone else find themself often agreeing with *both* sides - depending on whichever argument you happen to be reading at the moment? And do we need some better algorithms and data structures?

Why do both sides of the debate seem “right” to me?
I know, I know, a healthy debate is healthy and all - and maybe I'm just not used to the tumult and jostling which would be inevitable in a real live open major debate about something as vital as Bitcoin.
And I really do agree with the starry-eyed idealists who say Bitcoin is vital. Imperfect as it may be, it certainly does seem to represent the first real chance we've had in the past few hundred years to try to steer our civilization and our planet away from the dead-ends and disasters which our government-issued debt-based currencies keep dragging us into.
But this particular debate, about the blocksize, doesn't seem to be getting resolved at all.
Pretty much every time I read one of the long-form major arguments contributed by Bitcoin "thinkers" who I've come to respect over the past few years, this weird thing happens: I usually end up finding myself nodding my head and agreeing with whatever particular piece I'm reading!
But that should be impossible - because a lot of these people vehemently disagree!
So how can both sides sound so convincing to me, simply depending on whichever piece I currently happen to be reading?
Does anyone else feel this way? Or am I just a gullible idiot?
Just Do It?
When you first look at it or hear about it, increasing the size seems almost like a no-brainer: The "big-block" supporters say just increase the blocksize to 20 MB or 8 MB, or do some kind of scheduled or calculated regular increment which tries to take into account the capabilities of the infrastructure and the needs of the users. We do have the bandwidth and the memory to at least increase the blocksize now, they say - and we're probably gonna continue to have more bandwidth and memory in order to be able to keep increasing the blocksize for another couple decades - pretty much like everything else computer-based we've seen over the years (some of this stuff is called by names such as "Moore's Law").
On the other hand, whenever the "small-block" supporters warn about the utter catastrophe that a failed hard-fork would mean, I get totally freaked by their possible doomsday scenarios, which seem totally plausible and terrifying - so I end up feeling that the only way I'd want to go with a hard-fork would be if there was some pre-agreed "triggering" mechanism where the fork itself would only actually "switch on" and take effect provided that some "supermajority" of the network (of who? the miners? the full nodes?) had signaled (presumably via some kind of totally reliable p2p trustless software-based voting system?) that they do indeed "pre-agree" to actually adopt the pre-scheduled fork (and thereby avoid any possibility whatsoever of the precious blockchain somehow tragically splitting into two and pretty much killing this cryptocurrency off in its infancy).
So in this "conservative" scenario, I'm talking about wanting at least 95% pre-adoption agreement - not the mere 75% which I recall some proposals call for, which seems like it could easily lead to a 75/25 blockchain split.
But this time, with this long drawn-out blocksize debate, the core devs, and several other important voices who have become prominent opinion shapers over the past few years, can't seem to come to any real agreement on this.
Weird split among the devs
As far as I can see, there's this weird split: Gavin and Mike seem to be the only people among the devs who really want a major blocksize increase - and all the other devs seem to be vehemently against them.
But then on the other hand, the users seem to be overwhelmingly in favor of a major increase.
And there are meta-questions about governance, about about why this didn't come out as a BIP, and what the availability of Bitcoin XT means.
And today or yesterday there was this really cool big-blockian exponential graph based on doubling the blocksize every two years for twenty years, reminding us of the pure mathematical fact that 210 is indeed about 1000 - but not really addressing any of the game-theoretic points raised by the small-blockians. So a lot of the users seem to like it, but when so few devs say anything positive about it, I worry: is this just yet more exponential chart porn?
On the one hand, Gavin's and Mike's blocksize increase proposal initially seemed like a no-brainer to me.
And on the other hand, all the other devs seem to be against them. Which is weird - not what I'd initially expected at all (but maybe I'm just a fool who's seduced by exponential chart porn?).
Look, I don't mean to be rude to any of the core devs, and I don't want to come off like someone wearing a tinfoil hat - but it has to cross people's minds that the powers that be (the Fed and the other central banks and the governments that use their debt-issued money to run this world into a ditch) could very well be much more scared shitless than they're letting on. If we assume that the powers that be are using their usual playbook and tactics, then it could be worth looking at the book "Confessions of an Economic Hitman" by John Perkins, to get an idea of how they might try to attack Bitcoin. So, what I'm saying is, they do have a track record of sending in "experts" to try to derail projects and keep everyone enslaved to the Creature from Jekyll Island. I'm just saying. So, without getting ad hominem - let's just make sure that our ideas can really stand scrutiny on their own - as Nick Szabo says, we need to make sure there is "more computer science, less noise" in this debate.
When Gavin Andresen first came out with the 20 MB thing - I sat back and tried to imagine if I could download 20 MB in 10 minutes (which seems to be one of the basic mathematical and technological constraints here - right?)
I figured, "Yeah, I could download that" - even with my crappy internet connection.
And I guess the telecoms might be nice enough to continue to double our bandwidth every two years for the next couple decades – if we ask them politely?
On the other hand - I think we should be careful about entrusting the financial freedom of the world into the greedy hands of the telecoms companies - given all their shady shenanigans over the past few years in many countries. After decades of the MPAA and the FBI trying to chip away at BitTorrent, lately PirateBay has been hard to access. I would say it's quite likely that certain persons at institutions like JPMorgan and Goldman Sachs and the Fed might be very, very motivated to see Bitcoin fail - so we shouldn't be too sure about scaling plans which depend on the willingness of companies Verizon and AT&T to double our bandwith every two years.
Maybe the real important hardware buildout challenge for a company like 21 (and its allies such as Qualcomm) to take on now would not be "a miner in every toaster" but rather "Google Fiber Download and Upload Speeds in every Country, including China".
I think I've read all the major stuff on the blocksize debate from Gavin Andresen, Mike Hearn, Greg Maxwell, Peter Todd, Adam Back, and Jeff Garzick and several other major contributors - and, oddly enough, all their arguments seem reasonable - heck even Luke-Jr seems reasonable to me on the blocksize debate, and I always thought he was a whackjob overly influenced by superstition and numerology - and now today I'm reading the article by Bram Cohen - the inventor of BitTorrent - and I find myself agreeing with him too!
I say to myself: What's going on with me? How can I possibly agree with all of these guys, if they all have such vehemently opposing viewpoints?
I mean, think back to the glory days of a couple of years ago, when all we were hearing was how this amazing unprecedented grassroots innovation called Bitcoin was going to benefit everyone from all walks of life, all around the world:
...basically the entire human race transacting everything into the blockchain.
(Although let me say that I think that people's focus on ideas like driverless cabs creating realtime fare markets based on supply and demand seems to be setting our sights a bit low as far as Bitcoin's abilities to correct the financial world's capital-misallocation problems which seem to have been made possible by infinite debt-based fiat. I would have hoped that a Bitcoin-based economy would solve much more noble, much more urgent capital-allocation problems than driverless taxicabs creating fare markets or refrigerators ordering milk on the internet of things. I was thinking more along the lines that Bitcoin would finally strangle dead-end debt-based deadly-toxic energy industries like fossil fuels and let profitable clean energy industries like Thorium LFTRs take over - but that's another topic. :=)
Paradoxes in the blocksize debate
Let me summarize the major paradoxes I see here:
(1) Regarding the people (the majority of the core devs) who are against a blocksize increase: Well, the small-blocks arguments do seem kinda weird, and certainly not very "populist", in the sense that: When on earth have end-users ever heard of a computer technology whose capacity didn't grow pretty much exponentially year-on-year? All the cool new technology we've had - from hard drives to RAM to bandwidth - started out pathetically tiny and grew to unimaginably huge over the past few decades - and all our software has in turn gotten massively powerful and big and complex (sometimes bloated) to take advantage of the enormous new capacity available.
But now suddenly, for the first time in the history of technology, we seem to have a majority of the devs, on a major p2p project - saying: "Let's not scale the system up. It could be dangerous. It might break the whole system (if the hard-fork fails)."
I don't know, maybe I'm missing something here, maybe someone else could enlighten me, but I don't think I've ever seen this sort of thing happen in the last few decades of the history of technology - devs arguing against scaling up p2p technology to take advantage of expected growth in infrastructure capacity.
(2) But... on the other hand... the dire warnings of the small-blockians about what could happen if a hard-fork were to fail - wow, they do seem really dire! And these guys are pretty much all heavyweight, experienced programmers and/or game theorists and/or p2p open-source project managers.
I must say, that nearly all of the long-form arguments I've read - as well as many, many of the shorter comments I've read from many users in the threads, whose names I at least have come to more-or-less recognize over the past few months and years on reddit and bitcointalk - have been amazingly impressive in their ability to analyze all aspects of the lifecycle and management of open-source software projects, bringing up lots of serious points which I could never have come up with, and which seem to come from long experience with programming and project management - as well as dealing with economics and human nature (eg, greed - the game-theory stuff).
So a lot of really smart and experienced people with major expertise in various areas ranging from programming to management to game theory to politics to economics have been making some serious, mature, compelling arguments.
But, as I've been saying, the only problem to me is: in many of these cases, these arguments are vehemently in opposition to each other! So I find myself agreeing with pretty much all of them, one by one - which means the end result is just a giant contradiction.
I mean, today we have Bram Cohen, the inventor of BitTorrent, arguing (quite cogently and convincingly to me), that it would be dangerous to increase the blocksize. And this seems to be a guy who would know a few things about scaling out a massive global p2p network - since the protocol which he invented, BitTorrent, is now apparently responsible for like a third of the traffic on the internet (and this despite the long-term concerted efforts of major evil players such as the MPAA and the FBI to shut the whole thing down).
Was the BitTorrent analogy too "glib"?
By the way - I would like to go on a slight tangent here and say that one of the main reasons why I felt so "comfortable" jumping on the Bitcoin train back a few years ago, when I first heard about it and got into it, was the whole rough analogy I saw with BitTorrent.
I remembered the perhaps paradoxical fact that when a torrent is more popular (eg, a major movie release that just came out last week), then it actually becomes faster to download. More people want it, so more people have a few pieces of it, so more people are able to get it from each other. A kind of self-correcting economic feedback loop, where more demand directly leads to more supply.
(BitTorrent manages to pull this off by essentially adding a certain structure to the file being shared, so that it's not simply like an append-only list of 1 MB blocks, but rather more like an random-access or indexed array of 1 MB chunks. Say you're downloading a film which is 700 MB. As soon as your "client" program has downloaded a single 1-MB chunk - say chunk #99 - your "client" program instantly turns into a "server" program as well - offering that chunk #99 to other clients. From my simplistic understanding, I believe the Bitcoin protocol does something similar, to provide a p2p architecture. Hence my - perhaps naïve - assumption that Bitcoin already had the right algorithms / architecture / data structure to scale.)
The efficiency of the BitTorrent network seemed to jive with that "network law" (Metcalfe's Law?) about fax machines. This law states that the more fax machines there are, the more valuable the network of fax machines becomes. Or the value of the network grows on the order of the square of the number of nodes.
This is in contrast with other technology like cars, where the more you have, the worse things get. The more cars there are, the more traffic jams you have, so things start going downhill. I guess this is because highway space is limited - after all, we can't pave over the entire countryside, and we never did get those flying cars we were promised, as David Graeber laments in a recent essay in The Baffler magazine :-)
And regarding the "stress test" supposedly happening right now in the middle of this ongoing blocksize debate, I don't know what worries me more: the fact that it apparently is taking only $5,000 to do a simple kind of DoS on the blockchain - or the fact that there are a few rumors swirling around saying that the unknown company doing the stress test shares the same physical mailing address with a "scam" company?
Or maybe we should just be worried that so much of this debate is happening on a handful of forums which are controlled by some guy named theymos who's already engaged in some pretty "contentious" or "controversial" behavior like blowing a million dollars on writing forum software (I guess he never heard that reddit.com software is open-source)?
So I worry that the great promise of "decentralization" might be more fragile than we originally thought.
Scaling
Anyways, back to Metcalfe's Law: with virtual stuff, like torrents and fax machines, the more the merrier. The more people downloading a given movie, the faster it arrives - and the more people own fax machines, the more valuable the overall fax network.
So I kindof (naïvely?) assumed that Bitcoin, being "virtual" and p2p, would somehow scale up the same magical way BitTorrrent did. I just figured that more people using it would somehow automatically make it stronger and faster.
But now a lot of devs have started talking in terms of the old "scarcity" paradigm, talking about blockspace being a "scarce resource" and talking about "fee markets" - which seems kinda scary, and antithetical to much of the earlier rhetoric we heard about Bitcoin (the stuff about supporting our favorite creators with micropayments, and the stuff about Africans using SMS to send around payments).
Look, when some asshole is in line in front of you at the cash register and he's holding up the line so they can run his credit card to buy a bag of Cheeto's, we tend to get pissed off at the guy - clogging up our expensive global electronic payment infrastructure to make a two-dollar purchase. And that's on a fairly efficient centralized system - and presumably after a year or so, VISA and the guy's bank can delete or compress the transaction in their SQL databases.
Now, correct me if I'm wrong, but if some guy buys a coffee on the blockchain, or if somebody pays an online artist $1.99 for their work - then that transaction, a few bytes or so, has to live on the blockchain forever?
Or is there some "pruning" thing that gets rid of it after a while?
And this could lead to another question: Viewed from the perspective of double-entry bookkeeping, is the blockchain "world-wide ledger" more like the "balance sheet" part of accounting, i.e. a snapshot showing current assets and liabilities? Or is it more like the "cash flow" part of accounting, i.e. a journal showing historical revenues and expenses?
When I think of thousands of machines around the globe having to lug around multiple identical copies of a multi-gigabyte file containing some asshole's coffee purchase forever and ever... I feel like I'm ideologically drifting in one direction (where I'd end up also being against really cool stuff like online micropayments and Africans banking via SMS)... so I don't want to go there.
But on the other hand, when really experienced and battle-tested veterans with major experience in the world of open-souce programming and project management (the "small-blockians") warn of the catastrophic consequences of a possible failed hard-fork, I get freaked out and I wonder if Bitcoin really was destined to be a settlement layer for big transactions.
Could the original programmer(s) possibly weigh in?
And I don't mean to appeal to authority - but heck, where the hell is Satoshi Nakamoto in all this? I do understand that he/she/they would want to maintain absolute anonymity - but on the other hand, I assume SN wants Bitcoin to succeed (both for the future of humanity - or at least for all the bitcoins SN allegedly holds :-) - and I understand there is a way that SN can cryptographically sign a message - and I understand that as the original developer of Bitcoin, SN had some very specific opinions about the blocksize... So I'm kinda wondering of Satoshi could weigh in from time to time. Just to help out a bit. I'm not saying "Show us a sign" like a deity or something - but damn it sure would be fascinating and possibly very helpful if Satoshi gave us his/hetheir 2 satoshis worth at this really confusing juncture.
Are we using our capacity wisely?
I'm not a programming or game-theory whiz, I'm just a casual user who has tried to keep up with technology over the years.
It just seems weird to me that here we have this massive supercomputer (500 times more powerful than the all the supercomputers in the world combined) doing fairly straightforward "embarassingly parallel" number-crunching operations to secure a p2p world-wide ledger called the blockchain to keep track of a measly 2.1 quadrillion tokens spread out among a few billion addresses - and a couple of years ago you had people like Rick Falkvinge saying the blockchain would someday be supporting multi-million-dollar letters of credit for international trade and you had people like Andreas Antonopoulos saying the blockchain would someday allow billions of "unbanked" people to send remittances around the village or around the world dirt-cheap - and now suddenly in June 2015 we're talking about blockspace as a "scarce resource" and talking about "fee markets" and partially centralized, corporate-sponsored "Level 2" vaporware like Lightning Network and some mysterious company is "stess testing" or "DoS-ing" the system by throwing away a measly $5,000 and suddenly it sounds like the whole system could eventually head right back into PayPal and Western Union territory again, in terms of expensive fees.
When I got into Bitcoin, I really was heavily influenced by vague analogies with BitTorrent: I figured everyone would just have tiny little like utorrent-type program running on their machine (ie, Bitcoin-QT or Armory or Mycelium etc.).
I figured that just like anyone can host a their own blog or webserver, anyone would be able to host their own bank.
Yeah, Google and and Mozilla and Twitter and Facebook and WhatsApp did come along and build stuff on top of TCP/IP, so I did expect a bunch of companies to build layers on top of the Bitcoin protocol as well. But I still figured the basic unit of bitcoin client software powering the overall system would be small and personal and affordable and p2p - like a bittorrent client - or at the most, like a cheap server hosting a blog or email server.
And I figured there would be a way at the software level, at the architecture level, at the algorithmic level, at the data structure level - to let the thing scale - if not infinitely, at least fairly massively and gracefully - the same way the BitTorrent network has.
Of course, I do also understand that with BitTorrent, you're sharing a read-only object (eg, a movie) - whereas with Bitcoin, you're achieving distributed trustless consensus and appending it to a write-only (or append-only) database.
So I do understand that the problem which BitTorrent solves is much simpler than the problem which Bitcoin sets out to solve.
But still, it seems that there's got to be a way to make this thing scale. It's p2p and it's got 500 times more computing power than all the supercomputers in the world combined - and so many brilliant and motivated and inspired people want this thing to succeed! And Bitcoin could be our civilization's last chance to steer away from the oncoming debt-based ditch of disaster we seem to be driving into!
It just seems that Bitcoin has got to be able to scale somehow - and all these smart people working together should be able to come up with a solution which pretty much everyone can agree - in advance - will work.
Right? Right?
A (probably irrelevant) tangent on algorithms and architecture and data structures
I'll finally weigh with my personal perspective - although I might be biased due to my background (which is more on the theoretical side of computer science).
My own modest - or perhaps radical - suggestion would be to ask whether we're really looking at all the best possible algorithms and architectures and data structures out there.
From this perspective, I sometimes worry that the overwhelming majority of the great minds working on the programming and game-theory stuff might come from a rather specific, shall we say "von Neumann" or "procedural" or "imperative" school of programming (ie, C and Python and Java programmers).
It seems strange to me that such a cutting-edge and important computer project would have so little participation from the great minds at the other end of the spectrum of programming paradigms - namely, the "functional" and "declarative" and "algebraic" (and co-algebraic!) worlds.
For example, I was struck in particular by statements I've seen here and there (which seemed rather hubristic or lackadaisical to me - for something as important as Bitcoin), that the specification of Bitcoin and the blockchain doesn't really exist in any form other than the reference implementation(s) (in procedural languages such as C or Python?).
Curry-Howard anyone?
I mean, many computer scientists are aware of the Curry-Howard isomorophism, which basically says that the relationship between a theorem and its proof is equivalent to the relationship between a specification and its implementation. In other words, there is a long tradition in mathematics (and in computer programming) of:
And it's not exactly "turtles all the way down" either: a specification is generally simple and compact enough that a good programmer can usually simply visually inspect it to determine if it is indeed "correct" - something which is very difficult, if not impossible, to do with a program written in a procedural, implementation-oriented language such as C or Python or Java.
So I worry that we've got this tradition, from the open-source github C/Java programming tradition, of never actually writing our "specification", and only writing the "implementation". In mission-critical military-grade programming projects (which often use languages like Ada or Maude) this is simply not allowed. It would seem that a project as mission-critical as Bitcoin - which could literally be crucial for humanity's continued survival - should also use this kind of military-grade software development approach.
And I'm not saying rewrite the implementations in these kind of theoretical languages. But it might be helpful if the C/Python/Java programmers in the Bitcoin imperative programming world could build some bridges to the Maude/Haskell/ML programmers of the functional and algebraic programming worlds to see if any kind of useful cross-pollination might take place - between specifications and implementations.
For example, the JavaFAN formal analyzer for multi-threaded Java programs (developed using tools based on the Maude language) was applied to the Remote Agent AI program aboard NASA's Deep Space 1 shuttle, written in Java - and it took only a few minutes using formal mathematical reasoning to detect a potential deadlock which would have occurred years later during the space mission when the damn spacecraft was already way out around Pluto.
And "the Maude-NRL (Naval Research Laboratory) Protocol Analyzer (Maude-NPA) is a tool used to provide security proofs of cryptographic protocols and to search for protocol flaws and cryptosystem attacks."
These are open-source formal reasoning tools developed by DARPA and used by NASA and the US Navy to ensure that program implementations satisfy their specifications. It would be great if some of the people involved in these kinds of projects could contribute to help ensure the security and scalability of Bitcoin.
But there is a wide abyss between the kinds of programmers who use languages like Maude and the kinds of programmers who use languages like C/Python/Java - and it can be really hard to get the two worlds to meet. There is a bit of rapprochement between these language communities in languages which might be considered as being somewhere in the middle, such as Haskell and ML. I just worry that Bitcoin might be turning into being an exclusively C/Python/Java project (with the algorithms and practitioners traditionally of that community), when it could be more advantageous if it also had some people from the functional and algebraic-specification and program-verification community involved as well. The thing is, though: the theoretical practitioners are big on "semantics" - I've heard them say stuff like "Yes but a C / C++ program has no easily identifiable semantics". So to get them involved, you really have to first be able to talk about what your program does (specification) - before proceeding to describe how it does it (implementation). And writing high-level specifications is typically very hard using the syntax and semantics of languages like C and Java and Python - whereas specs are fairly easy to write in Maude - and not only that, they're executable, and you state and verify properties about them - which provides for the kind of debate Nick Szabo was advocating ("more computer science, less noise").
Imagine if we had an executable algebraic specification of Bitcoin in Maude, where we could formally reason about and verify certain crucial game-theoretical properties - rather than merely hand-waving and arguing and deploying and praying.
And so in the theoretical programming community you've got major research on various logics such as Girard's Linear Logic (which is resource-conscious) and Bruni and Montanari's Tile Logic (which enables "pasting" bigger systems together from smaller ones in space and time), and executable algebraic specification languages such as Meseguer's Maude (which would be perfect for game theory modeling, with its functional modules for specifying the deterministic parts of systems and its system modules for specifiying non-deterministic parts of systems, and its parameterized skeletons for sketching out the typical architectures of mobile systems, and its formal reasoning and verification tools and libraries which have been specifically applied to testing and breaking - and fixing - cryptographic protocols).
And somewhat closer to the practical hands-on world, you've got stuff like Google's MapReduce and lots of Big Data database languages developed by Google as well. And yet here we are with a mempool growing dangerously big for RAM on a single machine, and a 20-GB append-only list as our database - and not much debate on practical results from Google's Big Data databases.
(And by the way: maybe I'm totally ignorant for asking this, but I'll ask anyways: why the hell does the mempool have to stay in RAM? Couldn't it work just as well if it were stored temporarily on the hard drive?)
And you've got CalvinDB out of Yale which apparently provides an ACID layer on top of a massively distributed database.
Look, I'm just an armchair follower cheering on these projects. I can barely manage to write a query in SQL, or read through a C or Python or Java program. But I would argue two points here: (1) these languages may be too low-level and "non-formal" for writing and modeling and formally reasoning about and proving properties of mission-critical specifications - and (2) there seem to be some Big Data tools already deployed by institutions such as Google and Yale which support global petabyte-size databases on commodity boxes with nice properties such as near-real-time and ACID - and I sometimes worry that the "core devs" might be failing to review the literature (and reach out to fellow programmers) out there to see if there might be some formal program-verification and practical Big Data tools out there which could be applied to coming up with rock-solid, 100% consensus proposals to handle an issue such as blocksize scaling, which seems to have become much more intractable than many people might have expected.
I mean, the protocol solved the hard stuff: the elliptical-curve stuff and the Byzantine General stuff. How the heck can we be falling down on the comparatively "easier" stuff - like scaling the blocksize?
It just seems like defeatism to say "Well, the blockchain is already 20-30 GB and it's gonna be 20-30 TB ten years from now - and we need 10 Mbs bandwidth now and 10,000 Mbs bandwidth 20 years from - assuming the evil Verizon and AT&T actually give us that - so let's just become a settlement platform and give up on buying coffee or banking the unbanked or doing micropayments, and let's push all that stuff into some corporate-controlled vaporware without even a whitepaper yet."
So you've got Peter Todd doing some possibly brilliant theorizing and extrapolating on the idea of "treechains" - there is a Let's Talk Bitcoin podcast from about a year ago where he sketches the rough outlines of this idea out in a very inspiring, high-level way - although the specifics have yet to be hammered out. And we've got Blockstream also doing some hopeful hand-waving about the Lightning Network.
Things like Peter Todd's treechains - which may be similar to the spark in some devs' eyes called Lightning Network - are examples of the kind of algorithm or architecture which might manage to harness the massive computing power of miners and nodes in such a way that certain kinds of massive and graceful scaling become possible.
It just seems like a kindof tiny dev community working on this stuff.
Being a C or Python or Java programmer should not be a pre-req to being able to help contribute to the specification (and formal reasoning and program verification) for Bitcoin and the blockchain.
XML and UML are crap modeling and specification languages, and C and Java and Python are even worse (as specification languages - although as implementation languages, they are of course fine).
But there are serious modeling and specification languages out there, and they could be very helpful at times like this - where what we're dealing with is questions of modeling and specification (ie, "needs and requirements").
One just doesn't often see the practical, hands-on world of open-source github implementation-level programmers and the academic, theoretical world of specification-level programmers meeting very often. I wish there were some way to get these two worlds to collaborate on Bitcoin.
Maybe a good first step to reach out to the theoretical people would be to provide a modular executable algebraic specification of the Bitcoin protocol in a recognized, military/NASA-grade specification language such as Maude - because that's something the theoretical community can actually wrap their heads around, whereas it's very hard to get them to pay attention to something written only as a C / Python / Java implementation (without an accompanying specification in a formal language).
They can't check whether the program does what it's supposed to do - if you don't provide a formal mathematical definition of what the program is supposed to do.
Specification : Implementation :: Theorem : Proof
You have to remember: the theoretical community is very aware of the Curry-Howard isomorphism. Just like it would be hard to get a mathematician's attention by merely showing them a proof without telling also telling them what theorem the proof is proving - by the same token, it's hard to get the attention of a theoretical computer scientist by merely showing them an implementation without showing them the specification that it implements.
Bitcoin is currently confronted with a mathematical or "computer science" problem: how to secure the network while getting high enough transactional throughput, while staying within the limited RAM, bandwidth and hard drive space limitations of current and future infrastructure.
The problem only becomes a political and economic problem if we give up on trying to solve it as a mathematical and "theoretical computer science" problem.
There should be a plethora of whitepapers out now proposing algorithmic solutions to these scaling issues. Remember, all we have to do is apply the Byzantine General consensus-reaching procedure to a worldwide database which shuffles 2.1 quadrillion tokens among a few billion addresses. The 21 company has emphatically pointed out that racing to compute a hash to add a block is an "embarrassingly parallel" problem - very easy to decompose among cheap, fault-prone, commodity boxes, and recompose into an overall solution - along the lines of Google's highly successful MapReduce.
I guess what I'm really saying is (and I don't mean to be rude here), is that C and Python and Java programmers might not be the best qualified people to develop and formally prove the correctness of (note I do not say: "test", I say "formally prove the correctness of") these kinds of algorithms.
I really believe in the importance of getting the algorithms and architectures right - look at Google Search itself, it uses some pretty brilliant algorithms and architectures (eg, MapReduce, Paxos) which enable it to achieve amazing performance - on pretty crappy commodity hardware. And look at BitTorrent, which is truly p2p, where more demand leads to more supply.
So, in this vein, I will close this lengthy rant with an oddly specific link - which may or may not be able to make some interesting contributions to finding suitable algorithms, architectures and data structures which might help Bitcoin scale massively. I have no idea if this link could be helpful - but given the near-total lack of people from the Haskell and ML and functional worlds in these Bitcoin specification debates, I thought I'd be remiss if I didn't throw this out - just in case there might be something here which could help us channel the massive computing power of the Bitcoin network in such a way as to enable us simply sidestep this kind of desperate debate where both sides seem right because the other side seems wrong.
https://personal.cis.strath.ac.uk/neil.ghani/papers/ghani-calco07
The above paper is about "higher dimensional trees". It uses a bit of category theory (not a whole lot) and a bit of Haskell (again not a lot - just a simple data structure called a Rose tree, which has a wikipedia page) to develop a very expressive and efficient data structure which generalizes from lists to trees to higher dimensions.
I have no idea if this kind of data structure could be applicable to the current scaling mess we apparently are getting bogged down in - I don't have the game-theory skills to figure it out.
I just thought that since the blockchain is like a list, and since there are some tree-like structures which have been grafted on for efficiency (eg Merkle trees) and since many of the futuristic scaling proposals seem to also involve generalizing from list-like structures (eg, the blockchain) to tree-like structures (eg, side-chains and tree-chains)... well, who knows, there might be some nugget of algorithmic or architectural or data-structure inspiration there.
So... TL;DR:
(1) I'm freaked out that this blocksize debate has splintered the community so badly and dragged on so long, with no resolution in sight, and both sides seeming so right (because the other side seems so wrong).
(2) I think Bitcoin could gain immensely by using high-level formal, algebraic and co-algebraic program specification and verification languages (such as Maude including Maude-NPA, Mobile Maude parameterized skeletons, etc.) to specify (and possibly also, to some degree, verify) what Bitcoin does - before translating to low-level implementation languages such as C and Python and Java saying how Bitcoin does it. This would help to communicate and reason about programs with much more mathematical certitude - and possibly obviate the need for many political and economic tradeoffs which currently seem dismally inevitable - and possibly widen the collaboration on this project.
(3) I wonder if there are some Big Data approaches out there (eg, along the lines of Google's MapReduce and BigTable, or Yale's CalvinDB), which could be implemented to allow Bitcoin to scale massively and painlessly - and to satisfy all stakeholders, ranging from millionaires to micropayments, coffee drinkers to the great "unbanked".
submitted by BeYourOwnBank to Bitcoin [link] [comments]

Subreddit Stats: btc top posts from 2018-04-20 to 2018-05-20 06:58 PDT

Period: 29.85 days
Submissions Comments
Total 1000 53623
Rate (per day) 33.50 1780.26
Unique Redditors 466 5134
Combined Score 118969 219877

Top Submitters' Top Submissions

  1. 7839 points, 57 submissions: MemoryDealers
    1. If all the 32MB blocks were permanently 100% full, this $400 hard drive could store the blockchain for the next 7 years. (373 points, 352 comments)
    2. The people behind Bitcoin Cash are the ones who created Bitcoin's network effect in the first place. (357 points, 123 comments)
    3. Bitcoin subscribers are now calling for people to report Bitcoin.com to the Internet Crime Complaint Center of the FBI. It's sad that BTC supporters all seem to be statists who yell about hodling their muh store of value all day. (348 points, 288 comments)
    4. I have more emails saved on my computer than the entire BTC or BCH block chains. (319 points, 131 comments)
    5. Bitcoin.com is now sponsoring pro female MMA athletes. (293 points, 121 comments)
    6. CoinGeek will support Bitcoin.com in lawsuit over the real Bitcoin - Coingeek (273 points, 354 comments)
    7. Bitcoin Cash is now on iOS in the world’s most popular crypto wallet. #winning (257 points, 131 comments)
    8. "The vast majority of mining hash power was controlled by people who were psychologically incapable of disobedience to perceived authority." -Mike Hearn (250 points, 194 comments)
    9. "BTC True Believers" Are Boycotting the First National Talk Radio Show that ever Discussed Bitcoin because they accept BCH payments. (245 points, 116 comments)
    10. All I keep hearing is that Bitcoin Cash is an infested cesspool of lawless, leaderless, disrespectful, narcissistic, greedy, scammy, capitalistic anarchists that will never create digital money! I swear I’m getting dejavu! (225 points, 46 comments)
  2. 3965 points, 19 submissions: hunk_quark
    1. Warren Buffet's Berkshire is the single largest stockholder in BoA and WellsFargo. In case you were wondering about his attitude towards Bitcoin. (614 points, 114 comments)
    2. Purse.io is paying its employees in Bitcoin Cash. (447 points, 63 comments)
    3. Shoutout to Kraken for standing up to NY Attorney General. If Schneiderman wants transparency and accountability he should be looking into auditing the fed. (406 points, 28 comments)
    4. Bitcoin is rat poison. The bankers are the rats. (404 points, 56 comments)
    5. Forbes Author Frances Coppola takes blockstream to task. (364 points, 35 comments)
    6. Purse CEO Andrew Lee confirms they are paying employees in BCH and native BCH integration update will be coming soon! (343 points, 43 comments)
    7. PSA: So called 'low-fee' cryptocurrency Litecoin has transaction fees 20x higher than Bitcoin Cash (264 points, 80 comments)
    8. After today's BCH Upgrade, longer posts are now enabled on memo.cash! (250 points, 31 comments)
    9. Jeffrey Tucker is promoting bitcoin.com at Atlanta Bitcoin Embassy. (195 points, 57 comments)
    10. Anti-Bitcoiners, life comes at you fast! (109 points, 26 comments)
  3. 3846 points, 30 submissions: Kain_niaK
    1. Bitcoin Cash has not only removed the cap on transactions but also the cap on development. Something new pops up every time I blink. (368 points, 162 comments)
    2. I am getting flashbacks from when I tried to close my Bank of America account ... (353 points, 155 comments)
    3. Fucking /bitcoin assholes reported my twitter account and now I need to verify with a phone number before I can continue with twitter. (325 points, 218 comments)
    4. Paul Wasensteiner: When is @Twitter going to fix the abuse of the report button by @bitcoincoreorg supporters? Why are supporters of a supposedly censorship-resistant money using censorship at every opportunity? (295 points, 106 comments)
    5. We should pirate the entire piratebay.org website and all it's functionality directly on to the Bitcoin Cash blockchain. The piratebay.org is just magnet links and comments. Then they will say bcash stole our business ... (232 points, 439 comments)
    6. Fees higher than a dollar cent or waiting times longer than a couple of seconds defeat the entire purpose of why Bitcoin was invented. (218 points, 164 comments)
    7. moneybutton.com is a configurable client-side Bitcoin Cash (BCH) wallet in an iframe. When the user makes a payment, a webhook URL is called allowing your app to respond to the payment, such as displaying content behind a pay wall. (189 points, 37 comments)
    8. We proudly present BCHpizza.org! Now the community can create city bounties for pizza shops to incentivize them to accept Bitcoin Cash. First pizza shop in a city to do so gets the bounty! (177 points, 117 comments)
    9. Bitcoin Cash can turn in to the biggest non violent protest against the establishment ever : "We simply stop using their money." Which is a great way of getting edgy teenagers to join us. There is an almost infinite supply of edgy teenagers in the world. (156 points, 42 comments)
    10. We need testers for the Cash Shuffle plugin. (121 points, 17 comments)
  4. 3666 points, 28 submissions: Windowly
    1. "Billion-dollar corporations take note: Bitcoin Cash is open for business! Just try to fill up our blocks, I dare you. There will be no "Fidelity Effect" with BCH. Unlike BTC, we want you to use the Blockchain. BCH never really hits a scale ceiling."~Dr. Peter Rizun (415 points, 177 comments)
    2. "In a discussion group of BCH, lots of investors concerned about the address confusing problem. BCH community should push every software of ecosystem to upgrade to Cashaddr ASAP."~Jihan Wu (366 points, 215 comments)
    3. "Maybe the best way to bring economic freedom to the world is to make an uncensorable Twitter."~Ryan X. Charles (300 points, 114 comments)
    4. Newbie tip! Do yourself a favor, get a Protonmail email account and switch all your crypto exchanges to that email. No reason Google/Gmail need to have your entire crypto history at their fingertips. (299 points, 133 comments)
    5. "On the 15th of May, I'll be popping the champagne, not to celebrate high fees, but to celebrate continued low fees, privacy enablements, smart contract capabilities, and PayPal level throughput capability."~Eli Afram (233 points, 46 comments)
    6. 24% of the trading on GDAX in the last 24 hours was for Bitcoin Cash (BCH)! 😊💃 (185 points, 16 comments)
    7. Yeah!! "We are pleased to announce that the new Bitcoin Cash address format has been implemented on QuadrigaCX. This will help our users to easily distinguish Bitcoin and Bitcoin Cash addresses when funding/withdrawing their account. The BCH legacy addresses will still be supported." (165 points, 8 comments)
    8. ANNOUNCE: Coinbase has blocked the official @WikiLeaks shop from its platform without notice or explanation. You can continue to donate #Bitcoin to WikiLeaks at https://WikiLeaks.org/donate . (164 points, 55 comments)
    9. There is a Bitcoin Unlimited election today. (BU is one of the 6+ development teams that develop clients for Bitcoin Cash (BCH). BU has a unique governance system where developers are not king. . instead members vote on proposals. If you are a member, please vote! (161 points, 29 comments)
    10. Bitpay Adds Bitcoin Cash Support to Checkout Point-of-Sale App - Bitcoin News (151 points, 22 comments)
  5. 2565 points, 15 submissions: BitcoinXio
    1. Bitcoin Cash is upgrading on May 15 to 32MB max block limit (575 points, 335 comments)
    2. Frances Coppola on Twitter: “Congratulations, Blockstream, you have just reinvented the interbank lending market.” (411 points, 139 comments)
    3. Once again Core supporters threaten with lawsuits and government intervention to try to get their way. This is just pathetic and not the foundations of what Bitcoin was built on. These are not bitcoiners. (299 points, 355 comments)
    4. Get ready - Bitcoin Cash is upgrading on May 15th! (198 points, 132 comments)
    5. CobraBitcoin: "Lightning is cool, but nobody should be recommending it to actual merchants for at least the next few years. Merchants like Steam already got hurt by adopting Bitcoin and regretting it later. Lightning needs time to mature and prove itself. Mad hype to rush adoption will harm it." (157 points, 58 comments)
    6. Blockchain on Twitter: “What's that you see? It's all your BCH that now appears in your #ios wallet. Take control of your financial future and #beyourownbank today.” (138 points, 20 comments)
    7. We are living in the digital age of information, which is why censorship has become such an important issue [...] That’s why I’m excited about decentralized social networks built on top of Bitcoin Cash like @BlockPressApp & @memobch. They are new so need work, but the path is being paved. (131 points, 31 comments)
    8. BlockPress published its protocol (123 points, 22 comments)
    9. We have a new alternative public mod logs (96 points, 35 comments)
    10. If Bitcoin Core (BTC) is no longer usable by many people in the world due to being out priced (high tx fees), is it still “borderless”? I’d argue that it’s no longer borderless if people all over the world are excluded from the network. (95 points, 34 comments)
  6. 2030 points, 11 submissions: tralxz
    1. Breaking News: Winklevoss Brothers Bitcoin Exchange Adds Bitcoin Cash support! (508 points, 115 comments)
    2. Jihan Wu was asked "Why are the miners still supporting Bitcoin Core? Is it just a short term profitability play?", he answered: "Yes, exactly." (279 points, 215 comments)
    3. Cobra:"That feeling when Blockstream, [...] release Liquid, a completely centralized sidechain run only by trusted nodes and designed for banks, financial institutions and exchanges." (245 points, 145 comments)
    4. LibreOffice Foundation accepts Bitcoin Cash donations. (191 points, 11 comments)
    5. Breaking News! Vin Armani: "Major mining pools have agreed to establish a treasury and start funding $BCH development from their block rewards. HUGE!!!" (186 points, 80 comments)
    6. CNBC's Fast Money: Ran NeuNer says he would HODL Bitcoin Cash and sell Bitcoin Core. (172 points, 59 comments)
    7. Jihan Wu on Bloomberg predicting Bitcoin Cash at $100,000 USD in 5 years. (172 points, 65 comments)
    8. Let's start the Bitcoin Cash upgrade party. New era for BCH is coming May 15. Privacy tools + smart contracts + PayPal capacity handling. Exciting times ahead! (106 points, 37 comments)
    9. Coindesk: "Florida Tax Collector to Accept Bitcoin, Bitcoin Cash Payments" (60 points, 8 comments)
    10. Adam B.: "Bitcoin is not a democracy". The authoritarian moves by Core makes perfect sense now. (59 points, 46 comments)
  7. 1485 points, 12 submissions: jonald_fyookball
    1. BTCers fundraise for frivolous lawsuit. BCH fundraises to feed Venezuelans. (233 points, 58 comments)
    2. bitcoin admits: best way to use Lightning Network: don't use it. (189 points, 286 comments)
    3. Electron Cash 3.2 is available. Includes new op-codes and fixes for Ledger hardware wallet (180 points, 50 comments)
    4. If you have to call it bcash you've already lost the argument (164 points, 257 comments)
    5. Cash Shuffle plugin 0.2 - Cash Shuffle development continues (131 points, 37 comments)
    6. Claims that BCH is a "centralized coin" are exaggerations at best. (114 points, 83 comments)
    7. (shitpost) philosoraptor meme: if honeybadger don't care... (106 points, 22 comments)
    8. BCH being a minority chain may be a blessing in disguise (97 points, 83 comments)
    9. Another reason to be bullish on BCH (92 points, 18 comments)
    10. BCHpizza already has 4 bounties posted. It's also no longer needed to sign a message to post a bounty. (89 points, 21 comments)
  8. 1393 points, 8 submissions: rdar1999
    1. Naomi Brockwell on Twitter: "[I] won’t succumb to censorship through intimidation." (332 points, 190 comments)
    2. Consensus 2018 sucked hard. Superficial talks, ridiculous ticket price, overcrowded venue. (233 points, 78 comments)
    3. ==> Becash or Begone: reclaiming the "bcash" trolling (213 points, 107 comments)
    4. See in this twitter thread Luke Jr actually arguing that PayPal is cheaper than BCH!! Is this guy in full delirium? Or just spouts misinformation on purpose? (172 points, 227 comments)
    5. ///\ BTC-BCH persists as the most popular trade on ShapeShift.io /// (171 points, 20 comments)
    6. The retard tribalism is so real. SBI japan's financial giant says they will launch a platform with BCH as settlement coin (due to BTC being bad) and XRP as remittances. I provide the link and cryptocurrency shills deny plain literally declared fact. (124 points, 50 comments)
    7. Chris DeRose on Twitter: "So if Roger ver wins the class action lawsuit, I assume that Bitcoin cash can then rightfully sue Bitcoin core proponents for fraud?" (92 points, 61 comments)
    8. Upgrade completed at height 530356! (56 points, 2 comments)
  9. 1377 points, 12 submissions: Egon_1
    1. Genesis Mining:"We are more than happy to announce that Bitcoin Cash is now available as a Native Mining option for all Bitcoin (Sha256) contracts!" (287 points, 22 comments)
    2. Jihan Wu on BCH Lighthouse:”This project was abandoned on BTC Blockchain long time ago, it is very excited to see it is alive again on BCH Blockchain. It can be very huge.” (278 points, 50 comments)
    3. Yahoo Finance: "Bitcoin Goes Lateral as Bitcoin Cash Steals the Show… AGAIN" (189 points, 46 comments)
    4. "Bitcoin Cash is actually more interesting ..." (119 points, 15 comments)
    5. Jeff Garzik:"Just got an earful from a Chicago cabbie, on $LTC He was very grumpy at @SatoshiLite selling, saying it indicated a lack of founder's confidence in his own creation. #StreetCrypto" (100 points, 8 comments)
    6. “Why don't we start saying: "Bitcoin is Cash" It's much harder to refute than "Bitcoin Cash IS Bitcoin"“ (75 points, 49 comments)
    7. "Because Bitcoin Cash is effectively Bitcoin ✌️ (72 points, 22 comments)
    8. Bye Bye P2P Electronic Cash ... (68 points, 88 comments)
    9. Bitcoin.com Wallet needs more useful services integrated... beyond Shapeshift (59 points, 24 comments)
    10. BCH keeps bitcoins minions busy (48 points, 28 comments)
  10. 1291 points, 9 submissions: increaseblocks
    1. Vitalik Buterin says what we've all been saying - CoinDesk is scammy and complicit bad actor in the cryptocurrency world and should be shunned (510 points, 61 comments)
    2. Bitcoin Wallet Mycelium Begins Rolling Out Bitcoin Cash BCH Support (163 points, 39 comments)
    3. Cheddr is a Bitcoin Cash Point Of Sale system that runs in most modern browsers - no server infrastructure required (137 points, 31 comments)
    4. Leaked Telegram chat shows bitcoin.com "fraud" lawsuit was abandoned due to lack of support 😂😂😂 (135 points, 32 comments)
    5. Toshi to expand beyond Ethereum - will add Bitcoin Cash (91 points, 7 comments)
    6. Litecoin transaction fees 20 times higher than Bitcoin Cash (85 points, 44 comments)
    7. DAMN BCH! (68 points, 25 comments)
    8. In honor of the Bitcoin Cash successful upgrade and now we have the true lightning network. I present to you lightningnetwork.cash! (58 points, 22 comments)
    9. Bcore shills are crying right now 😭😭😂😂 (44 points, 10 comments)
  11. 1202 points, 9 submissions: SharkLaserrrrr
    1. Memo is now open source! (361 points, 160 comments)
    2. Based on @BitcoinCashFund report, preliminary calculation: Total spent: $153,138.49 Total spent on Salaries and Travel: $101,996.79 ~66% of donations is spent on themselves, charities/non-profits (official registered ones) limit themselves to less than 10% (161 points, 181 comments)
    3. [PREVIEW] Looks like Lighthouse powered by Bitcoin Cash is coming together nicely thanks to the hard work of an anonymous developer. I wonder how Mike Hearn feels about his project being resurrected. (159 points, 24 comments)
    4. We heard you want a Bitcoin Cash exclusive wallet that uses ‘bits’ and enables you to buy anything online and pay with Bitcoin Cash so we are building one #cashpay #CryptonizeYourPurchases (137 points, 77 comments)
    5. Bitcoin Cash is the real Bitcoin experience. If you have any doubts, go buy something on cryptonize.it, then buy something off a Lightning store and compare what you had to go through to pay for your order. (103 points, 51 comments)
    6. As of today, cryptonize.it shows prices in Bitcoin Cash next to fiat! (81 points, 9 comments)
    7. Incompatible protocols gave us the ’90s web which was not a pretty sight. Let’s not repeat the same mistakes when building censorship resisted social media powered by Bitcoin Cash. Support @MemoBCH protocol. (72 points, 57 comments)
    8. To help developers raise funds, cryptonize.it is sponsoring a Lighthouse server and website so useful projects can be funded by the community directly. (66 points, 7 comments)
    9. $25,- Amazon gift cards back in store, 0-conf. instant delivery, the real bitcoin experience (62 points, 18 comments)
  12. 1189 points, 1 submission: ocist1121
    1. No spend (1189 points, 87 comments)
  13. 1148 points, 6 submissions: BeijingBitcoins
    1. Three years ago today, Mike Hearn published an article explaining exactly what would happen when the 1MB blocksize limit was hit. He was right on all counts. (473 points, 173 comments)
    2. An easy way to visualize the August 1st Hard Fork. Neither of the two branches resulting from a fork can be called "the original road," but only one branch continues towards the same destination. (163 points, 140 comments)
    3. Bitcoin Core fanatics are trying to organize a lawsuit against Bitcoin.com for using the term "Bitcoin (BCH)", while they run around all day labelling it "Bcash" (157 points, 167 comments)
    4. "Bitcoin Cash won't "fork" in May. Instead, Bitcoin Cash will just upgrade." (123 points, 53 comments)
    5. Just launched: Satoshi Pulse, by Bitcoin.com (121 points, 44 comments)
    6. Ryan Charles delivers an epic rant about Lightning Network problems (111 points, 19 comments)
  14. 1085 points, 10 submissions: unitedstatian
    1. Reminder: Blockstream plans to make money from the proprietary solutions it sells, which is why it moved away from the free permissionless blockchain to an abstracted layer on top which requires 3rd party solutions to be cost effective for most users. (220 points, 146 comments)
    2. It seems there's been a massive propaganda campaign to brainwash people into thinking hardforks are bad. (180 points, 56 comments)
    3. BCH could really be missing the new big use case. Gamers would love to have real ownership of game items. The first game which will integrate a digital coin and make it popular will be groundbreaking. (141 points, 76 comments)
    4. The guy had 350 bucks received via Lightning Network but he can't even close the channels to actually withdraw the bitcoins. (139 points, 188 comments)
    5. What gives Core the right to change the model so drastically and still keep the brand name? (119 points, 117 comments)
    6. One of the most ignorant - even anti-crypto - argument I hear around is that BCH is a currency controlled by Chinese miners. (88 points, 74 comments)
    7. The first megabytes are far more crucial than the 100th. Not every MB was born equal and by giving up on adoption for years Core may have given up on adoption forever. (69 points, 20 comments)
    8. In light of the recent ERC-20 bug I think this is a good time to remember these wise words (54 points, 25 comments)
    9. If BCH had decent privacy features it'd gain so much more market share. It's hard to compete with privacy-always-on coins such as XMR but many more coins offer moderate privacy and would be easy to beat. (42 points, 31 comments)
    10. If Memo taught me one thing it's the more uses around the coin the better - can BCH be adopted to help fight counterfeiting? (33 points, 4 comments)
  15. 1055 points, 5 submissions: ForkiusMaximus
    1. MortuusBestia hits on a pitch-perfect way of looking at BCH's value proposition in epic comment on /BitcoinMarkets (604 points, 109 comments)
    2. I am excited that BCH is being irrationally criticized, because it reminds me of 2011 and 2012 when Bitcoin was being irrationally criticized. Any of 2013, when the price rose 100x. (183 points, 82 comments)
    3. Japanese tweeter makes a good point about BTC: "You don't call it an asset if it crumbles away every time you go to use it. You call it a consumable." (144 points, 21 comments)
    4. Jimmy Nguyen: Bitcoin Cash can function for higher level technical programming (80 points, 3 comments)
    5. How NOT to tell which is "the real Bitcoin" (44 points, 15 comments)
  16. 1032 points, 6 submissions: theantnest
    1. Let's start a class action lawsuit against Canada for calling their currency the dollar. I accidentally bought CAD when I wanted USD, and didn't know I could just exchange it again. (511 points, 243 comments)
    2. BTC noobs conned into being concerned about node count to distract them from the real centralization problem: (137 points, 172 comments)
    3. Any real scientist interested in Bitcoin should be happy Bitcoin Cash exists. (110 points, 40 comments)
    4. Blockstream shill admits to exaggerating and slandering Roger purely because he doesn't support BTC. (103 points, 49 comments)
    5. Cognitive Dissonance: It's totally fine to call BCH 'bcash', but it's fraudulent to call it Bitcoin? (93 points, 51 comments)
    6. Be Cash! (78 points, 45 comments)
  17. 1029 points, 7 submissions: zhell_
    1. MEMO NOW SUPPORTS REPLIES, join the Party now ! (208 points, 50 comments)
    2. memo.cash has been generating 2000 tx/day since its start, which is near 10% of all transactions on the BCH network. (201 points, 73 comments)
    3. "Money comes from being the most tradable of all commodities" Austrian Economics (189 points, 104 comments)
    4. Fiat is crashing: Inflation in the US averages at 10%/year in the past 5 years when measured as the price of the top 500 items on which Americans spend their after-tax dollars. (183 points, 49 comments)
    5. Memo.cash breaks a record with 3000 on-chain actions in the last 24h after implementing replies (143 points, 25 comments)
    6. with 2k tx/day, memo.cash is only using ~0.09% of 8MB blocks capacity currently on the BCH network (that would be 0.02% of 32MB blocks) (69 points, 3 comments)
    7. Help! I bought what I thought was Bitcoin and it is now gone! /s (36 points, 8 comments)
  18. 1020 points, 4 submissions: Anenome5
    1. Let's End the War and focus on the TRUE ENEMY (719 points, 349 comments)
    2. Satoshi's original whitepaper talks about "Reclaiming Disk Space" by pruning transactions, what's being done on this front? Core-trolls say we don't need to store forever that you bought a coffee, and that's true, and Satoshi also proposed how to fix that long ago. (200 points, 166 comments)
    3. Core'er says $50 fees "a wtf moment for everyone" but doubts it will ever happen again. Seems they're in for a surprise, BTC is still extremely vulnerable to transaction-fee price-inflation due to low capacity. BTC transaction fees currently 19+ times higher than BCH. (65 points, 30 comments)
    4. Bitcoin Cash, the early years... [OC] (36 points, 16 comments)

Top Commenters

  1. jessquit (3904 points, 368 comments)
  2. Kain_niaK (3058 points, 684 comments)
  3. bambarasta (2674 points, 360 comments)
  4. H0dl (2352 points, 464 comments)
  5. rdar1999 (2352 points, 404 comments)
  6. BitttBurger (2301 points, 313 comments)
  7. Adrian-X (2118 points, 506 comments)
  8. MemoryDealers (2084 points, 102 comments)
  9. trolldetectr (2073 points, 502 comments)
  10. LexGrom (2055 points, 709 comments)
  11. Ant-n (1834 points, 334 comments)
  12. LovelyDay (1820 points, 468 comments)
  13. jimbtc (1734 points, 212 comments)
  14. fruitsofknowledge (1618 points, 469 comments)
  15. ForkiusMaximus (1612 points, 211 comments)
  16. unstoppable-cash (1537 points, 201 comments)
  17. unitedstatian (1485 points, 388 comments)
  18. jonald_fyookball (1481 points, 142 comments)
  19. Bitcoinopoly (1471 points, 175 comments)
  20. BeijingBitcoins (1430 points, 100 comments)
  21. KoKansei (1330 points, 84 comments)
  22. MobTwo (1309 points, 93 comments)
  23. btcnewsupdates (1263 points, 153 comments)
  24. lubokkanev (1252 points, 298 comments)
  25. BitcoinXio (1251 points, 76 comments)
  26. taipalag (1248 points, 250 comments)
  27. mrtest001 (1075 points, 271 comments)
  28. LuxuriousThrowAway (1072 points, 163 comments)
  29. MarchewkaCzerwona (1046 points, 119 comments)
  30. cbeaks (985 points, 175 comments)
  31. SharkLaserrrrr (976 points, 135 comments)
  32. tippr (974 points, 523 comments)
  33. knight222 (963 points, 132 comments)
  34. PsyRev_ (941 points, 189 comments)
  35. radmege (919 points, 62 comments)
  36. Anenome5 (914 points, 182 comments)
  37. Churn (886 points, 75 comments)
  38. 324JL (855 points, 200 comments)
  39. emergent_reasons (854 points, 143 comments)
  40. TiagoTiagoT (841 points, 320 comments)
  41. bahkins313 (831 points, 121 comments)
  42. silverjustice (825 points, 62 comments)
  43. cryptorebel (812 points, 148 comments)
  44. scotty321 (811 points, 121 comments)
  45. DaSpawn (808 points, 113 comments)
  46. homopit (795 points, 100 comments)
  47. AcerbLogic (786 points, 205 comments)
  48. normal_rc (777 points, 59 comments)
  49. fiah84 (774 points, 136 comments)
  50. Deadbeat1000 (753 points, 61 comments)

Top Submissions

  1. No spend by ocist1121 (1189 points, 87 comments)
  2. 1 For whoever questions the utility of Bitcoin, here's banking summarized accurately by rlibec (783 points, 163 comments)
  3. Let's End the War and focus on the TRUE ENEMY by Anenome5 (719 points, 349 comments)
  4. Am I the only one that doesn't mind Bitcoin Cash being called "Bitcoin Cash" instead of just "Bitcoin" (for now)? by d3on (672 points, 401 comments)
  5. Warren Buffet's Berkshire is the single largest stockholder in BoA and WellsFargo. In case you were wondering about his attitude towards Bitcoin. by hunk_quark (614 points, 114 comments)
  6. MortuusBestia hits on a pitch-perfect way of looking at BCH's value proposition in epic comment on /BitcoinMarkets by ForkiusMaximus (604 points, 109 comments)
  7. coincall.io labels BCH a "shitcoin" by groovymash (586 points, 329 comments)
  8. Erik Voorhees: “Roger - please stop referencing me to back up your opinion that Bitcoin Cash is Bitcoin. It isn't. Bitcoin is the chain originating from the genesis block with the highest accumulated proof of work. The Bitcoin Cash fork failed to gain majority, thus it is not Bitcoin.” by sumsaph (585 points, 547 comments)
  9. Can’t believe this was available. My new license plate.. by VanquishAudio (581 points, 113 comments)
  10. Bitcoin Cash is upgrading on May 15 to 32MB max block limit by BitcoinXio (575 points, 335 comments)

Top Comments

  1. 322 points: rdar1999's comment in My dog ate my TREZOR. Check your recovery seeds folks!
  2. 314 points: my_next_account's comment in Erik Voorhees: “Roger - please stop referencing me to back up your opinion that Bitcoin Cash is Bitcoin. It isn't. Bitcoin is the chain originating from the genesis block with the highest accumulated proof of work. The Bitcoin Cash fork failed to gain majority, thus it is not Bitcoin.”
  3. 259 points: everyother's comment in 1 For whoever questions the utility of Bitcoin, here's banking summarized accurately
  4. 225 points: morli's comment in Can’t believe this was available. My new license plate..
  5. 209 points: groovymash's comment in coincall.io labels BCH a "shitcoin"
  6. 206 points: insanityzwolf's comment in Am I the only one that doesn't mind Bitcoin Cash being called "Bitcoin Cash" instead of just "Bitcoin" (for now)?
  7. 183 points: BitttBurger's comment in MoneyTrigz fails to raise more than $3,700 for Bitcoin.com lawsuit. Considers pulling the plug.
  8. 182 points: patrick99e99's comment in I used to think BCH was the bad guy, now I'm beginning to change the way I see it... Convince me that BCH is the real Bitcoin
  9. 175 points: RollieMe's comment in Trying to see both sides of the scaling debate
  10. 156 points: KillerDr3w's comment in My dog ate my TREZOR. Check your recovery seeds folks!
Generated with BBoe's Subreddit Stats
submitted by subreddit_stats to subreddit_stats [link] [comments]

10 Of The World’s Best Homemade Organic Fertilizers

https://preview.redd.it/e5fu55j1g9x01.jpg?width=600&format=pjpg&auto=webp&s=49252647875cee4de62692a7613fb33c7ff0aa33
When it comes to organic gardening, the options for all-natural fertilizers can often be scarce on the shelves at your average supply store. Those that do exist are more expensive and while they may say “organic” on the packaging, you really don’t know what’s in them. Fortunately, making your own natural organic fertilizers can be both easy and inexpensive, often using components which you already have lying around the house.
To get started, let’s take a look at the basic elements that make up a good fertilizer, as well as the trace nutrients needed for more specialized plant food.

1. The Fertilizer Formula

Unless you’re fairly new to gardening, you’ve likely seen the three numbers listed on the label of the majority of premixed fertilizers. If you aren’t familiar with what they mean, the numbers represent nitrogen, phosphorus, and potassium or N – P – K. These vital nutrients are needed for strong aerial growth, root development, and overall plant health, respectively. A good way to remember N – P – K is by using the phrase “Up, down, and all around.” Knowing these three main components is essential to creating the perfect food for your garden.

2. Trace Nutrients

Just as humans need more than proteins, fats, and carbohydrates in their diets; plants cannot survive on N – P – K alone. There are thirteen additional chemical elements that contribute to the health and productivity of your garden.
Aside from the primary nutrients which we have already identified (nitrogen, phosphorus, and potassium), plants require three secondary minerals: calcium (Ca), Magnesium (Mg), and Sulfur (S). During photosynthesis, plants use sunlight to break water and carbon dioxide down into hydrogen (H), oxygen (O), and carbon (C); the three non-mineral nutrients which they turn into food. Boron (B), copper (Cu), iron (Fe), chloride (Cl), manganese (Mn), molybdenum (Mo), and zinc (Zn) are the necessary micro-nutrients which a plant must obtain from the surrounding soil.
For more information on plant nutrients and their role in your garden, read more in this article from NCARG.
Which if any of these minerals you will need to include in your fertilizer depend largely upon your soil type. Acidic soils (low pH) such as those with high clay content tend to be lacking in macronutrients (N, P, K, Ca, Mg, and S) while alkaline soils (high pH) generally contain insufficient micronutrients (B, Cu, Fe, Cl, Mn, Mo, and Zn). Garden soil with a neutral pH between 6.0 and 6.5 generally contains adequate amounts of both sets of nutrients required to sustain healthy plants. If you need help gauging the quality of your soil, take a sample and have it tested.

3. Tomato Fertilizers

Of all of the plants in your garden, nothing loves calcium more than a tomato vine. Furthermore, because excessive leaf growth discourages blossoming and fruiting, these plants do best when offered a healthy amount of nitrogen early on. (Try using rabbit manure for a quick easy N-boost!) Then, once the vines are established, you should switch over to a fertilizer high in phosphorus and potassium, but low in nitrogen. Tomatoes also benefit greatly from magnesium, producing sweeter fruit when generously supplemented with this secondary mineral.

4. Rose Fertilizers

There are scarce few gardening endeavors as rewarding as growing the perfect rose. There are also few as difficult. Roses require constant attention – weeding, pruning, pest-treating, training, and of course feeding. Getting your rose fertilizer just right can have a huge impact on the appearance and quantity of blossoms your bushes unfurl each year.

5. Up-cycling Fertilizers

https://preview.redd.it/n7m9qs3eg9x01.jpg?width=300&format=pjpg&auto=webp&s=117dfd882102cd7d21288b896c1cc8149779bd48
There are several common household items which make much better fertilizers than waste bin-fillers. The next time you go to toss one of these items in the trash, consider feeding it to you garden instead:
Mix used coffee grounds with “brown” yard waste like dead leaves or dry straw and grass clippings to add nitrogen to the soil. Just so long as they’re mixed well with a neutral medium, they won’t significantly alter the pH. This fertilizer is great for plants like azaleas, roses, and hydrangeas which love a more acidic soil.
Eggshells are approximately 96% calcium. When used as fertilizer, they help to strengthen cellular structure and transport of nutrients in your plants. (Read more about uses for eggshells in the garden.)
(Collect used shells and coffee grounds in a glass jar with a lid or in a resealable plastic bag so they don’t attract insects while they’re waiting to be taken outside.)
If you keep fresh-water fish as pets, don’t discard the water next time you clean the tank. Used water from fish tanks is full of nitrogen and trace nutrients that can improve your garden’s health. Remember, this only applies to fresh-water tanks. Salt water will harm most plants!

6. Epsom Salts

https://preview.redd.it/uhg16a7fg9x01.jpg?width=139&format=pjpg&auto=webp&s=a6009f8d7343d1dbcb68243c08e5bf2b62f3cec8
Hydrated magnesium sulfate, aka Epsom salts (available to buy from this page on Amazon)contain two important elements that plants need to maintain optimum health. Magnesium plays a vital role during photosynthesis and is required by plants for the proper functioning of many enzymatic processes. Seeds also need magnesium to germinate. Sulfur aids plants with several functions including amino acid production, root growth, and the formation of chlorophyll. This mineral also gives cole crops and Alliums their signature flavors.
Fertilize your onions, broccoli, and cabbages with Epsom salts to get healthier, sweeter-tasting vegetables. Use Epsom salts on tomatoes, peppers, and roses to grow stronger plants with more blossoms. As a general use fertilizer, Epsom salts are an inexpensive way to give your whole garden a healthy boost of nutrients. An Epsom salt solution is also a great way to replenish magnesium and sulfur levels in depleted potting soil.
Mix a tablespoon of Epsom salts with one gallon of water and apply to garden plants as a foliar spray once every two weeks. When feeding roses, use one tablespoon of salts per foot of the plant’s height mixed in a gallon of water. Spray once in the spring when leaves begin to appear and again after your roses bloom. For vegetables, sprinkle a tablespoon of Epsom salts around each seedling as soon as they are transplanted into the garden. Repeat this feeding following the first bloom and fruiting. For potted plants, dissolve two tablespoons of salts in one gallon of water and use this solution in place of normal watering once per month.

7. Vinegar Fertilizer

Plain white vinegar is an inexpensive and effective fertilizer for acid-loving plants like roses, hydrangeas, and berries. Simply mix a tablespoon of vinegar in one gallon of water. Use this solution in lieu of your regular watering about once every three months. Remember to test your soil before altering the pH. While many plants thrive in an acidic environment, too low of a pH can be harmful.

8. Composting

https://preview.redd.it/8h5aro6hg9x01.jpg?width=300&format=pjpg&auto=webp&s=60e13de936ecfadbf27685943aee020f3a7a1758
An excellent practice for recycling waste materials and feeding your garden at the same time, composting is becoming more and more popular with organic gardeners. Ingredients that make a successful compost mix include:
Air and water to sustain the bacteria responsible for decomposing organic matter,
Dry “brown” material (carbon) such as dead leaves, straw, and other dried garden and yard waste.
Wet “green” material (nitrogen) like rabbit or chicken manure, grass clippings, and other fresh plant matter. Try to avoid adding weed seeds to the mix. Your compost may not get hot enough to kill them. (Composting to Kill Weed Seeds)
For successful composting, you want a ratio of carbon to nitrogen somewhere around 30:1 and 40:1 – read more about balancing compost in this guide by Organic Gardening.
Remember, it is important to give your compost adequate time to “cook” – especially if you use manure – as this will kill any harmful pathogens that may be living in the rotting material. Also, it is important that you don’t let your compost age for too long as rotting organic matter will begin to lose nutrients the longer it sits.

9. Compost Tea

Once you have finished compost available, you can add it straight to the garden or turn it into tea for your plants. Fill a five-gallon bucket about a third of the way with finished compost. Add water until the bucket is almost full – about an inch or two from the lip. Leave the mixture to steep, stirring frequently (just like cooking stew in a crock pot.) After three or four days, strain the compost out using a porous fabric like cheesecloth. Return the solid material to the compost pile or feed it to your garden. The liquid should be diluted to about one part “tea” and ten parts fresh water. Apply the solution either directly to the ground or as a foliar spray.
As a side note: working with compost is messy (and stinky!) business. Remember to wear gloves and eye protection. You may also wish to don a breathing mask.

10. Grass Clipping Tea

https://preview.redd.it/4kf4afbig9x01.jpg?width=500&format=pjpg&auto=webp&s=f5c908cb457454be2b3df19868bae624992b14bf
Grass clippings also make an excellent nitrogen-rich fertilizer all by themselves. To make grass “tea” for your garden, fill a five-gallon bucket about two-thirds of the way with fresh clippings. Top off with water to within an inch or two from the lip. Let the mixture steep for about 72 hours, stirring at least once per day. Strain to remove grass clippings then dilute the finished product one part “tea” to one part fresh water. Apply this solution as a foliar spray or directly to the ground.
For a full tutorial on making liquid grass clipping fertilizer, take a look at FarmWhisperer.com here.
One final note: Make certain that any ingredients you use in your homemade fertilizers do not contain herbicides or other chemicals which might damage your garden. Remember, plants love food that is free of harmful chemicals, just as much as people do!
Source

Cryptocurrency #ICO #Blockchain #TokenSale #agrotechfarm #Token #AI #coin #bonus #platform #bitcoin #ethereum #crypto #currencies #project #ATF #cryptotrading #icoinvest #iconews #technology #agrotechnology #ecology #organicfood #organicindustry #formula #tea #Fertilizer #tomat

submitted by AgroTechFarmICO to u/AgroTechFarmICO [link] [comments]

Bitcoin Core 0.10.0 released | Wladimir | Feb 16 2015

Wladimir on Feb 16 2015:
Bitcoin Core version 0.10.0 is now available from:
https://bitcoin.org/bin/0.10.0/
This is a new major version release, bringing both new features and
bug fixes.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
The whole distribution is also available as torrent:
https://bitcoin.org/bin/0.10.0/bitcoin-0.10.0.torrent
magnet:?xt=urn:btih:170c61fe09dafecfbb97cb4dccd32173383f4e68&dn;=0.10.0&tr;=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.ccc.de%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr;=udp%3A%2F%2Fopen.demonii.com%3A1337&ws;=https%3A%2F%2Fbitcoin.org%2Fbin%2F
Upgrading and downgrading

How to Upgrade
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or
bitcoind/bitcoin-qt (on Linux).
Downgrading warning
Because release 0.10.0 makes use of headers-first synchronization and parallel
block download (see further), the block files and databases are not
backwards-compatible with older versions of Bitcoin Core or other software:
  • Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
other programs. Reindexing using earlier versions will also not work
anymore as a result of this.
  • The block index database will now hold headers for which no block is
stored on disk, which earlier versions won't support.
If you want to be able to downgrade smoothly, make a backup of your entire data
directory. Without this your node will need start syncing (or importing from
bootstrap.dat) anew afterwards. It is possible that the data from a completely
synchronised 0.10 node may be usable in older versions as-is, but this is not
supported and may break as soon as the older version attempts to reindex.
This does not affect wallet forward or backward compatibility.
Notable changes

Faster synchronization
Bitcoin Core now uses 'headers-first synchronization'. This means that we first
ask peers for block headers (a total of 27 megabytes, as of December 2014) and
validate those. In a second stage, when the headers have been discovered, we
download the blocks. However, as we already know about the whole chain in
advance, the blocks can be downloaded in parallel from all available peers.
In practice, this means a much faster and more robust synchronization. On
recent hardware with a decent network link, it can be as little as 3 hours
for an initial full synchronization. You may notice a slower progress in the
very first few minutes, when headers are still being fetched and verified, but
it should gain speed afterwards.
A few RPCs were added/updated as a result of this:
  • getblockchaininfo now returns the number of validated headers in addition to
the number of validated blocks.
  • getpeerinfo lists both the number of blocks and headers we know we have in
common with each peer. While synchronizing, the heights of the blocks that we
have requested from peers (but haven't received yet) are also listed as
'inflight'.
  • A new RPC getchaintips lists all known branches of the block chain,
including those we only have headers for.
Transaction fee changes
This release automatically estimates how high a transaction fee (or how
high a priority) transactions require to be confirmed quickly. The default
settings will create transactions that confirm quickly; see the new
'txconfirmtarget' setting to control the tradeoff between fees and
confirmation times. Fees are added by default unless the 'sendfreetransactions'
setting is enabled.
Prior releases used hard-coded fees (and priorities), and would
sometimes create transactions that took a very long time to confirm.
Statistics used to estimate fees and priorities are saved in the
data directory in the fee_estimates.dat file just before
program shutdown, and are read in at startup.
New command line options for transaction fee changes:
  • -txconfirmtarget=n : create transactions that have enough fees (or priority)
so they are likely to begin confirmation within n blocks (default: 1). This setting
is over-ridden by the -paytxfee option.
  • -sendfreetransactions : Send transactions as zero-fee transactions if possible
(default: 0)
New RPC commands for fee estimation:
  • estimatefee nblocks : Returns approximate fee-per-1,000-bytes needed for
a transaction to begin confirmation within nblocks. Returns -1 if not enough
transactions have been observed to compute a good estimate.
  • estimatepriority nblocks : Returns approximate priority needed for
a zero-fee transaction to begin confirmation within nblocks. Returns -1 if not
enough free transactions have been observed to compute a good
estimate.
RPC access control changes
Subnet matching for the purpose of access control is now done
by matching the binary network address, instead of with string wildcard matching.
For the user this means that -rpcallowip takes a subnet specification, which can be
  • a single IP address (e.g. 1.2.3.4 or fe80::0012:3456:789a:bcde)
  • a network/CIDR (e.g. 1.2.3.0/24 or fe80::0000/64)
  • a network/netmask (e.g. 1.2.3.4/255.255.255.0 or fe80::0012:3456:789a:bcde/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff)
An arbitrary number of -rpcallow arguments can be given. An incoming connection will be accepted if its origin address
matches one of them.
For example:
| 0.9.x and before | 0.10.x |
|--------------------------------------------|---------------------------------------|
| -rpcallowip=192.168.1.1 | -rpcallowip=192.168.1.1 (unchanged) |
| -rpcallowip=192.168.1.* | -rpcallowip=192.168.1.0/24 |
| -rpcallowip=192.168.* | -rpcallowip=192.168.0.0/16 |
| -rpcallowip=* (dangerous!) | -rpcallowip=::/0 (still dangerous!) |
Using wildcards will result in the rule being rejected with the following error in debug.log:
 Error: Invalid -rpcallowip subnet specification: *. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). 
REST interface
A new HTTP API is exposed when running with the -rest flag, which allows
unauthenticated access to public node data.
It is served on the same port as RPC, but does not need a password, and uses
plain HTTP instead of JSON-RPC.
Assuming a local RPC server running on port 8332, it is possible to request:
In every case, EXT can be bin (for raw binary data), hex (for hex-encoded
binary) or json.
For more details, see the doc/REST-interface.md document in the repository.
RPC Server "Warm-Up" Mode
The RPC server is started earlier now, before most of the expensive
intialisations like loading the block index. It is available now almost
immediately after starting the process. However, until all initialisations
are done, it always returns an immediate error with code -28 to all calls.
This new behaviour can be useful for clients to know that a server is already
started and will be available soon (for instance, so that they do not
have to start it themselves).
Improved signing security
For 0.10 the security of signing against unusual attacks has been
improved by making the signatures constant time and deterministic.
This change is a result of switching signing to use libsecp256k1
instead of OpenSSL. Libsecp256k1 is a cryptographic library
optimized for the curve Bitcoin uses which was created by Bitcoin
Core developer Pieter Wuille.
There exist attacks[1] against most ECC implementations where an
attacker on shared virtual machine hardware could extract a private
key if they could cause a target to sign using the same key hundreds
of times. While using shared hosts and reusing keys are inadvisable
for other reasons, it's a better practice to avoid the exposure.
OpenSSL has code in their source repository for derandomization
and reduction in timing leaks that we've eagerly wanted to use for a
long time, but this functionality has still not made its
way into a released version of OpenSSL. Libsecp256k1 achieves
significantly stronger protection: As far as we're aware this is
the only deployed implementation of constant time signing for
the curve Bitcoin uses and we have reason to believe that
libsecp256k1 is better tested and more thoroughly reviewed
than the implementation in OpenSSL.
[1] https://eprint.iacr.org/2014/161.pdf
Watch-only wallet support
The wallet can now track transactions to and from wallets for which you know
all addresses (or scripts), even without the private keys.
This can be used to track payments without needing the private keys online on a
possibly vulnerable system. In addition, it can help for (manual) construction
of multisig transactions where you are only one of the signers.
One new RPC, importaddress, is added which functions similarly to
importprivkey, but instead takes an address or script (in hexadecimal) as
argument. After using it, outputs credited to this address or script are
considered to be received, and transactions consuming these outputs will be
considered to be sent.
The following RPCs have optional support for watch-only:
getbalance, listreceivedbyaddress, listreceivedbyaccount,
listtransactions, listaccounts, listsinceblock, gettransaction. See the
RPC documentation for those methods for more information.
Compared to using getrawtransaction, this mechanism does not require
-txindex, scales better, integrates better with the wallet, and is compatible
with future block chain pruning functionality. It does mean that all relevant
addresses need to added to the wallet before the payment, though.
Consensus library
Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library.
The purpose of this library is to make the verification functionality that is
critical to Bitcoin's consensus available to other applications, e.g. to language
bindings such as [python-bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or
alternative node implementations.
This library is called libbitcoinconsensus.so (or, .dll for Windows).
Its interface is defined in the C header [bitcoinconsensus.h](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/bitcoinconsensus.h).
In its initial version the API includes two functions:
  • bitcoinconsensus_verify_script verifies a script. It returns whether the indicated input of the provided serialized transaction
correctly spends the passed scriptPubKey under additional constraints indicated by flags
  • bitcoinconsensus_version returns the API version, currently at an experimental 0
The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface
for existing methods should remain stable.
Standard script rules relaxed for P2SH addresses
The IsStandard() rules have been almost completely removed for P2SH
redemption scripts, allowing applications to make use of any valid
script type, such as "n-of-m OR y", hash-locked oracle addresses, etc.
While the Bitcoin protocol has always supported these types of script,
actually using them on mainnet has been previously inconvenient as
standard Bitcoin Core nodes wouldn't relay them to miners, nor would
most miners include them in blocks they mined.
bitcoin-tx
It has been observed that many of the RPC functions offered by bitcoind are
"pure functions", and operate independently of the bitcoind wallet. This
included many of the RPC "raw transaction" API functions, such as
createrawtransaction.
bitcoin-tx is a newly introduced command line utility designed to enable easy
manipulation of bitcoin transactions. A summary of its operation may be
obtained via "bitcoin-tx --help" Transactions may be created or signed in a
manner similar to the RPC raw tx API. Transactions may be updated, deleting
inputs or outputs, or appending new inputs and outputs. Custom scripts may be
easily composed using a simple text notation, borrowed from the bitcoin test
suite.
This tool may be used for experimenting with new transaction types, signing
multi-party transactions, and many other uses. Long term, the goal is to
deprecate and remove "pure function" RPC API calls, as those do not require a
server round-trip to execute.
Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making
key and script operations easily accessible via command line.
Mining and relay policy enhancements
Bitcoin Core's block templates are now for version 3 blocks only, and any mining
software relying on its getblocktemplate must be updated in parallel to use
libblkmaker either version 0.4.2 or any version from 0.5.1 onward.
If you are solo mining, this will affect you the moment you upgrade Bitcoin
Core, which must be done prior to BIP66 achieving its 951/1001 status.
If you are mining with the stratum mining protocol: this does not affect you.
If you are mining with the getblocktemplate protocol to a pool: this will affect
you at the pool operator's discretion, which must be no later than BIP66
achieving its 951/1001 status.
The prioritisetransaction RPC method has been added to enable miners to
manipulate the priority of transactions on an individual basis.
Bitcoin Core now supports BIP 22 long polling, so mining software can be
notified immediately of new templates rather than having to poll periodically.
Support for BIP 23 block proposals is now available in Bitcoin Core's
getblocktemplate method. This enables miners to check the basic validity of
their next block before expending work on it, reducing risks of accidental
hardforks or mining invalid blocks.
Two new options to control mining policy:
  • -datacarrier=0/1 : Relay and mine "data carrier" (OP_RETURN) transactions
if this is 1.
  • -datacarriersize=n : Maximum size, in bytes, we consider acceptable for
"data carrier" outputs.
The relay policy has changed to more properly implement the desired behavior of not
relaying free (or very low fee) transactions unless they have a priority above the
AllowFreeThreshold(), in which case they are relayed subject to the rate limiter.
BIP 66: strict DER encoding for signatures
Bitcoin Core 0.10 implements BIP 66, which introduces block version 3, and a new
consensus rule, which prohibits non-DER signatures. Such transactions have been
non-standard since Bitcoin v0.8.0 (released in February 2013), but were
technically still permitted inside blocks.
This change breaks the dependency on OpenSSL's signature parsing, and is
required if implementations would want to remove all of OpenSSL from the
consensus code.
The same miner-voting mechanism as in BIP 34 is used: when 751 out of a
sequence of 1001 blocks have version number 3 or higher, the new consensus
rule becomes active for those blocks. When 951 out of a sequence of 1001
blocks have version number 3 or higher, it becomes mandatory for all blocks.
Backward compatibility with current mining software is NOT provided, thus miners
should read the first paragraph of "Mining and relay policy enhancements" above.
0.10.0 Change log

Detailed release notes follow. This overview includes changes that affect external
behavior, not code moves, refactors or string updates.
RPC:
  • f923c07 Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost
  • b641c9c Fix addnode "onetry": Connect with OpenNetworkConnection
  • 171ca77 estimatefee / estimatepriority RPC methods
  • b750cf1 Remove cli functionality from bitcoind
  • f6984e8 Add "chain" to getmininginfo, improve help in getblockchaininfo
  • 99ddc6c Add nLocalServices info to RPC getinfo
  • cf0c47b Remove getwork() RPC call
  • 2a72d45 prioritisetransaction
  • e44fea5 Add an option -datacarrier to allow users to disable relaying/mining data carrier transactions
  • 2ec5a3d Prevent easy RPC memory exhaustion attack
  • d4640d7 Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation
  • 83f3543 Added argument to listaccounts to include watchonly addresses
  • 952877e Showing 'involvesWatchonly' property for transactions returned by 'listtransactions' and 'listsinceblock'. It is only appended when the transaction involves a watchonly address
  • d7d5d23 Added argument to listtransactions and listsinceblock to include watchonly addresses
  • f87ba3d added includeWatchonly argument to 'gettransaction' because it affects balance calculation
  • 0fa2f88 added includedWatchonly argument to listreceivedbyaddress/...account
  • 6c37f7f getrawchangeaddress: fail when keypool exhausted and wallet locked
  • ff6a7af getblocktemplate: longpolling support
  • c4a321f Add peerid to getpeerinfo to allow correlation with the logs
  • 1b4568c Add vout to ListTransactions output
  • b33bd7a Implement "getchaintips" RPC command to monitor blockchain forks
  • 733177e Remove size limit in RPC client, keep it in server
  • 6b5b7cb Categorize rpc help overview
  • 6f2c26a Closely track mempool byte total. Add "getmempoolinfo" RPC
  • aa82795 Add detailed network info to getnetworkinfo RPC
  • 01094bd Don't reveal whether password is <20 or >20 characters in RPC
  • 57153d4 rpc: Compute number of confirmations of a block from block height
  • ff36cbe getnetworkinfo: export local node's client sub-version string
  • d14d7de SanitizeString: allow '(' and ')'
  • 31d6390 Fixed setaccount accepting foreign address
  • b5ec5fe update getnetworkinfo help with subversion
  • ad6e601 RPC additions after headers-first
  • 33dfbf5 rpc: Fix leveldb iterator leak, and flush before gettxoutsetinfo
  • 2aa6329 Enable customising node policy for datacarrier data size with a -datacarriersize option
  • f877aaa submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock
  • e69a587 submitblock: Support for returning specific rejection reasons
  • af82884 Add "warmup mode" for RPC server
  • e2655e0 Add unauthenticated HTTP REST interface to public blockchain data
  • 683dc40 Disable SSLv3 (in favor of TLS) for the RPC client and server
  • 44b4c0d signrawtransaction: validate private key
  • 9765a50 Implement BIP 23 Block Proposal
  • f9de17e Add warning comment to getinfo
Command-line options:
  • ee21912 Use netmasks instead of wildcards for IP address matching
  • deb3572 Add -rpcbind option to allow binding RPC port on a specific interface
  • 96b733e Add -version option to get just the version
  • 1569353 Add -stopafterblockimport option
  • 77cbd46 Let -zapwallettxes recover transaction meta data
  • 1c750db remove -tor compatibility code (only allow -onion)
  • 4aaa017 rework help messages for fee-related options
  • 4278b1d Clarify error message when invalid -rpcallowip
  • 6b407e4 -datadir is now allowed in config files
  • bdd5b58 Add option -sysperms to disable 077 umask (create new files with system default umask)
  • cbe39a3 Add "bitcoin-tx" command line utility and supporting modules
  • dbca89b Trigger -alertnotify if network is upgrading without you
  • ad96e7c Make -reindex cope with out-of-order blocks
  • 16d5194 Skip reindexed blocks individually
  • ec01243 --tracerpc option for regression tests
  • f654f00 Change -genproclimit default to 1
  • 3c77714 Make -proxy set all network types, avoiding a connect leak
  • 57be955 Remove -printblock, -printblocktree, and -printblockindex
  • ad3d208 remove -maxorphanblocks config parameter since it is no longer functional
Block and transaction handling:
  • 7a0e84d ProcessGetData(): abort if a block file is missing from disk
  • 8c93bf4 LoadBlockIndexDB(): Require block db reindex if any blk*.dat files are missing
  • 77339e5 Get rid of the static chainMostWork (optimization)
  • 4e0eed8 Allow ActivateBestChain to release its lock on cs_main
  • 18e7216 Push cs_mains down in ProcessBlock
  • fa126ef Avoid undefined behavior using CFlatData in CScript serialization
  • 7f3b4e9 Relax IsStandard rules for pay-to-script-hash transactions
  • c9a0918 Add a skiplist to the CBlockIndex structure
  • bc42503 Use unordered_map for CCoinsViewCache with salted hash (optimization)
  • d4d3fbd Do not flush the cache after every block outside of IBD (optimization)
  • ad08d0b Bugfix: make CCoinsViewMemPool support pruned entries in underlying cache
  • 5734d4d Only remove actualy failed blocks from setBlockIndexValid
  • d70bc52 Rework block processing benchmark code
  • 714a3e6 Only keep setBlockIndexValid entries that are possible improvements
  • ea100c7 Reduce maximum coinscache size during verification (reduce memory usage)
  • 4fad8e6 Reject transactions with excessive numbers of sigops
  • b0875eb Allow BatchWrite to destroy its input, reducing copying (optimization)
  • 92bb6f2 Bypass reloading blocks from disk (optimization)
  • 2e28031 Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (reduce memory usage)
  • ab15b2e Avoid copying undo data (optimization)
  • 341735e Headers-first synchronization
  • afc32c5 Fix rebuild-chainstate feature and improve its performance
  • e11b2ce Fix large reorgs
  • ed6d1a2 Keep information about all block files in memory
  • a48f2d6 Abstract context-dependent block checking from acceptance
  • 7e615f5 Fixed mempool sync after sending a transaction
  • 51ce901 Improve chainstate/blockindex disk writing policy
  • a206950 Introduce separate flushing modes
  • 9ec75c5 Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true
  • 868d041 Remove coinbase-dependant transactions during reorg
  • 723d12c Remove txn which are invalidated by coinbase maturity during reorg
  • 0cb8763 Check against MANDATORY flags prior to accepting to mempool
  • 8446262 Reject headers that build on an invalid parent
  • 008138c Bugfix: only track UTXO modification after lookup
P2P protocol and network code:
  • f80cffa Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails
  • c30329a Add testnet DNS seed of Alex Kotenko
  • 45a4baf Add testnet DNS seed of Andreas Schildbach
  • f1920e8 Ping automatically every 2 minutes (unconditionally)
  • 806fd19 Allocate receive buffers in on the fly
  • 6ecf3ed Display unknown commands received
  • aa81564 Track peers' available blocks
  • caf6150 Use async name resolving to improve net thread responsiveness
  • 9f4da19 Use pong receive time rather than processing time
  • 0127a9b remove SOCKS4 support from core and GUI, use SOCKS5
  • 40f5cb8 Send rejects and apply DoS scoring for errors in direct block validation
  • dc942e6 Introduce whitelisted peers
  • c994d2e prevent SOCKET leak in BindListenPort()
  • a60120e Add built-in seeds for .onion
  • 60dc8e4 Allow -onlynet=onion to be used
  • 3a56de7 addrman: Do not propagate obviously poor addresses onto the network
  • 6050ab6 netbase: Make SOCKS5 negotiation interruptible
  • 604ee2a Remove tx from AlreadyAskedFor list once we receive it, not when we process it
  • efad808 Avoid reject message feedback loops
  • 71697f9 Separate protocol versioning from clientversion
  • 20a5f61 Don't relay alerts to peers before version negotiation
  • b4ee0bd Introduce preferred download peers
  • 845c86d Do not use third party services for IP detection
  • 12a49ca Limit the number of new addressses to accumulate
  • 35e408f Regard connection failures as attempt for addrman
  • a3a7317 Introduce 10 minute block download timeout
  • 3022e7d Require sufficent priority for relay of free transactions
  • 58fda4d Update seed IPs, based on bitcoin.sipa.be crawler data
  • 18021d0 Remove bitnodes.io from dnsseeds.
Validation:
  • 6fd7ef2 Also switch the (unused) verification code to low-s instead of even-s
  • 584a358 Do merkle root and txid duplicates check simultaneously
  • 217a5c9 When transaction outputs exceed inputs, show the offending amounts so as to aid debugging
  • f74fc9b Print input index when signature validation fails, to aid debugging
  • 6fd59ee script.h: set_vch() should shift a >32 bit value
  • d752ba8 Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (test only)
  • 698c6ab Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (test only)
  • ab9edbd script: create sane error return codes for script validation and remove logging
  • 219a147 script: check ScriptError values in script tests
  • 0391423 Discourage NOPs reserved for soft-fork upgrades
  • 98b135f Make STRICTENC invalid pubkeys fail the script rather than the opcode
  • 307f7d4 Report script evaluation failures in log and reject messages
  • ace39db consensus: guard against openssl's new strict DER checks
  • 12b7c44 Improve robustness of DER recoding code
  • 76ce5c8 fail immediately on an empty signature
Build system:
  • f25e3ad Fix build in OS X 10.9
  • 65e8ba4 build: Switch to non-recursive make
  • 460b32d build: fix broken boost chrono check on some platforms
  • 9ce0774 build: Fix windows configure when using --with-qt-libdir
  • ea96475 build: Add mention of --disable-wallet to bdb48 error messages
  • 1dec09b depends: add shared dependency builder
  • c101c76 build: Add --with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fix
  • e432a5f build: add option for reducing exports (v2)
  • 6134b43 Fixing condition 'sabotaging' MSVC build
  • af0bd5e osx: fix signing to make Gatekeeper happy (again)
  • a7d1f03 build: fix dynamic boost check when --with-boost= is used
  • d5fd094 build: fix qt test build when libprotobuf is in a non-standard path
  • 2cf5f16 Add libbitcoinconsensus library
  • 914868a build: add a deterministic dmg signer
  • 2d375fe depends: bump openssl to 1.0.1k
  • b7a4ecc Build: Only check for boost when building code that requires it
Wallet:
  • b33d1f5 Use fee/priority estimates in wallet CreateTransaction
  • 4b7b1bb Sanity checks for estimates
  • c898846 Add support for watch-only addresses
  • d5087d1 Use script matching rather than destination matching for watch-only
  • d88af56 Fee fixes
  • a35b55b Dont run full check every time we decrypt wallet
  • 3a7c348 Fix make_change to not create half-satoshis
  • f606bb9 fix a possible memory leak in CWalletDB::Recover
  • 870da77 fix possible memory leaks in CWallet::EncryptWallet
  • ccca27a Watch-only fixes
  • 9b1627d [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis
  • a53fd41 Deterministic signing
  • 15ad0b5 Apply AreSane() checks to the fees from the network
  • 11855c1 Enforce minRelayTxFee on wallet created tx and add a maxtxfee option
GUI:
  • c21c74b osx: Fix missing dock menu with qt5
  • b90711c Fix Transaction details shows wrong To:
  • 516053c Make links in 'About Bitcoin Core' clickable
  • bdc83e8 Ensure payment request network matches client network
  • 65f78a1 Add GUI view of peer information
  • 06a91d9 VerifyDB progress reporting
  • fe6bff2 Add BerkeleyDB version info to RPCConsole
  • b917555 PeerTableModel: Fix potential deadlock. #4296
  • dff0e3b Improve rpc console history behavior
  • 95a9383 Remove CENT-fee-rule from coin control completely
  • 56b07d2 Allow setting listen via GUI
  • d95ba75 Log messages with type>QtDebugMsg as non-debug
  • 8969828 New status bar Unit Display Control and related changes
  • 674c070 seed OpenSSL PNRG with Windows event data
  • 509f926 Payment request parsing on startup now only changes network if a valid network name is specified
  • acd432b Prevent balloon-spam after rescan
  • 7007402 Implement SI-style (thin space) thoudands separator
  • 91cce17 Use fixed-point arithmetic in amount spinbox
  • bdba2dd Remove an obscure option no-one cares about
  • bd0aa10 Replace the temporary file hack currently used to change Bitcoin-Qt's dock icon (OS X) with a buffer-based solution
  • 94e1b9e Re-work overviewpage UI
  • 8bfdc9a Better looking trayicon
  • b197bf3 disable tray interactions when client model set to 0
  • 1c5f0af Add column Watch-only to transactions list
  • 21f139b Fix tablet crash. closes #4854
  • e84843c Broken addresses on command line no longer trigger testnet
  • a49f11d Change splash screen to normal window
  • 1f9be98 Disable App Nap on OSX 10.9+
  • 27c3e91 Add proxy to options overridden if necessary
  • 4bd1185 Allow "emergency" shutdown during startup
  • d52f072 Don't show wallet options in the preferences menu when running with -disablewallet
  • 6093aa1 Qt: QProgressBar CPU-Issue workaround
  • 0ed9675 [Wallet] Add global boolean whether to send free transactions (default=true)
  • ed3e5e4 [Wallet] Add global boolean whether to pay at least the custom fee (default=true)
  • e7876b2 [Wallet] Prevent user from paying a non-sense fee
  • c1c9d5b Add Smartfee to GUI
  • e0a25c5 Make askpassphrase dialog behave more sanely
  • 94b362d On close of splashscreen interrupt verifyDB
  • b790d13 English translation update
  • 8543b0d Correct tooltip on address book page
Tests:
  • b41e594 Fix script test handling of empty scripts
  • d3a33fc Test CHECKMULTISIG with m == 0 and n == 0
  • 29c1749 Let tx (in)valid tests use any SCRIPT_VERIFY flag
  • 6380180 Add rejection of non-null CHECKMULTISIG dummy values
  • 21bf3d2 Add tests for BoostAsioToCNetAddr
  • b5ad5e7 Add Python test for -rpcbind and -rpcallowip
  • 9ec0306 Add CODESEPARATOFindAndDelete() tests
  • 75ebced Added many rpc wallet tests
  • 0193fb8 Allow multiple regression tests to run at once
  • 92a6220 Hook up sanity checks
  • 3820e01 Extend and move all crypto tests to crypto_tests.cpp
  • 3f9a019 added list/get received by address/ account tests
  • a90689f Remove timing-based signature cache unit test
  • 236982c Add skiplist unit tests
  • f4b00be Add CChain::GetLocator() unit test
  • b45a6e8 Add test for getblocktemplate longpolling
  • cdf305e Set -discover=0 in regtest framework
  • ed02282 additional test for OP_SIZE in script_valid.json
  • 0072d98 script tests: BOOLAND, BOOLOR decode to integer
  • 833ff16 script tests: values that overflow to 0 are true
  • 4cac5db script tests: value with trailing 0x00 is true
  • 89101c6 script test: test case for 5-byte bools
  • d2d9dc0 script tests: add tests for CHECKMULTISIG limits
  • d789386 Add "it works" test for bitcoin-tx
  • df4d61e Add bitcoin-tx tests
  • aa41ac2 Test IsPushOnly() with invalid push
  • 6022b5d Make script_{valid,invalid}.json validation flags configurable
  • 8138cbe Add automatic script test generation, and actual checksig tests
  • ed27e53 Add coins_tests with a large randomized CCoinViewCache test
  • 9df9cf5 Make SCRIPT_VERIFY_STRICTENC compatible with BIP62
  • dcb9846 Extend getchaintips RPC test
  • 554147a Ensure MINIMALDATA invalid tests can only fail one way
  • dfeec18 Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule
  • 2b62e17 Clearly separate PUSHDATA and numeric argument MINIMALDATA tests
  • 16d78bd Add valid invert of invalid every numeric opcode tests
  • f635269 tests: enable alertnotify test for Windows
  • 7a41614 tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment
  • 5122ea7 tests: fix forknotify.py on windows
  • fa7f8cd tests: remove old pull-tester scripts
  • 7667850 tests: replace the old (unused since Travis) tests with new rpc test scripts
  • f4e0aef Do signature-s negation inside the tests
  • 1837987 Optimize -regtest setgenerate block generation
  • 2db4c8a Fix node ranges in the test framework
  • a8b2ce5 regression test only setmocktime RPC call
  • daf03e7 RPC tests: create initial chain with specific timestamps
  • 8656dbb Port/fix txnmall.sh regression test
  • ca81587 Test the exact order of CHECKMULTISIG sig/pubkey evaluation
  • 7357893 Prioritize and display -testsafemode status in UI
  • f321d6b Add key generation/verification to ECC sanity check
  • 132ea9b miner_tests: Disable checkpoints so they don't fail the subsidy-change test
  • bc6cb41 QA RPC tests: Add tests block block proposals
  • f67a9ce Use deterministically generated script tests
  • 11d7a7d [RPC] add rpc-test for http keep-alive (persistent connections)
  • 34318d7 RPC-test based on invalidateblock for mempool coinbase spends
  • 76ec867 Use actually valid transactions for script tests
  • c8589bf Add actual signature tests
  • e2677d7 Fix smartfees test for change to relay policy
  • 263b65e tests: run sanity checks in tests too
Miscellaneous:
  • 122549f Fix incorrect checkpoint data for testnet3
  • 5bd02cf Log used config file to debug.log on startup
  • 68ba85f Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments
  • e5ee8f0 Remove -beta suffix
  • 38405ac Add comment regarding experimental-use service bits
  • be873f6 Issue warning if collecting RandSeed data failed
  • 8ae973c Allocate more space if necessary in RandSeedAddPerfMon
  • 675bcd5 Correct comment for 15-of-15 p2sh script size
  • fda3fed libsecp256k1 integration
  • 2e36866 Show nodeid instead of addresses in log (for anonymity) unless otherwise requested
  • cd01a5e Enable paranoid corruption checks in LevelDB >= 1.16
  • 9365937 Add comment about never updating nTimeOffset past 199 samples
  • 403c1bf contrib: remove getwork-based pyminer (as getwork API call has been removed)
  • 0c3e101 contrib: Added systemd .service file in order to help distributions integrate bitcoind
  • 0a0878d doc: Add new DNSseed policy
  • 2887bff Update coding style and add .clang-format
  • 5cbda4f Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope
  • b4a72a7 contrib/linearize: split output files based on new-timestamp-year or max-file-size
  • e982b57 Use explicit fflush() instead of setvbuf()
  • 234bfbf contrib: Add init scripts and docs for Upstart and OpenRC
  • 01c2807 Add warning about the merkle-tree algorithm duplicate txid flaw
  • d6712db Also create pid file in non-daemon mode
  • 772ab0e contrib: use batched JSON-RPC in linarize-hashes (optimization)
  • 7ab4358 Update bash-completion for v0.10
  • 6e6a36c contrib: show pull # in prompt for github-merge script
  • 5b9f842 Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293)
  • 4e7c219 Catch UTXO set read errors and shutdown
  • 867c600 Catch LevelDB errors during flush
  • 06ca065 Fix CScriptID(const CScript& in) in empty script case
Credits

Thanks to everyone who contributed to this release:
  • 21E14
  • Adam Weiss
  • Aitor Pazos
  • Alexander Jeng
  • Alex Morcos
  • Alon Muroch
  • Andreas Schildbach
  • Andrew Poelstra
  • Andy Alness
  • Ashley Holman
  • Benedict Chan
  • Ben Holden-Crowther
  • Bryan Bishop
  • BtcDrak
  • Christian von Roques
  • Clinton Christian
  • Cory Fields
  • Cozz Lovan
  • daniel
  • Daniel Kraft
  • David Hill
  • Derek701
  • dexX7
  • dllud
  • Dominyk Tiller
  • Doug
  • elichai
  • elkingtowa
  • ENikS
  • Eric Shaw
  • Federico Bond
  • Francis GASCHET
  • Gavin Andresen
  • Giuseppe Mazzotta
  • Glenn Willen
  • Gregory Maxwell
  • gubatron
  • HarryWu
  • himynameismartin
  • Huang Le
  • Ian Carroll
  • imharrywu
  • Jameson Lopp
  • Janusz Lenar
  • JaSK
  • Jeff Garzik
  • JL2035
  • Johnathan Corgan
  • Jonas Schnelli
  • jtimon
  • Julian Haight
  • Kamil Domanski
  • kazcw
  • kevin
  • kiwigb
  • Kosta Zertsekel
  • LongShao007
  • Luke Dashjr
  • Mark Friedenbach
  • Mathy Vanvoorden
  • Matt Corallo
  • Matthew Bogosian
  • Micha
  • Michael Ford
  • Mike Hearn
  • mrbandrews
  • mruddy
  • ntrgn
  • Otto Allmendinger
  • paveljanik
  • Pavel Vasin
  • Peter Todd
  • phantomcircuit
  • Philip Kaufmann
  • Pieter Wuille
  • pryds
  • randy-waterhouse
  • R E Broadley
  • Rose Toomey
  • Ross Nicoll
  • Roy Badami
  • Ruben Dario Ponticelli
  • Rune K. Svendsen
  • Ryan X. Charles
  • Saivann
  • sandakersmann
  • SergioDemianLerner
  • shshshsh
  • sinetek
  • Stuart Cardall
  • Suhas Daftuar
  • Tawanda Kembo
  • Teran McKinney
  • tm314159
  • Tom Harding
  • Trevin Hofmann
  • Whit J
  • Wladimir J. van der Laan
  • Yoichi Hirai
  • Zak Wilcox
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).
Also lots of thanks to the bitcoin.org website team David A. Harding and Saivann Carignan.
Wladimir
original: http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-February/007480.html
submitted by bitcoin-devlist-bot to bitcoin_devlist [link] [comments]

Raspberry Pi as Bitcoin Pruning Node Bitcoin : Pruned Nodes - Part19 Blockchain pruning How to limit the blockchain size securely Resolve Bitcoin Core Blockchain size problem How to prune the blockchain in Bitcoin-Qt

Cryptocurrency news and discussion. Bitcoin, Litecoin, Ethereum, Ripple, Monero, Dash, NEO, IOTA Lightning Network, SegWit, Augur, Steemit, privacy, ICO, block time ... In this article, we have briefly described Koin Bazar and what are the steps you need to follow before buying a bitcoin? Source: Codementor New: roses All content dtube threespeak life sct photography palnet actifit steem utopian-io steemhunt bitcoin zzan art tasteem spanish travel food appics busy steempress gameplay cryptocurrency tokenbb steemleo ntopaz music spt haejin steemmonsters neoxian kr contest news share2steem dlike steemit blog blockchain india deutsch memeday geldverdienen sportstalk cn gaming cervantes ... Even within the Bitcoin blockchain, there is a move toward using centralized intermediaries to clear payments. In fact, Bitcoin recently underwent a hard fork, with a new cryptocurrency emerging, Bitcoin Cash, after years-long debate. The reason behind it was to scale Bitcoin to more users with Bitcoin Cash blocks effectively increased to 8MB (as opposed to the 1MB of Bitcoin). Add to that the ... The Latest in Bitcoin and Cryptocurrency News. [ June 7, 2020 ] Ellen DeGeneres Is an Anti-Feminist Egomaniac – And She Needs to Be Stopped Bitcoin [ June 7, 2020 ] Why Ethereum is Still the Go-To Platform for Software Development Ethereum [ June 7, 2020 ] As Western Union moves to acquire MoneyGram, what are the implications for Ripple?

[index] [11900] [28785] [48416] [35216] [22948] [43529] [4412] [12047] [306] [13628]

Raspberry Pi as Bitcoin Pruning Node

Download as PDF document: http://www.blockchain-library.com/blockchain_pruning.pdf Please share if you find this useful. Donations are welcome! Bitcoin: 1LeM... Charlie Rose featuring Catherine Wood, C.E.O. and C.I.O. of Ark Investment Management; Paul Vigna, a reporter for The Wall Street Journal; and Lily Katz, a r... What is a blockchain and how do they work? I'll explain why blockchains are so special in simple and plain English! 💰 Want to buy Bitcoin or Ethereum? Buy fo... In this video we explain how to create a bitcoin wallet using Blockchain.info Make sure to backup the wallet and take the securing steps as explained in the video. For buying bitcoin: https ... Bitcoin awakens to a chaotic world following the 2008 financial crisis. With only a few words to his young child, Satoshi disappears, leaving Bitcoin with mo...

#