Jump to content
hash.bg - биткойн форум

admin

Administrators
  • Мнения

    405
  • Присъединил/а се

  • Последно посещение

  • Days Won

    19

Скорошна репутация

  1. Like
    admin got a reaction from batibon in [bitmex]???? Crypto Trader Digest   
    style="height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #FAFAFA;">
    View this email in your browser A Message from Alexander Höptner, CEO of 100x Group
    Earlier this week, I had the honour of speaking to David Ingles on Bloomberg’s Daybreak Asia. We talked about 100x Group, my vision for BitMEX, and all the current happenings in crypto. If you missed it, you can watch it here.

    It's an exciting time for the BitMEX platform. We’re in the midst of launching six new perpetual swap contracts for our traders this month, with DOTUSDT and UNIUSDT now live. Next Wednesday, we’ll list ADAUSDT - arguably the hottest Alt at the moment - and XLMUSDT. There’s definitely more to come. 

    Listing the assets that matter has always been a priority for us. We think big because that’s what our users do too. It helps, of course, to always seek out different perspectives to challenge ourselves, remain creative, and stay intellectually stimulated. We have a piece for you today that fits the bill.

    Here is the latest edition of Crypto Trader Digest from our co-founder Arthur Hayes.

    - Alex (@AlexHoeptner)
    From the Desk of Arthur Hayes

    Pumping Iron




    (Any views expressed in the below are the personal views of the author and should not form the basis for making investment decisions, nor be construed as a recommendation or advice to engage in investment transactions.)

    I used to be an amateur bodybuilder. Sometimes friends who haven't seen me since university remark at how skinny I am. Twice a day workouts and protein shakes were my life during university. Bonus points for anyone who can locate photos from the annual Mr. and Mrs. Penn competitions from 2005 to 2008. The photos used to be on the internet but I can’t find them anymore. The barbell investment strategy resonates uniquely with my past. It consists of constructing a portfolio comprised of beta to participate in the upside, and volatility hedges that compensate and eclipse losses on the downside. This strategy is the simple output of Nassim Nicholas Taleb’s musings about anti-fragility and engineering a life that exhibits positive convexity.

    Managing to find cheap convexity is quite difficult. You might happen upon it by chance, only to have your vega disappear as time tiptoes forward. That is why entrusting a portion of your wealth to a skilled convexity fund manager is wise. I found such a fund, and the man in charge is a veteran OG trader. Every time I sit down for coffee with him, I feel like I’m getting bashed over the head with knowledge. I usually have to go home and brush up on my option Greeks to fully unpack the knowledge he dropped. Vanna and volga were the terms I recently googled after I got home from our latest meeting.

    He is plugged into all the major dealing desks and sees structures that most retail and institutional investors will never witness. As he tells me, “we buy what the banks are selling.” The best part is, sell-side traders don’t really care about the long-term implications of the options structures they price because of an annual bonus cycle. If the bank blows up years down the line because of flawed pricing, it doesn’t matter since they got paid cash money years prior. This allows savvy vol funds to buy long-dated structures that are fundamentally mispriced. But everybody wins, so the dance continues.

    In this world of central bank largess, all institutional money managers are grasping desperately for low risk yield. Therefore banks sell insurance and pension funds structured products with embedded options to enhance yield. The client is always selling volatility. The banks then have to recycle this, so they offload complex structures to sophisticated vol funds.

    I routinely meet up with the fund manager to chat about his view on the markets. This sojourn to the financial fringes always leads to talk about the ways in which central bank policy is distorting the financial markets and society itself. He is steeped in our age’s economic cannon, as one of his university professors was the US Treasury Secretary Janet Yellen. He formally rejects most economic cannon as poppycock, but his understanding of how the plumbing works allows him to purchase the right long tail hedges.

    Let Them Eat Cake

    "In 2021, inflation is coming" – this statement is now common knowledge. Everybody knows, that everybody knows, that inflation will rise this year and into the future. As such, what will the market decide is the asset that everybody should buy to protect their portfolios from the ravages of inflation? I came into the meeting with the fund manager determined to find the answer.

    After our hour-long conversation, it clicked when he said, “Arthur, you have the perfect barbell portfolio for this age— long crypto (via my interest in 100x), and long interest rate volatility via my fund. I wish I had met you 5 years ago.” 

    We talked about Bitcoin for half the meeting. I asked him if he owned any, and he said no, but he tells all his clients they should own it. To him it is the purest expression of inflation because it is the one asset class that central banks are not directly or indirectly managing through their policy mandate. 

    The next few thousand words will unpack our conversation, and at the end of this essay I hope you come away with the following:
    The cryptocurrency complex – led by Bitcoin – is the best hedge against hyperinflation because it resides outside of the mainstream financial system.  Even the best performing traditional asset will never eclipse the returns of the crypto complex during a period of inflation, simply because all assets in the mainstream financial system are manipulated by central banks so that they do not output the correct inflationary warnings signals.
      If policymakers decide to try to avoid the end game of hyperinflation, which has historically always been war and/or revolution, they will raise policy rates to push real interest rates into positive territory. That will crush asset values, including crypto. In this scenario, you want to be long government bond interest rates— usually via interest rate swaptions.  Both scenarios are extreme, and the actions of global policy makers must be extreme due to the endogenous risk built up in the post WWII Bretton Woods / Petrodollar financial system. There will be no muddle through, it’s either or, and subsequently a violent whipsaw between the two modalities.

    A Faustian Bargain

    Our government fiat petrodollar system began in 1971 when Tricky Dick (aka President Nixon) ended the Bretton Woods system by removing the USD convertibility with gold. Then US and Saudi Arabia agreed that if Saudi priced all oil in dollars, the American military would protect the monarchy. Other OPEC nations followed suit, such that oil could only be bought and sold using USD - forcing all other nations to convert to USD on a massive scale in order to participate in what was arguably the most important market in the world at the time. The Petrodollar was born, allowing the US to retain its dominance as the world’s global reserve without having to be pegged to gold.

    Unconstrained by the straightjacket of the gold standard, all currencies were suddenly floating against one another with no hard money anchor. All types of monetary folly were suddenly possible at a scale unprecedented in the history of human civilisation. With a newfound ability to set short and long-term interest rates at the extremes, central bankers of the major economies embarked on a journey to artificially control business cycles. Every time the economy wobbled, the Fed and its peers cut rates. They never let the system completely reset by forcing losses on those who profited in the boom.

    The long OECD government bond has been one of the best risk adjusted trades ever since the early 1980’s. Just about every financial titan we worship today enacted a strategy that essentially levered up on long government bonds and rode them onto a 100-meter mega yacht.

    “Risk Parity” is a prime example. Every time equity vol spikes, I lever up on government bonds. You can call me Ray Dalio and I’ll see you at Burning Man at 10 and Esplanade. The 2019 Roots stage was LIT. Thank you Bridgewater.

    Latin Debt Crisis – drop rates to save the western banks from dodgy loans made to Central and South America.

    US Savings and Loans Crisis – drop rates and guarantee bank deposits in S&L institutions that committed fraud in some cases with how they managed company and depositor funds.

    Russian Debt Crisis / Asian Financial Crisis – drop rates to save western banks and hedge funds from dollar loans made to Russia and South East Asia.

    Subprime Mortgage Crisis – drop rates to save the financial system from over investment in US subprime mortgage credit.

    2012 Euro Crisis – drop rates to save a politically created union with a common currency but not a common government. Super Mario said he “will do whatever it takes”, and he meant it. Corzine was a bit too early in the trade; SFYL MF Global investors.

    2013 Taper Tantrum –  the Fed Chairman Bernanke tried to take the punchbowl away via signaling that in the future the Fed would allow its balance sheet to naturally shrink as bonds matured. The lack of a constant flow of future wampum caused yields to spike, and the Fed subsequently walked back such inflammatory language.

    COVID-19 – drop rates and monetise government deficits to fiscally support the economy which governments shutdown in an attempt to halt the spread of COVID.

    In many cases, these frequent financial crises were themselves caused by central bankers raising rates to normalise or beat off uncomfortably high inflation or financial asset appreciation. Raising rates causes a crisis where the remedy is to drop rates lower than before. Therefore, while all of these crises were painful, they never drove any meaningful changes to how we approach the management of our economies—and the solution to each just sowed the seeds for the next financial flare up.

    Policy makers oscillate between printing money, which causes inflation, and raising rates, which causes asset losses and/or a financial crisis. 40 years of this back and forth has resulted in almost $20 trillion in zero- or negative-yield government and corporate debt, the lowest interest rates in the last 5,000 years, and the most amount of global debt ever in human civilisation…

    Click here to continue reading this edition of Crypto Trader Digest

    –  Arthur Hayes, Co-Founder of 100x Group (@CryptoHayes)
    From BitMEX Research


     
    London 2012 – The Second Bitcoin Conference
    Abstract: In this nostalgic look back into Bitcoin’s history, we go back over eight years, to the London Bitcoin Conference of 2012. This report summarises the talks of the main speakers and tries to capture the radical anti-establishment political viewpoint which was dominant in the Bitcoin community at the time. We also describe some early precursors to technologies such as smart contracts and distributed exchanges, the main development priorities back then, plus the upbeat message given in the 2012 “State of the Coin” address.


      The Growth of Bitcoin Merge Mining
    Abstract: In this report we examine merge mining on the Bitcoin blockchain. In the last year or so, on average each Bitcoin block mined contains around two commitment hashes from other blockchains somewhere in the coinbase transaction, indicating that most miners are conducting multiple forms of merge mining. Currently over 90% of the Bitcoin hashrate appears to be engaging in merge mining of one type or another. There has been considerable growth in merge mining over the last few years and this may be of limited concern to some, due to the small potential security risks and increased mining centralisation pressure. Most of these risks could be mitigated away by blind merge mining, if these newer schemes are adopted.

    Call Me Ishmael

    Abstract: This report examines the concept of brainwallets and in which contexts they may be useful. As an experiment eight Bitcoin private keys were created, using passphrases from popular works of fiction and other media. All the funds were swept away in a short amount of time and in one case, remarkably, the funds were taken in around 0.67 seconds. The report concludes by arguing that brainwallets may not be a safe way to store coins, certainly not by using popular phrases
    in published works.


    Latest News from BitMEX

    BitMEX Platform Hits US$1 Trillion in 365 Day Volume with Excellent Platform Performance

    Trading volume on BitMEX eclipsed the equivalent of US$1 trillion over the past 365 days as we recorded two of the highest trading by volume months in our history in January and February 2021. This milestone follows the completion of our User Verification Programme in December, making the BitMEX platform the largest cryptocurrency derivatives exchange with a fully verified active user base. Over US$335 billion equivalent has been traded following the verification deadline.

    Six New Altcoin Perpetual Swaps Launching on BitMEX in March

    We’re introducing six new Altcoin/USDT quanto perpetual contracts to the BitMEX platform in March as we expand our product offering and list perpetual swaps for our users’ favourite coins. These will be: Cardano (ADA), Polkadot (DOT), EOS, yearn.finance (YFI), Uniswap (UNI), Stellar Lumens (XLM)

    100x Group Provides Third Grant To Bitcoin Maintainer Michael Ford

    100x Group is delighted to announce our continued financial support to Bitcoin Core maintainer Michael Ford. We’re proud to announce a third grant to Michael, of US$100,000, bringing our total financial support to US$250,000 over three years. Social Spotlight
    No articles in this email should be copied or reproduced in whole or in part. The information contained does not constitute research or a recommendation. 

    Neither HDR Global Trading Limited nor any of its affiliates make any representation or warranty as to the accuracy or completeness of the statements or any information contained in these articles and any liability therefor (including in respect of direct, indirect or consequential loss or damage) is expressly disclaimed. This is not providing any financial, economic, legal, accounting or tax advice or recommendations. In addition, the receipt of this email is not to be taken as constituting the giving of investment advice nor to constitute such person a client of the BitMEX trading platform.





    This email was sent to <<Email Address>>
    why did I get this?    unsubscribe from this list    update subscription preferences
    BitMEX · Suite 202, 2nd Floor, Eden Plaza · Eden Island · Mahe · Seychelles

    @media only screen and (max-width: 480px){ table#canspamBar td{font-size:14px !important;} table#canspamBar td a{display:block !important; margin-top:10px !important;} }
  2. Like
    admin got a reaction from vamp111 in [bitmex]???? Crypto Trader Digest   
    style="height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #FAFAFA;">
    View this email in your browser A Message from Alexander Höptner, CEO of 100x Group
    Earlier this week, I had the honour of speaking to David Ingles on Bloomberg’s Daybreak Asia. We talked about 100x Group, my vision for BitMEX, and all the current happenings in crypto. If you missed it, you can watch it here.

    It's an exciting time for the BitMEX platform. We’re in the midst of launching six new perpetual swap contracts for our traders this month, with DOTUSDT and UNIUSDT now live. Next Wednesday, we’ll list ADAUSDT - arguably the hottest Alt at the moment - and XLMUSDT. There’s definitely more to come. 

    Listing the assets that matter has always been a priority for us. We think big because that’s what our users do too. It helps, of course, to always seek out different perspectives to challenge ourselves, remain creative, and stay intellectually stimulated. We have a piece for you today that fits the bill.

    Here is the latest edition of Crypto Trader Digest from our co-founder Arthur Hayes.

    - Alex (@AlexHoeptner)
    From the Desk of Arthur Hayes

    Pumping Iron




    (Any views expressed in the below are the personal views of the author and should not form the basis for making investment decisions, nor be construed as a recommendation or advice to engage in investment transactions.)

    I used to be an amateur bodybuilder. Sometimes friends who haven't seen me since university remark at how skinny I am. Twice a day workouts and protein shakes were my life during university. Bonus points for anyone who can locate photos from the annual Mr. and Mrs. Penn competitions from 2005 to 2008. The photos used to be on the internet but I can’t find them anymore. The barbell investment strategy resonates uniquely with my past. It consists of constructing a portfolio comprised of beta to participate in the upside, and volatility hedges that compensate and eclipse losses on the downside. This strategy is the simple output of Nassim Nicholas Taleb’s musings about anti-fragility and engineering a life that exhibits positive convexity.

    Managing to find cheap convexity is quite difficult. You might happen upon it by chance, only to have your vega disappear as time tiptoes forward. That is why entrusting a portion of your wealth to a skilled convexity fund manager is wise. I found such a fund, and the man in charge is a veteran OG trader. Every time I sit down for coffee with him, I feel like I’m getting bashed over the head with knowledge. I usually have to go home and brush up on my option Greeks to fully unpack the knowledge he dropped. Vanna and volga were the terms I recently googled after I got home from our latest meeting.

    He is plugged into all the major dealing desks and sees structures that most retail and institutional investors will never witness. As he tells me, “we buy what the banks are selling.” The best part is, sell-side traders don’t really care about the long-term implications of the options structures they price because of an annual bonus cycle. If the bank blows up years down the line because of flawed pricing, it doesn’t matter since they got paid cash money years prior. This allows savvy vol funds to buy long-dated structures that are fundamentally mispriced. But everybody wins, so the dance continues.

    In this world of central bank largess, all institutional money managers are grasping desperately for low risk yield. Therefore banks sell insurance and pension funds structured products with embedded options to enhance yield. The client is always selling volatility. The banks then have to recycle this, so they offload complex structures to sophisticated vol funds.

    I routinely meet up with the fund manager to chat about his view on the markets. This sojourn to the financial fringes always leads to talk about the ways in which central bank policy is distorting the financial markets and society itself. He is steeped in our age’s economic cannon, as one of his university professors was the US Treasury Secretary Janet Yellen. He formally rejects most economic cannon as poppycock, but his understanding of how the plumbing works allows him to purchase the right long tail hedges.

    Let Them Eat Cake

    "In 2021, inflation is coming" – this statement is now common knowledge. Everybody knows, that everybody knows, that inflation will rise this year and into the future. As such, what will the market decide is the asset that everybody should buy to protect their portfolios from the ravages of inflation? I came into the meeting with the fund manager determined to find the answer.

    After our hour-long conversation, it clicked when he said, “Arthur, you have the perfect barbell portfolio for this age— long crypto (via my interest in 100x), and long interest rate volatility via my fund. I wish I had met you 5 years ago.” 

    We talked about Bitcoin for half the meeting. I asked him if he owned any, and he said no, but he tells all his clients they should own it. To him it is the purest expression of inflation because it is the one asset class that central banks are not directly or indirectly managing through their policy mandate. 

    The next few thousand words will unpack our conversation, and at the end of this essay I hope you come away with the following:
    The cryptocurrency complex – led by Bitcoin – is the best hedge against hyperinflation because it resides outside of the mainstream financial system.  Even the best performing traditional asset will never eclipse the returns of the crypto complex during a period of inflation, simply because all assets in the mainstream financial system are manipulated by central banks so that they do not output the correct inflationary warnings signals.
      If policymakers decide to try to avoid the end game of hyperinflation, which has historically always been war and/or revolution, they will raise policy rates to push real interest rates into positive territory. That will crush asset values, including crypto. In this scenario, you want to be long government bond interest rates— usually via interest rate swaptions.  Both scenarios are extreme, and the actions of global policy makers must be extreme due to the endogenous risk built up in the post WWII Bretton Woods / Petrodollar financial system. There will be no muddle through, it’s either or, and subsequently a violent whipsaw between the two modalities.

    A Faustian Bargain

    Our government fiat petrodollar system began in 1971 when Tricky Dick (aka President Nixon) ended the Bretton Woods system by removing the USD convertibility with gold. Then US and Saudi Arabia agreed that if Saudi priced all oil in dollars, the American military would protect the monarchy. Other OPEC nations followed suit, such that oil could only be bought and sold using USD - forcing all other nations to convert to USD on a massive scale in order to participate in what was arguably the most important market in the world at the time. The Petrodollar was born, allowing the US to retain its dominance as the world’s global reserve without having to be pegged to gold.

    Unconstrained by the straightjacket of the gold standard, all currencies were suddenly floating against one another with no hard money anchor. All types of monetary folly were suddenly possible at a scale unprecedented in the history of human civilisation. With a newfound ability to set short and long-term interest rates at the extremes, central bankers of the major economies embarked on a journey to artificially control business cycles. Every time the economy wobbled, the Fed and its peers cut rates. They never let the system completely reset by forcing losses on those who profited in the boom.

    The long OECD government bond has been one of the best risk adjusted trades ever since the early 1980’s. Just about every financial titan we worship today enacted a strategy that essentially levered up on long government bonds and rode them onto a 100-meter mega yacht.

    “Risk Parity” is a prime example. Every time equity vol spikes, I lever up on government bonds. You can call me Ray Dalio and I’ll see you at Burning Man at 10 and Esplanade. The 2019 Roots stage was LIT. Thank you Bridgewater.

    Latin Debt Crisis – drop rates to save the western banks from dodgy loans made to Central and South America.

    US Savings and Loans Crisis – drop rates and guarantee bank deposits in S&L institutions that committed fraud in some cases with how they managed company and depositor funds.

    Russian Debt Crisis / Asian Financial Crisis – drop rates to save western banks and hedge funds from dollar loans made to Russia and South East Asia.

    Subprime Mortgage Crisis – drop rates to save the financial system from over investment in US subprime mortgage credit.

    2012 Euro Crisis – drop rates to save a politically created union with a common currency but not a common government. Super Mario said he “will do whatever it takes”, and he meant it. Corzine was a bit too early in the trade; SFYL MF Global investors.

    2013 Taper Tantrum –  the Fed Chairman Bernanke tried to take the punchbowl away via signaling that in the future the Fed would allow its balance sheet to naturally shrink as bonds matured. The lack of a constant flow of future wampum caused yields to spike, and the Fed subsequently walked back such inflammatory language.

    COVID-19 – drop rates and monetise government deficits to fiscally support the economy which governments shutdown in an attempt to halt the spread of COVID.

    In many cases, these frequent financial crises were themselves caused by central bankers raising rates to normalise or beat off uncomfortably high inflation or financial asset appreciation. Raising rates causes a crisis where the remedy is to drop rates lower than before. Therefore, while all of these crises were painful, they never drove any meaningful changes to how we approach the management of our economies—and the solution to each just sowed the seeds for the next financial flare up.

    Policy makers oscillate between printing money, which causes inflation, and raising rates, which causes asset losses and/or a financial crisis. 40 years of this back and forth has resulted in almost $20 trillion in zero- or negative-yield government and corporate debt, the lowest interest rates in the last 5,000 years, and the most amount of global debt ever in human civilisation…

    Click here to continue reading this edition of Crypto Trader Digest

    –  Arthur Hayes, Co-Founder of 100x Group (@CryptoHayes)
    From BitMEX Research


     
    London 2012 – The Second Bitcoin Conference
    Abstract: In this nostalgic look back into Bitcoin’s history, we go back over eight years, to the London Bitcoin Conference of 2012. This report summarises the talks of the main speakers and tries to capture the radical anti-establishment political viewpoint which was dominant in the Bitcoin community at the time. We also describe some early precursors to technologies such as smart contracts and distributed exchanges, the main development priorities back then, plus the upbeat message given in the 2012 “State of the Coin” address.


      The Growth of Bitcoin Merge Mining
    Abstract: In this report we examine merge mining on the Bitcoin blockchain. In the last year or so, on average each Bitcoin block mined contains around two commitment hashes from other blockchains somewhere in the coinbase transaction, indicating that most miners are conducting multiple forms of merge mining. Currently over 90% of the Bitcoin hashrate appears to be engaging in merge mining of one type or another. There has been considerable growth in merge mining over the last few years and this may be of limited concern to some, due to the small potential security risks and increased mining centralisation pressure. Most of these risks could be mitigated away by blind merge mining, if these newer schemes are adopted.

    Call Me Ishmael

    Abstract: This report examines the concept of brainwallets and in which contexts they may be useful. As an experiment eight Bitcoin private keys were created, using passphrases from popular works of fiction and other media. All the funds were swept away in a short amount of time and in one case, remarkably, the funds were taken in around 0.67 seconds. The report concludes by arguing that brainwallets may not be a safe way to store coins, certainly not by using popular phrases
    in published works.


    Latest News from BitMEX

    BitMEX Platform Hits US$1 Trillion in 365 Day Volume with Excellent Platform Performance

    Trading volume on BitMEX eclipsed the equivalent of US$1 trillion over the past 365 days as we recorded two of the highest trading by volume months in our history in January and February 2021. This milestone follows the completion of our User Verification Programme in December, making the BitMEX platform the largest cryptocurrency derivatives exchange with a fully verified active user base. Over US$335 billion equivalent has been traded following the verification deadline.

    Six New Altcoin Perpetual Swaps Launching on BitMEX in March

    We’re introducing six new Altcoin/USDT quanto perpetual contracts to the BitMEX platform in March as we expand our product offering and list perpetual swaps for our users’ favourite coins. These will be: Cardano (ADA), Polkadot (DOT), EOS, yearn.finance (YFI), Uniswap (UNI), Stellar Lumens (XLM)

    100x Group Provides Third Grant To Bitcoin Maintainer Michael Ford

    100x Group is delighted to announce our continued financial support to Bitcoin Core maintainer Michael Ford. We’re proud to announce a third grant to Michael, of US$100,000, bringing our total financial support to US$250,000 over three years. Social Spotlight
    No articles in this email should be copied or reproduced in whole or in part. The information contained does not constitute research or a recommendation. 

    Neither HDR Global Trading Limited nor any of its affiliates make any representation or warranty as to the accuracy or completeness of the statements or any information contained in these articles and any liability therefor (including in respect of direct, indirect or consequential loss or damage) is expressly disclaimed. This is not providing any financial, economic, legal, accounting or tax advice or recommendations. In addition, the receipt of this email is not to be taken as constituting the giving of investment advice nor to constitute such person a client of the BitMEX trading platform.





    This email was sent to <<Email Address>>
    why did I get this?    unsubscribe from this list    update subscription preferences
    BitMEX · Suite 202, 2nd Floor, Eden Plaza · Eden Island · Mahe · Seychelles

    @media only screen and (max-width: 480px){ table#canspamBar td{font-size:14px !important;} table#canspamBar td a{display:block !important; margin-top:10px !important;} }
  3. Like
    admin got a reaction from vamp111 in [bitmex]???? Crypto Trader Digest   
    style="margin: 0;color: black;">
    View this email in a browser
    BitMEX Crypto Trader Digest August 27, 2020

    From The Desk of Arthur Hayes, Co-Founder & CEO, 100x Group
    Dreams of a Peasant

    (Source: The Grapes of Wrath - 1940)

    I lack access to nightclubs and most other forms of revelry; therefore, I decided to become a crypto peasant. I’m farming the latest and greatest shitcoin DeFi projects. While I deride many of these projects as activity resulting in economic waste, there is an underlying proto-banking infrastructure that is being built on the rails of Ethereum and other protocols. Let this be my first treatise into the what drives demand and supply of crypto credit and the institutions that are being built to service these needs.
     
    The Demand for Crypto Credit
     
    There are only two use cases that I would lend against.
    Miners who borrow fiat (usually US dollars or Renminbi) to pay for electricity, rent, and salaries. They collateralise these loans with their mining machines and/or on balance sheet Bitcoin or Ether. Speculators that need fiat or crypto to trade with leverage. To short specs need to borrow the shitcoin itself, or to go yolo long they usually need dollars. These loans are usually not collateralised. The specs pay so much in fees, it behooves the trading platform to lend them capital. Even if many blow up, trading platforms with proper margin call protocols will be able to protect their capital. Why can’t a small business or individual crowded out of the fixed income markets due to crony capitalism use the crypto capital markets instead?
     
    Borrowing Crypto:
    Currently there are no industries where the entire value chain from producer to consumer pays entirely in Bitcoin. Imagine if you could only buy bottles of Dom P in Bitcoin. That would mean the French producer paid for their inputs in Bitcoin, the wholesaler paid the producer in Bitcoin, the nightclub paid its distributor in Bitcoin, and the end bubbly water consumer paid in Bitcoin as well. If your cost of production is not natively in Bitcoin, it is foolish to price your good in that currency. It also means that your cost of capital should not be in Bitcoin. When this becomes reality, then it will be possible to lend to actual businesses in Bitcoin. Personal loans are also not possible in Bitcoin. The proletariat (yeah that’s you, just because you wear business casual on your Zoom call from the waist up doesn’t mean you aren’t a replaceable cog in the service economy) earns fiat. There are many who would gladly take a Bitcoin loan at a low interest rate, but if the price of Bitcoin rises, they earn cheap but have to pay back expensive. That is a recipe for bankruptcy and NPLs.  
    Borrowing Fiat Stablecoin:
    It is absolutely feasible for an SME to borrow Tether or another near USD equivalent stable coin. However, outside of our little sandbox, not many vendors accept USDT for payment. Therefore, the borrower would borrow Tether, exchange it for USD (paying fees), then pay for the goods they need. At redemption, they would need to conduct the reverse, exchange USD revenue for Tether (paying fees), and then repay their Tether loans. While this is definitely doable, it isn’t easy. You might think it is, but that’s because you are in a crypto bubble. The bigger problem is that there are no proto-banks set up to conduct proper credit analysis on SMEs entirely over the internet across multiple legal jurisdictions. That is hard work, and risky. It’s what banks used to do, before central banks crushed the yield curve. Better to lend to people and companies whose debt is guaranteed by a central bank, than take actual risk lending to productive SMEs. If you are borrowing a stablecoin as an individual, you probably have exhausted all other options. Credit cards, personal loans, home equity loans etc. while expensive, are available. If you live in a place where the credit conduits are so broken, or your credit is so bad these products are not available to you, the person lending you a stablecoin is going to learn the meaning of adverse selection the hard way.  For those of you whose brains have shrunk from too much TikTok, let me summarise.
     
    I will lend fiat to miners because they have an asset that produces the most liquid and largest market cap cryptos Bitcoin and Ether. I would also lend them Bitcoin or Ether to purchase machines because the machines also produce Bitcoin and Ether.
     
    I will lend to individual speculators of trading firms inside my own walled garden. I know they will generate fees by trading on leverage, and I know that I can call my loan back through the margin call process.
     
    I will not lend to SMEs in either crypto or fiat stablecoin. SMEs’ revenue and expenses are in fiat, their cost of capital must also be in fiat lest the price of Bitcoin rises. I lack the ability to do proper credit scoring, nor is it easy to use a stablecoin outside of the crypto capital markets.
     
    I will not lend to individuals in either crypto or fiat stablecoin. Individuals who live in places with zero legal protections for foreign lenders, or have such shitty credit that none of the standard commercial banking credit products are offered to them are terrible debtors. 
     
    The Supply of Crypto Credit
     
    Bitcoin and Ether Hodlers
     
    You know who you are. You ain’t selling no matter what the price. However, while you are chilling in the basement waiting for Bitcoin to hit $20,000 and Ether to hit $1,200, you would like to earn some yield. Your biggest worry when custodying your crypto with third parties is whether they can actually keep it secure. If you are a mETH head, you also worry about sloppy solidity code rendering the smart contract inaccessible, and your funds go poof!
     
    You trust no one, just code. You don't trust much code either. You assume that anyone borrowing these funds from you is going to do a runner. If you have been playing in this sandbox long enough, you have seen and experienced all sorts of scams and transacted with all sorts of licentious rakes. As a result, you will only lend to very large and well-known platforms (large exchanges, large miners, large proto-banks).
     
    Even if these platforms do not provide you collateral, they make so much money from their business activities that not paying you back would do immense damage to their reputation. A positive reputation in this ecosystem is essential. We don’t have a national government forcing its citizens to use our services even when we lie, cheat, and steal from them. Banking licenses are great things if you can get one. Bad behaviour occurs in crypto capital markets, but the scale is tiny, and you can’t behave that way too long before the word is out on social media and your customers flee.
     
    Fiat Stablecoin Lenders
     
    Back when I started trading Bitcoin in 2013, the 2nd best risk-adjusted, zero price delta trade was to lend USD at the FRR on Bitfinex. The rate sometimes approached 1% per day. I knew many people who wired their dollars in, deposited on the Bitfinex lending markets, and earned a phat yield.
     
    What was number one? The number one best risk adjusted, zero price delta trade was cash and carry. The futures basis routinely was over 200% PA. I get hot and bothered with the basis jumps above 5% now.
     
    These days for those seeking to earn more than 0% or negative in Europe and Japan, take their dollars, buy Tether or another fiat stablecoin, and stake it somewhere.
     
    As much as we like to shit on the USD, the crypto capital markets like the rest of the world are intrinsically short the USD. Remember that the blockchains that support a multi-centa-Billion market cap use energy. Energy is priced in USD. Therefore, miners must find USD by selling mined crypto, or borrowing against their crypto. Speculators are usually net long. To get net long you need to borrow fiat to purchase more crypto.
     
    A note on why speculators are net long. Bitcoin and other shitcoins can only fall to zero. But the upside is infinity. Cryptos are also insanely volatile. When you combine high volatility, unlimited upside, and limited downside you have an attractive call option. Therefore, as a speculator you should always look out for what to buy on margin, not sell. You aren’t guaranteed to make money, but you give yourself the best odds to succeed.
     
    As savers buckle under zero and negative rates, they will become risk seeking with their capital. The crypto capital markets are the best place to earn serious positive yields if you are willing to take some modicum of risk.
     
    The Intermediaries
     
    We have demand, we have supply: let’s dance. What types of players stand in the middle and collect the crumbs?
     
    Exchanges
     
    The exchange business when done well at scale in crypto is very profitable. While traders pay low to zero fees to execute spot trades, they always pay for margin. Therefore, the more capital that can be funneled to risk-seeking speculators, the more trading volume, the more fee income. Exchange free cash flow (FCF) should be given to speculators at a price in order for them to trade more. At a certain point, the amount of capital desired by speculators will eclipse what the exchange can provide. At that point, the exchange will solicit capital from others.
     
    Exchanges custody billions of dollars worth of crypto. As a depositor you trust that the exchange will secure it properly and not steal it. You implicitly trust the operators. Bad news spreads rapidly on social media. Any hint that the exchange is not a good credit, could metastasize into an exodus of depositors. Traders with zero balances don’t pay fees.
     
    Exchange operators must maintain pristine reputations in the eyes of the community. The largest exchanges have the most to lose by stealing. Therefore, when they say I will pay you 1% a month to deposit USDT with me, you believe they can pay interest and principal. The exchange is the cheapest of all the intermediaries I will talk about because they have the most to lose by cheating.
     
    The exchange will then take that 1% per month capital, and lend it to speculators at 10bps per day as an example. If the exchange gets 100% take-up, they make a spread of 2% (10bps * 30 days – 1%) per month. They also get to charge trading fees as speculators churn their books. The largest margin trading platforms all have schemes to raise assets with which to on-lend to speculators.
     
    Lending Platforms
     
    These platforms don’t own an exchange, and therefore do more traditional banking functions. They don’t have an intrinsic, profitable use case for the capital raised, so they match lender and borrower. Popular platforms such as BlockFi, Genesis, RenRenBit, Babel Finance, and MatrixPort conduct this business.
     
    In the retail market, they offer very attractive rates for crypto and stablecoins. These are uncollateralised loans. In the OTC market, they will bid for size blocks of different coins depending on where they have massive demand and supply imbalances. These large trades tend to be collateralised. This market is very nascent and will be immensely important as the demand for credit in our ecosystem expands. This is the precursor to a well-functioning repo market where institutional lenders and borrowers can transact purely on trust.
     
    The borrowers are the following:
    Miners who need to tender Bitcoin or Ether for fiat. The lending platform will demand over-collateralisation to protect their depositors. A typical structure is a borrower can borrow 50% of the USD value of their Bitcoin. If the price of Bitcoin drops 30%, a margin call is issued, if the price drops further without a collateral top-up, the Bitcoin collateral is liquidated. This flow is part of the reason why the March 13th sell-off was so vicious. Bitcoin and Ether collateral had to be liquidated to protect depositors. Hodlers who need fiat liquidity. Living the high life still requires a decent amount of fiat. Hodlers wishing to move out of the basement into better digs need to come up with statist ducats. These borrowers will also overcollateralise similar to miners. Exchanges need more deposits to lend to speculators. In a bull market, speculators will pay ridiculous rates because the assets they trade are appreciating so quickly. The exchanges will approach other intermediaries and borrow crypto or fiat to use on their platform. Because of the reasons mentioned above, exchanges are such good credits that they will usually not provide any collateral. Large trading houses are always on the lookout to use other people’s money to enhance returns. It is still very capital intensive to trade across all the major exchanges. Given the best shops also trade in the traditional markets, the crypto traders are always battling for more capital from the head office at reasonable rates. I know that some shops' traders get face ripped by their internal treasury desks. Some shops will provide USD as collateral to obtain crypto. Some shops, because of how established they are, can borrow without collateral. These lending platforms are the closest thing our ecosystem has to banks. They bid for deposits by paying high rates of interest. They conduct credit analysis on borrowers, determine how much leverage to extend, and call loans to protect their depositors. For their efforts, they earn net interest margin (NIM).
     
    Where these platforms differ from traditional commercial banks, is they cannot expand the money supply in the crypto capital markets. They conduct fully reserved banking. They can only loan funds equal to their deposits.

    These platforms could create their own token and attempt to convince the market this token has a claim to income of the lender. This token could then be used as a cash equivalent on exchanges or to pay for crypto goods and services. If only someone was that audacious to mint currency out of thin air, and convince the market it was worth more than zero… I think you know where this is going.
     
    I’m A Fucking Farmer – The DeFi Proto-Bank
     
    Why not “decentralise” the functions of a lender? Why not create programmable finance? Why not have this borrowing and lending activity all live on blockchain and be completely transparent?
     
    This is the dream. Various projects took up this challenge and created a whole ecosystem of dApps that attempt to perform the functions of a bank in a decentralised and trustless fashion.
     
    Here is a very simple example of a DeFi lending project. There are so many more beautiful flavours, but let’s keep it simple:
    Select your protocol on which to build your DeFi bank. The most popular choice so far is Ethereum. That means the project using the ERC-20 standard. Create a smart contract where users can deposit a select number of ERC-20 tokens and earn yield. The most popular tokens are wrapped Bitcoin (e.g. WBTC, renBTC), ETH, DAI, USDT, USDC etc. Create a smart contract where the borrower can deposit collateral. E.g. I want to borrow ETH, so I will overcollateralise with WBTC. I deposit my collateral into a smart contract, and out the other side I receive ETH into my wallet. If the price of ETH/BTC rises (ETH is worth more Bitcoin), my WBTC collateral is liquidated on a decentralised exchange (Uniswap is all the rage right now) and ETH is returned to the lender. I can keep my ETH, but I have lost my WBTC collateral on the other side. The project either takes a fee in the form of a cut of the interest, or a fee for just arranging the trade.
     a.     The platform also issues their own native token and the only way to earn it is to participate on the platform as either a lender, borrower, or both. This business model is that of a proto-bank engaged in fully reserved lending. Loans Outstanding <= Deposits. The part that makes this interesting is that it is programmable finance, where the owners are those who actually use the service. Contrast this with a typical bank where common stockholders are governments, large asset managers, and some retail investors. Ownership of equity is conferred through purchase of shares, rather than by usage of the service.
     
    Tokenomics (you know, "The Economics of Tokens", it’s going to be a new major at Wharton taught by Dan Larimer) is fascinating, and where the activity known as yield farming originated. Using the above example, I create a fixed supply of tokens and the only way to earn these tokens is to engage in borrowing or lending. You can of course purchase them in the open market from holders who wish to sell.
     
    The token has the following attributes:
    All fee income to the project is passed onto the token holders net of OPEX costs. Token holders can vote by submitting improvement proposals and vote via staking their token. Here are some things that holders can vote on:
     a.     OPEX costs - the biggest cost for an ERC-20 token is the Ethereum network’s gas fees.
     b.     A list of approved uncollateralised borrowers. E.g. Token holders could vote to allow an exchange the ability to borrow against depositors at the market clearing rate without collateral.
     c.     Leverage ratios for collateralised lending.
     d.     Fees charged by the platform. The next question is how do you value such a token in the open market? As a holder of the token, I earn a yield denoted by the following formulas:
     
    My Yearly Token Income = # of Tokens I hold * [Fee Income / Total Supply of Tokens]
     
    My Token Yearly Yield = My Token Yearly Income / [Price Paid per Token * # of Tokens]
     
    Let’s say that yield was 5%. Ignoring the risk that the smart contract is constructed poorly, I must evaluate this investment against something similar. If all loans are at least fully collateralised I don’t have to worry about the credit quality of the loan book. I am also assuming I can sell collateral in the event of a margin call with no market slippage. That means the security I should evaluate my earnings against are US Treasuries. The US Government can print money at will, so in USD terms it is risk free. There is political risk that they decide not to print money to payback holders, but barring that, it is risk free in nominal USD terms. We are not talking about the purchasing power of the USD after rampant M2 inflation, just the fact that if you lent $100, you get back $100.
     
    Short term (<2 years) US Treasury securities yield slightly more than 0%. Therefore, investing in a token that yields >0% is a better use of your capital.
     
    The risks to your investment in this DeFi proto-bank are the following:
    The lower the amount of assets locked in smart contracts, the lower the potential fee revenue. Therefore, if after you purchase the token, the AUC declines, your anticipated yearly fee income will be insufficient to generate enough yield. The loan book takes impairment. If all loans are at least 100% collateralised, that would mean that when attempting to liquidate collateral, market liquidity did not allow the protocol to recover all the value of the lent currency. E.g. You borrow $100 USDT against $110 worth of WBTC, the price of WBTC falls 10%, the protocol liquidates WBTC against USDT and is only able to recover 90 USDT. Now the loss of 10 USDT must be taken from the pool of retained earnings, or depositors must receive a haircut proportional to their % in the total deposit asset pool. If the loan book lends to certain perceived high-quality credits like exchanges with less than 100% collateral, that borrower could default. A similar sort of income or principle impairment would occur similar to point 2. A crypto bank robbery happens. That is the result of an intentional or unintentional bug in the smart contract code that syphons assets out of the project, or they become inaccessible. This is the bull case for your yield to rise in the future:
    The protocol is able to gather more and more AUC, thus increasing the potential fees earned. The token holders vote on appropriate credit policies that allow for the extension of credit that is not 100% collateralised at an acceptable risk level. That means that the default impairment cost is less than the interest income earned from these riskier activities. The majority of DeFi projects require staking and some sort of uneconomical activity. As a reward for your participation you are able to farm a token created out of thin air with dubious ownership claims to any potential income stream of the project. The memes are hilarious (YAM, BASED, etc.), and the fact that these tokens are worth more than zero is a testament to the financial repression hoisted upon savers by the all-powerful central bankers.
     
    When faced with severe income inequality, and free money (for the fortunate), financial speculation will surge. Would you rather work for 30 years for stagnant to negative real income gains in service to a mega-corporation, or would you rather come play in the intellectual casinos that are the financial markets? At least at the casino you can visualise yourself hitting it big quickly. I imagine many “essential” workers are just so happy they can serve humanity for below average wages.
     
    Against this potentially dystopian backdrop where greater than 50% of the population is on some sort of basic income, trading worthless memes under the guise of innovative technology ceases to be so daft.
     
    The Holy Grail of Bitcoin
     
    For Bitcoin to be true money, the cost of capital for certain businesses and individuals must be priced natively in Bitcoin. Any linkage to a fiat currency relegates the Bitcoin capital markets to be perennially short US dollars. All points in the value-added chain of goods production must be able to borrow cheaply in Bitcoin.
     
    The current miner and speculator use case for crypto and stablecoin fixed income products is a great first step. This demand laid the groundwork for the rise of DeFi yield farming. While the majority of activity is economically wasteful, the underlying ability to build an ecosystem of dApps enabling programmable finance is a big improvement over the slow analogue expensive legacy financial system. The rise of the DeFi proto-bank where users own the rights to the NIM earned, will usher in a wave of inclusive banking services for the businesses and individuals crowded out of the capital markets by corporate socialism.
     
    That is the dream of the DeFi proto-bank. It will almost certainly not materialise during this bull market. But that narrative will attract, hopefully, hundreds of billions of USD capital into the ecosystem. A sustained pump needs a powerful narrative. I believe this can serve that purpose.
     
    I am laser-focused on how 100x can be a cornerstone in the fixed income scaffolding of the crypto capital markets. Watch this space, we are working on some cool shit.
     
    A Note on my DeFi Shitcoin Trading
     
    I, like many other punters, am enjoying yield farming meme tokens. To put this degenerate behaviour into context:
    I fully expect to lose most of all of the money I “invest” into any of these projects. In my head I like to believe I can read market sentiment and get out at the top of the bull market. But in reality, like most other traders, I will buy high, hold, hold, hold, and sell well after the top. I view the destruction of my capital as the only way to learn what the next wave of products and services should be built in this space by 100x. You can never find a truffle if you aren’t willing to wallow in the dirt. The size of my positions are tiny. My core investments of gold and silver miners, physical gold, and my interest in 100x dwarf any investment in YAM, YFI, DOT, or any other piece of shit token I decide to buy. There are no nightclubs. I am replacing bubbly water spend, with shitcoins. At least I’m learning something.  
    Global Macro
     
    I, like many other pseudo intellectual keyboard warriors, have a massive upside price target for Bitcoin. I will get to that in the next digest. But Q4 is going to be a humdinger.
     
    The first title fight of 2020 is Trump vs. Not Trump. The Not Trump camp doesn’t deserve to be mentioned by name as they are so uninspiring and status quo, they do disservice to the so-called progressive party of American politics. I am excited for a few months of dank memes, pithy one-liners, and a gross oversimplification of the ills of the American empire.

    The financial markets are going to whipsaw as politicians contort themselves to continue feeding at the trough. This unfortunately will have lasting effects on everyone’s lives across the globe. Out of the chaos, more people will mistrust centralised authority and look for ways to protect their physical persons and capital from the wanton destruction waged upon them by their rulers.
     
    My pocket rockets are primed and ready. 加油 Gold and Bitcoin.
     
    From The BitMEX Research Desk
    The Crisis Happened: What’s Next?
    Abstract: Due to numerous requests, we provide a follow up to our February 2019 piece, “Anatomy Of The Next Global Financial Crisis”. We update our thinking following the pandemic driven crash and liquidity driven recovery in financial markets. We no longer think long dated volatility related bets are an effective way to protect portfolios because they are now too expensive. We believe that inflation linked government bonds could be the main pillar going forwards as part of one’s protection strategies, as more of a tactical position. While gold, Bitcoin and to a lesser extent the yen, could be the other main pillars.


    (Source: Bloomberg; US consumer price index since 1914)
      Subtleties and Security
    Abstract: This piece is written by Bitcoin Core maintainer and BitMEX guest writer, Michael Ford. Michael is the first recipient of the expanding 100x Group Bitcoin Developer Grant Program, formerly the HDR Global Trading Bitcoin Developer Grant Program. This follows on from Michael’s first piece for us: Build Systems & Security – Bitcoin Is Improving. In this new piece, Michael explains four security improvements to Bitcoin Core that he has been working on. This work illustrates the importance of testing on multiple platforms.
     
    Battle For ASIC Supremacy
    Abstract: We look at the history of Bitcoin mining ASIC manufacturers, in particular the reported energy efficiency of the mining machines. We analyse the five main players in the market today, with a focus on Canaan and its profit warning right after its IPO. We then evaluate Ebang’s recent IPO prospectus and comment on the challenges the group faces with respect to its market positioning, profitability and geo-politics. We assess MicroBT, who are gaining significant traction in the market, obtaining share from Bitmain, who appear to be facing an almost comically abysmal corporate governance situation. In conclusion we think that post the 2020 Bitcoin halving, further industry consolidation is likely in both the ASIC manufacturing sector and mining farm operating sector.

    (Source: Manufacturer websites, BitMEX Research; Reported Miner Efficiency (J/TH) vs product launch date)
     
    Call to Action: Testing and Improving asmap
    Abstract: This piece is written by Bitcoin Core contributor and researcher, Gleb Naumenko. Gleb is a recipient of 100x Group’s Bitcoin Developer Grant Program. In this article Gleb writes about how Bitcoin Core connects to other nodes on the network. He first provides some background about the latest default connection policy in Bitcoin Core 0.20.0, before explaining why there may be weaknesses in the current system which could make it easier for malicious actors to initiate an eclipse attack. Gleb goes on to talk about a potential more robust experimental peer selection methodology called “asmap”. Gleb then provides instructions for testing this new feature. Testing would help in ensuring the best security practices become more accessible.

    (Illustration of Bitcoin Core’s new peer selection methodology)
     
    Bitcoin Softfork Activation Methodology
    Abstract: Bitcoin’s Taproot softfork upgrade looks almost ready and the Bitcoin community has started to seriously discuss the potential activation methodologies. In this piece, we summarise the main choices when it comes to the activation and discuss the most significant points of contention. We conclude by postulating that there is no perfect activating methodology. Any activation approach could set a bad precedent, which could be exploited at some future date. However, although there is a lot of “bikeshedding” occurring, due to the lack of contention about this particular upgrade, the exact activating path taken at this point may not be particularly critical. A potential partial solution to some of the dilemmas present and possible way forward could be for Bitcoin Core to release a client with a relatively passive activation logic and for other community members to follow on from this by releasing clients that force the same activation in a slightly more assertive manner.

     
    Antminer S19 Pro vs Whatsminer M30S+
    Abstract: We compare and measure various performance metrics for two of the latest and most energy efficient Bitcoin mining products, MicroBT’s Whatsminer M30S+ and Bitmain’s Antminer S19 Pro. Obviously the more expensive 7nm Bitmain product is more powerful, however the miners are pretty similar in terms of output. Our data over a short three day period shows that the Bitmain miner has slightly stronger performance than the Whatsminer, however the Whatsminer appears to have superior stability. In general, both machines are impressive and we predict the two companies will be in neck and neck competition over the next few years.

     
    Antminer S19 Pro vs Whatsminer M30S+ (Part 2) – Thermal Image Analysis
    Abstract: We provide a follow up to our previous piece, a comparison between the Antminer S19 Pro and the Whatsminer M30S+. We focus on the thermal characteristics of the miners and provide thermal images. The thermal images indicate more clearly that the Whatsminer has a higher operating temperature than the Antminer (perhaps by design), while both devices have a similar impact heating the external environment.

    (Thermal image of the Whatsminer M30S+)
     
    Risk Disclaimer

    No articles in this email should be copied or reproduced in whole or in part. The information contained does not constitute research or a recommendation. 

    Neither HDR Global Trading Limited nor any of its affiliates make any representation or warranty as to the accuracy or completeness of the statements or any information contained in these articles and any liability therefor (including in respect of direct, indirect or consequential loss or damage) is expressly disclaimed. This is not providing any financial, economic, legal, accounting or tax advice or recommendations. In addition, the receipt of this email is not to be taken as constituting the giving of investment advice nor to constitute such person a client of the BitMEX trading platform. Contact Us | Subscribe | Unsubscribe
  4. Like
    admin got a reaction from vamp111 in [bitcoin_core] Bitcoin Core version 0.20.0 released   
    0.20.0 Release Notes
    Bitcoin Core version 0.20.0 is now available from:
    https://bitcoincore.org/bin/bitcoin-core-0.20.0/
    This release includes new features, various bug fixes and performance improvements, as well as updated translations.
    Please report bugs using the issue tracker at GitHub:
    https://github.com/bitcoin/bitcoin/issues
    To receive security and update notifications, please subscribe to:
    https://bitcoincore.org/en/list/announcements/join/
    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 in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).
    Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported.
    Compatibility
    Bitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems.
    From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no longer supported. Additionally, Bitcoin Core does not yet change appearance when macOS “dark mode” is activated.
    Known Bugs
    The process for generating the source code release (“tarball”) has changed in an effort to make it more complete, however, there are a few regressions in this release:
    The generated configure script is currently missing, and you will need to install autotools and run ./autogen.sh before you can run ./configure. This is the same as when checking out from git.
    Instead of running make simply, you should instead run BITCOIN_GENBUILD_NO_GIT=1 make.
    Notable changes
    P2P and network changes
    Removal of BIP61 reject network messages from Bitcoin Core
    The -enablebip61 command line option to enable BIP61 has been removed. (#17004)
    This feature has been disabled by default since Bitcoin Core version 0.18.0. Nodes on the network can not generally be trusted to send valid messages (including reject messages), so this should only ever be used when connected to a trusted node. Please use the alternatives recommended below if you rely on this removed feature:
    Testing or debugging of implementations of the Bitcoin P2P network protocol should be done by inspecting the log messages that are produced by a recent version of Bitcoin Core. Bitcoin Core logs debug messages (-debug=<category>) to a stream (-printtoconsole) or to a file (-debuglogfile=<debug.log>).
    Testing the validity of a block can be achieved by specific RPCs:
    submitblock
    getblocktemplate with 'mode' set to 'proposal' for blocks with potentially invalid POW
    Testing the validity of a transaction can be achieved by specific RPCs:
    sendrawtransaction
    testmempoolaccept
    Wallets should not assume a transaction has propagated to the network just because there are no reject messages. Instead, listen for the transaction to be announced by other peers on the network. Wallets should not assume a lack of reject messages means a transaction pays an appropriate fee. Instead, set fees using fee estimation and use replace-by-fee to increase a transaction’s fee if it hasn’t confirmed within the desired amount of time.
    The removal of BIP61 reject message support also has the following minor RPC and logging implications:
    testmempoolaccept and sendrawtransaction no longer return the P2P reject code when a transaction is not accepted to the mempool. They still return the verbal reject reason.
    Log messages that previously reported the reject code when a transaction was not accepted to the mempool now no longer report the reject code. The reason for rejection is still reported.
    Updated RPCs
    The RPCs which accept descriptors now accept the new sortedmulti(...) descriptor type which supports multisig scripts where the public keys are sorted lexicographically in the resulting script. (#17056)
    The walletprocesspsbt and walletcreatefundedpsbt RPCs now include BIP32 derivation paths by default for public keys if we know them. This can be disabled by setting the bip32derivs parameter to false. (#17264)
    The bumpfee RPC’s parameter totalFee, which was deprecated in 0.19, has been removed. (#18312)
    The bumpfee RPC will return a PSBT when used with wallets that have private keys disabled. (#16373)
    The getpeerinfo RPC now includes a mapped_as field to indicate the mapped Autonomous System used for diversifying peer selection. See the -asmap configuration option described below in New Settings. (#16702)
    The createmultisig and addmultisigaddress RPCs now return an output script descriptor for the newly created address. (#18032)
    Build System
    OpenSSL is no longer used by Bitcoin Core. (#17265)
    BIP70 support has been fully removed from Bitcoin Core. The --enable-bip70 option remains, but it will throw an error during configure. (#17165)
    glibc 2.17 or greater is now required to run the release binaries. This retains compatibility with RHEL 7, CentOS 7, Debian 8 and Ubuntu 14.04 LTS. (#17538)
    The source code archives that are provided with gitian builds no longer contain any autotools artifacts. Therefore, to build from such source, a user should run the ./autogen.sh script from the root of the unpacked archive. This implies that autotools and other required packages are installed on the user’s system. (#18331)
    New settings
    New rpcwhitelist and rpcwhitelistdefault configuration parameters allow giving certain RPC users permissions to only some RPC calls. (#12763)
    A new -asmap configuration option has been added to diversify the node’s network connections by mapping IP addresses Autonomous System Numbers (ASNs) and then limiting the number of connections made to any single ASN. See issue #16599, PR #16702, and the bitcoind help for more information. This option is experimental and subject to removal or breaking changes in future releases, so the legacy /16 prefix mapping of IP addresses remains the default. (#16702)
    Updated settings
    All custom settings configured when Bitcoin Core starts are now written to the debug.log file to assist troubleshooting. (#16115)
    Importing blocks upon startup via the bootstrap.dat file no longer occurs by default. The file must now be specified with -loadblock=<file>. (#17044)
    The -debug=db logging category has been renamed to -debug=walletdb to distinguish it from coindb. The -debug=db option has been deprecated and will be removed in the next major release. (#17410)
    The -walletnotify configuration parameter will now replace any %w in its argument with the name of the wallet generating the notification. This is not supported on Windows. (#13339)
    Removed settings
    The -whitelistforcerelay configuration parameter has been removed after it was discovered that it was rendered ineffective in version 0.13 and hasn’t actually been supported for almost four years. (#17985) GUI changes
    The “Start Bitcoin Core on system login” option has been removed on macOS. (#17567)
    In the Peers window, the details for a peer now displays a Mapped AS field to indicate the mapped Autonomous System used for diversifying peer selection. See the -asmap configuration option in New Settings, above. (#18402)
    A “known bug” announced in the release notes of version 0.18 has been fixed. The issue affected anyone who simultaneously used multiple Bitcoin Core wallets and the GUI coin control feature. (#18894)
    For watch-only wallets, creating a new transaction in the Send screen or fee bumping an existing transaction in the Transactions screen will automatically copy a Partially-Signed Bitcoin Transaction (PSBT) to the system clipboard. This can then be pasted into an external program such as HWI for signing. Future versions of Bitcoin Core should support a GUI option for finalizing and broadcasting PSBTs, but for now the debug console may be used with the finalizepsbt and sendrawtransaction RPCs. (#16944, #17492)
    Wallet
    The wallet now by default uses bech32 addresses when using RPC, and creates native segwit change outputs. (#16884)
    The way that output trust was computed has been fixed, which affects confirmed/unconfirmed balance status and coin selection. (#16766)
    The gettransaction, listtransactions and listsinceblock RPC responses now also include the height of the block that contains the wallet transaction, if any. (#17437)
    The getaddressinfo RPC has had its label field deprecated (re-enable for this release using the configuration parameter -deprecatedrpc=label). The labels field is altered from returning JSON objects to returning a JSON array of label names (re-enable previous behavior for this release using the configuration parameter -deprecatedrpc=labelspurpose). Backwards compatibility using the deprecated configuration parameters is expected to be dropped in the 0.21 release. (#17585, #17578)
    Documentation changes
    Bitcoin Core’s automatically-generated source code documentation is now available at https://doxygen.bitcoincore.org. (#17596) Low-level changes
    Utilities
    The bitcoin-cli utility used with the -getinfo parameter now returns a headers field with the number of downloaded block headers on the best headers chain (similar to the blocks field that is also returned) and a verificationprogress field that estimates how much of the best block chain has been synced by the local node. The information returned no longer includes the protocolversion, walletversion, and keypoololdest fields. (#17302, #17650)
    The bitcoin-cli utility now accepts a -stdinwalletpassphrase parameter that can be used when calling the walletpassphrase and walletpassphrasechange RPCs to read the passphrase from standard input without echoing it to the terminal, improving security against anyone who can look at your screen. The existing -stdinrpcpass parameter is also updated to not echo the passphrase. (#13716)
    Command line
    Command line options prefixed with main/test/regtest network names like -main.port=8333 -test.server=1 previously were allowed but ignored. Now they trigger “Invalid parameter” errors on startup. (#17482) New RPCs
    The dumptxoutset RPC outputs a serialized snapshot of the current UTXO set. A script is provided in the contrib/devtools directory for generating a snapshot of the UTXO set at a particular block height. (#16899)
    The generatetodescriptor RPC allows testers using regtest mode to generate blocks that pay an arbitrary output script descriptor. (#16943)
    Updated RPCs
    The verifychain RPC default values are now static instead of depending on the command line options or configuration file (-checklevel, and -checkblocks). Users can pass in the RPC arguments explicitly when they don’t want to rely on the default values. (#18541)
    The getblockchaininfo RPC’s verificationprogress field will no longer report values higher than 1. Previously it would occasionally report the chain was more than 100% verified. (#17328)
    Tests
    It is now an error to use an unqualified walletdir=path setting in the config file if running on testnet or regtest networks. The setting now needs to be qualified as chain.walletdir=path or placed in the appropriate [chain] section. (#17447)
    -fallbackfee was 0 (disabled) by default for the main chain, but 0.0002 by default for the test chains. Now it is 0 by default for all chains. Testnet and regtest users will have to add fallbackfee=0.0002 to their configuration if they weren’t setting it and they want it to keep working like before. (#16524)
    Build system
    Support is provided for building with the Android Native Development Kit (NDK). (#16110) 0.20.0 change log
    Mining
    #18742 miner: Avoid stack-use-after-return in validationinterface (MarcoFalke) Block and transaction handling
    #15283 log: Fix UB with bench on genesis block (instagibbs) #16507 feefilter: Compute the absolute fee rather than stored rate (instagibbs) #16688 log: Add validation interface logging (jkczyz) #16805 log: Add timing information to FlushStateToDisk() (jamesob) #16902 O(1) OP_IF/NOTIF/ELSE/ENDIF script implementation (sipa) #16945 introduce CChainState::GetCoinsCacheSizeState (jamesob) #16974 Walk pindexBestHeader back to ChainActive().Tip() if it is invalid (TheBlueMatt) #17004 Remove REJECT code from CValidationState (jnewbery) #17080 Explain why fCheckDuplicateInputs can not be skipped and remove it (MarcoFalke) #17328 GuessVerificationProgress: cap the ratio to 1 (darosior) #17399 Templatize ValidationState instead of subclassing (jkczyz) #17407 node: Add reference to mempool in NodeContext (MarcoFalke) #17708 prevector: Avoid misaligned member accesses (ajtowns) #17850,#17896,#17957,#18021,#18021,#18112 Serialization improvements (sipa) #17925 Improve UpdateTransactionsFromBlock with Epochs (JeremyRubin) #18002 Abstract out script execution out of VerifyWitnessProgram() (sipa) #18388 Make VerifyWitnessProgram use a Span stack (sipa) #18433 serialization: prevent int overflow for big Coin::nHeight (pierreN) #18500 chainparams: Bump assumed valid hash (MarcoFalke) #18551 Do not clear validationinterface entries being executed (sipa) P2P protocol and network code
    #15437 Remove BIP61 reject messages (MarcoFalke) #16702 Supply and use asmap to improve IP bucketing in addrman (naumenkogs) #16851 Continue relaying transactions after they expire from mapRelay (ajtowns) #17164 Avoid allocating memory for addrKnown where we don’t need it (naumenkogs) #17243 tools: add PoissonNextSend method that returns mockable time (amitiuttarwar) #17251 SocketHandler logs peer id for close and disconnect (Sjors) #17573 Seed RNG with precision timestamps on receipt of net messages (TheBlueMatt) #17624 Fix an uninitialized read in ProcessMessage(…, “tx”, …) when receiving a transaction we already have (practicalswift) #17754 Don’t allow resolving of std::string with embedded NUL characters. Add tests (practicalswift) #17758 Fix CNetAddr::IsRFC2544 comment + tests (tynes) #17812 config, net, test: Asmap feature refinements and functional tests (jonatack) #17951 Use rolling bloom filter of recent block txs for AlreadyHave() check (sdaftuar) #17985 Remove forcerelay of rejected txs (MarcoFalke) #18023 Fix some asmap issues (sipa) #18054 Reference instead of copy in BlockConnected range loop (jonatack) #18376 Fix use-after-free in tests (vasild) #18454 Make addr relay mockable, add test (MarcoFalke) #18458 Add missing cs_vNodes lock (MarcoFalke) #18506 Hardcoded seeds update for 0.20 (laanwj) #18808 Drop unknown types in getdata (jnewbery) #18962 Only send a getheaders for one block in an INV (jnewbery) Wallet
    #13339 Replace %w by wallet name in -walletnotify script (promag) #15931 Remove GetDepthInMainChain dependency on locked chain interface (ariard) #16373 bumpfee: Return PSBT when wallet has privkeys disabled (instagibbs) #16524 Disable -fallbackfee by default (jtimon) #16766 Make IsTrusted scan parents recursively (JeremyRubin) #16884 Change default address type to bech32 (instagibbs) #16911 Only check the hash of transactions loaded from disk (achow101) #16923 Handle duplicate fileid exception (promag) #17056 descriptors: Introduce sortedmulti descriptor (achow101) #17070 Avoid showing GUI popups on RPC errors (MarcoFalke) #17138 Remove wallet access to some node arguments (jnewbery) #17237 LearnRelatedScripts only if KeepDestination (promag) #17260 Split some CWallet functions into new LegacyScriptPubKeyMan (achow101) #17261 Make ScriptPubKeyMan an actual interface and the wallet to have multiple (achow101) #17290 Enable BnB coin selection for preset inputs and subtract fee from outputs (achow101) #17373 Various fixes and cleanup to keypool handling in LegacyScriptPubKeyMan and CWallet (achow101) #17410 Rename db log category to walletdb (like coindb) (laanwj) #17444 Avoid showing GUI popups on RPC errors (take 2) (MarcoFalke) #17447 Make -walletdir network only (promag) #17537 Cleanup and move opportunistic and superfluous TopUp()s (achow101) #17553 Remove out of date comments for CalculateMaximumSignedTxSize (instagibbs) #17568 Fix when sufficient preset inputs and subtractFeeFromOutputs (achow101) #17677 Activate watchonly wallet behavior for LegacySPKM only (instagibbs) #17719 Document better -keypool as a look-ahead safety mechanism (ariard) #17843 Reset reused transactions cache (fjahr) #17889 Improve CWallet:MarkDestinationsDirty (promag) #18034 Get the OutputType for a descriptor (achow101) #18067 Improve LegacyScriptPubKeyMan::CanProvide script recognition (ryanofsky) #18115 Pass in transactions and messages for signing instead of exporting the private keys (achow101) #18192,#18546 Bugfix: Wallet: Safely deal with change in the address book (luke-jr) #18204 descriptors: Improve descriptor cache and cache xpubs (achow101) #18274 rpc/wallet: Initialize nFeeRequired to avoid using garbage value on failure (kallewoof) #18312 Remove deprecated fee bumping by totalFee (jonatack) #18338 Fix wallet unload race condition (promag) RPC and other APIs
    #12763 Add RPC Whitelist Feature from #12248 (JeremyRubin) #13716 cli: -stdinwalletpassphrase and non-echo stdin passwords (kallewoof) #16689 Add missing fields to wallet rpc help output (ariard) #16821 Fix bug where duplicate PSBT keys are accepted (erasmospunk) #16899 UTXO snapshot creation (dumptxoutset) #17156 psbt: Check that various indexes and amounts are within bounds (achow101) #17264 Set default bip32derivs to true for psbt methods (Sjors) #17283 improve getaddressinfo test coverage, help, code docs (jonatack) #17302 cli: Add “headers” and “verificationprogress” to -getinfo (laanwj) #17318 replace asserts in RPC code with CHECK_NONFATAL and add linter (adamjonas) #17437 Expose block height of wallet transactions (promag) #17519 Remove unused COINBASE_FLAGS (narula) #17578 Simplify getaddressinfo labels, deprecate previous behavior (jonatack) #17585 deprecate getaddressinfo label (jonatack) #17746 Remove vector copy from listtransactions (promag) #17809 Auto-format RPCResult (MarcoFalke) #18032 Output a descriptor in createmultisig and addmultisigaddress (achow101) #18122 Update validateaddress RPCExamples to bech32 (theStack) #18208 Change RPCExamples to bech32 (yusufsahinhamza) #18268 Remove redundant types from descriptions (docallag) #18346 Document an RPCResult for all calls; Enforce at compile time (MarcoFalke) #18396 Add missing HelpExampleRpc for getblockfilter (theStack) #18398 Fix broken RPCExamples for waitforblock(height) (theStack) #18444 Remove final comma for last entry of fixed-size arrays/objects in RPCResult (luke-jr) #18459 Remove unused getbalances() code (jonatack) #18484 Correctly compute redeemScript from witnessScript for signrawtransaction (achow101) #18487 Fix rpcRunLater race in walletpassphrase (promag) #18499 Make rpc documentation not depend on call-time rpc args (MarcoFalke) #18532 Avoid initialization-order-fiasco on static CRPCCommand tables (MarcoFalke) #18541 Make verifychain default values static, not depend on global args (MarcoFalke) #18809 Do not advertise dumptxoutset as a way to flush the chainstate (MarcoFalke) #18814 Relock wallet only if most recent callback (promag) GUI
    #15023 Restore RPC Console to non-wallet tray icon menu (luke-jr) #15084 Don’t disable the sync overlay when wallet is disabled (benthecarman) #15098 Show addresses for “SendToSelf” transactions (hebasto) #15756 Add shortcuts for tab tools (promag) #16944 create PSBT with watch-only wallet (Sjors) #16964 Change sendcoins dialogue Yes to Send (instagibbs) #17068 Always generate bitcoinstrings.cpp on make translate (D4nte) #17096 Rename debug window (Zero-1729) #17105 Make RPCConsole::TabTypes an enum class (promag) #17125 Add toolTip and placeholderText to sign message fields (dannmat) #17165 Remove BIP70 support (fanquake) #17180 Improved tooltip for send amount field (JeremyCrookshank) #17186 Add placeholder text to the sign message field (Danny-Scott) #17195 Send amount placeholder value (JeremyCrookshank) #17226 Fix payAmount tooltip in SendCoinsEntry (promag) #17360 Cleaning up hide button tool tip (Danny-Scott) #17446 Changed tooltip for ‘Label’ & ‘Message’ text fields to be more clear (dannmat) #17453 Fix intro dialog labels when the prune button is toggled (hebasto) #17474 Bugfix: GUI: Recognise NETWORK_LIMITED in formatServicesStr (luke-jr) #17492 Bump fee returns PSBT on clipboard for watchonly-only wallets (instagibbs) #17567 Remove macOS start on login code (fanquake) #17587 Show watch-only balance in send screen (Sjors) #17694 Disable 3rd-party tx-urls when wallet disabled (brakmic) #17696 Force set nPruneSize in QSettings after the intro dialog (hebasto) #17702 Move static placeholder texts to forms (laanwj) #17826 Log Qt related info (hebasto) #17886 Restore English translation option (achow101) #17906 Set CConnman byte counters earlier to avoid uninitialized reads (ryanofsky) #17935 Hide HD & encryption icons when no wallet loaded (brakmic) #17998 Shortcut to close ModalOverlay (emilengler) #18007 Bugfix: GUI: Hide the HD/encrypt icons earlier so they get re-shown if another wallet is open (luke-jr) #18060 Drop PeerTableModel dependency to ClientModel (promag) #18062 Fix unintialized WalletView::progressDialog (promag) #18091 Pass clientmodel changes from walletframe to walletviews (jonasschnelli) #18101 Fix deprecated QCharRef usage (hebasto) #18121 Throttle GUI update pace when -reindex (hebasto) #18123 Fix race in WalletModel::pollBalanceChanged (ryanofsky) #18160 Avoid Wallet::GetBalance in WalletModel::pollBalanceChanged (promag) #18360 Bump transifex slug and update English translations for 0.20 (laanwj) #18402 Display mapped AS in peers info window (jonatack) #18492 Translations update pre-branch (laanwj) #18549 Fix Window -> Minimize menu item (hebasto) #18578 Fix leak in CoinControlDialog::updateView (promag) #18894 Fix manual coin control with multiple wallets loaded (promag) Build system
    #16667 Remove mingw linker workaround from win gitian descriptor (fanquake) #16669 Use new fork of osslsigncode for windows gitian signing (fanquake) #16949 Only pass –disable-dependency-tracking to packages that understand it (fanquake) #17008 Bump libevent to 2.1.11 in depends (stefanwouldgo) #17029 gitian: Various improvements for windows descriptor (dongcarl) #17033 Disable _FORTIFY_SOURCE when enable-debug (achow101) #17057 Switch to upstream libdmg-hfsplus (fanquake) #17066 Remove workaround for ancient libtool (hebasto) #17074 Added double quotes (mztriz) #17087 Add variable printing target to Makefiles (dongcarl) #17118 depends macOS: point –sysroot to SDK (Sjors) #17231 Fix boost mac cross build with clang 9+ (theuni) #17265 Remove OpenSSL (fanquake) #17284 Update retry to current version (RandyMcMillan) #17308 nsis: Write to correct filename in first place (dongcarl) #17324,#18099 Update univalue subtree (MarcoFalke) #17398 Update leveldb to 1.22+ (laanwj) #17409 Avoid hardcoded libfaketime dir in gitian (MarcoFalke) #17466 Fix C{,XX} pickup (dongcarl) #17483 Set gitian arch back to amd64 (MarcoFalke) #17486 Make Travis catch unused variables (Sjors) #17538 Bump minimum libc to 2.17 for release binaries (fanquake) #17542 Create test utility library from src/test/util/ (brakmic) #17545 Remove libanl.so.1 from ALLOWED_LIBRARIES (fanquake) #17547 Fix configure report about qr (hebasto) #17569 Allow export of environ symbols and work around rv64 toolchain issue (laanwj) #17647 lcov: filter depends from coverage reports (nijynot) #17658 Add ability to skip building qrencode (fanquake) #17678 Support for S390X and POWER targets (MarcoFalke) #17682 util: Update tinyformat to upstream (laanwj) #17698 Don’t configure xcb_proto (fanquake) #17730 Remove Qt networking features (fanquake) #17738 Remove linking librt for backwards compatibility (fanquake) #17740 Remove configure checks for win libraries we don’t link against (fanquake) #17741 Included test_bitcoin-qt in msvc build (sipsorcery) #17756 Remove WINDOWS_BITS from build system (fanquake) #17769 Set AC_PREREQ to 2.69 (fanquake) #17880 Add -Wdate-time to Werror flags (fanquake) #17910 Remove double LIBBITCOIN_SERVER linking (fanquake) #17928 Consistent use of package variable (Bushstar) #17933 guix: Pin Guix using guix time-machine (dongcarl) #17948 pass -fno-ident in Windows gitian descriptor (fanquake) #18003 Remove –large-address-aware linker flag (fanquake) #18004 Don’t embed a build-id when building libdmg-hfsplus (fanquake) #18051 Fix behavior when ALLOW_HOST_PACKAGES unset (hebasto) #18059 Add missing attributes to Win installer (fanquake) #18104 Skip i686 build by default in guix and gitian (MarcoFalke) #18107 Add cov_fuzz target (MarcoFalke) #18135 Add –enable-determinism configure flag (fanquake) #18145 Add Wreturn-type to Werror flags, check on more Travis machines (Sjors) #18264 Remove Boost Chrono (fanquake) #18290 Set minimum Automake version to 1.13 (hebasto) #18320 guix: Remove now-unnecessary gcc make flag (dongcarl) #18331 Use git archive as source tarball (hebasto) #18397 Fix libevent linking for bench_bitcoin binary (hebasto) #18426 scripts: Previous_release: improve behaviour on failed download (theStack) #18429 Remove double LIBBITCOIN_SERVER from bench-Makefile (brakmic) #18528 Create test_fuzz library from src/test/fuzz/fuzz.cpp (brakmic) #18558 Fix boost detection for arch armv7l (hebasto) #18598 gitian: Add missing automake package to gitian-win-signer.yml (achow101) #18676 Check libevent minimum version in configure script (hebasto) #18945 Ensure source tarball has leading directory name (laanwj) Platform support
    #16110 Add Android NDK support (icota) #16392 macOS toolchain update (fanquake) #16569 Increase init file stop timeout (setpill) #17151 Remove OpenSSL PRNG seeding (Windows, Qt only) (fanquake) #17365 Update README.md with working Android targets and API levels (icota) #17521 Only use D-Bus with Qt on linux (fanquake) #17550 Set minimum supported macOS to 10.12 (fanquake) #17592 Appveyor install libevent[thread] vcpkg (sipsorcery) #17660 Remove deprecated key from macOS Info.plist (fanquake) #17663 Pass -dead_strip_dylibs to ld on macOS (fanquake) #17676 Don’t use OpenGL in Qt on macOS (fanquake) #17686 Add -bind_at_load to macOS hardened LDFLAGS (fanquake) #17787 scripts: Add macho pie check to security-check.py (fanquake) #17800 random: don’t special case clock usage on macOS (fanquake) #17863 scripts: Add macho dylib checks to symbol-check.py (fanquake) #17899 msvc: Ignore msvc linker warning and update to msvc build instructions (sipsorcery) #17916 windows: Enable heap terminate-on-corruption (fanquake) #18082 logging: Enable thread_local usage on macos (fanquake) #18108 Fix .gitignore policy in build_msvc directory (hebasto) #18295 scripts: Add macho lazy bindings check to security-check.py (fanquake) #18358 util: Fix compilation with mingw-w64 7.0.0 (fanquake) #18359 Fix sysctl() detection on macOS (fanquake) #18364 random: remove getentropy() fallback for macOS < 10.12 (fanquake) #18395 scripts: Add pe dylib checking to symbol-check.py (fanquake) #18415 scripts: Add macho tests to test-security-check.py (fanquake) #18425 releases: Update with new Windows code signing certificate (achow101) #18702 Fix ASLR for bitcoin-cli on Windows (fanquake) Tests and QA
    #12134 Build previous releases and run functional tests (Sjors) #13693 Add coverage to estimaterawfee and estimatesmartfee (Empact) #13728 lint: Run the ci lint stage on mac (Empact) #15443 Add getdescriptorinfo functional test (promag) #15888 Add wallet_implicitsegwit to test the ability to transform keys between address types (luke-jr) #16540 Add ASSERT_DEBUG_LOG to unit test framework (MarcoFalke) #16597 travis: Run full test suite on native macos (Sjors) #16681 Use self.chain instead of ‘regtest’ in all current tests (jtimon) #16786 add unit test for wallet watch-only methods involving PubKeys (theStack) #16943 Add generatetodescriptor RPC (MarcoFalke) #16973 Fix combine_logs.py for AppVeyor build (mzumsande) #16975 Show debug log on unit test failure (MarcoFalke) #16978 Seed test RNG context for each test case, print seed (MarcoFalke) #17009, #17018, #17050, #17051, #17071, #17076, #17083, #17093, #17109, #17113, #17136, #17229, #17291, #17357, #17771, #17777, #17917, #17926, #17972, #17989, #17996, #18009, #18029, #18047, #18126, #18176, #18206, #18353, #18363, #18407, #18417, #18423, #18445, #18455, #18565 Add fuzzing harnesses (practicalswift) #17011 ci: Use busybox utils for one build (MarcoFalke) #17030 Fix Python Docstring to include all Args (jbampton) #17041 ci: Run tests on arm (MarcoFalke) #17069 Pass fuzzing inputs as constant references (practicalswift) #17091 Add test for loadblock option and linearize scripts (fjahr) #17108 fix “tx-size-small” errors after default address change (theStack) #17121 Speed up wallet_backup by whitelisting peers (immediate tx relay) (theStack) #17124 Speed up wallet_address_types by whitelisting peers (immediate tx relay) (theStack) #17140 Fix bug in blockfilter_index_tests (jimpo) #17199 use default address type (bech32) for wallet_bumpfee tests (theStack) #17205 ci: Enable address sanitizer (asan) stack-use-after-return checking (practicalswift) #17206 Add testcase to simulate bitcoin schema in leveldb (adamjonas) #17209 Remove no longer needed UBSan suppressions (issues fixed). Add documentation (practicalswift) #17220 Add unit testing for the CompressScript function (adamjonas) #17225 Test serialisation as part of deserialisation fuzzing. Test round-trip equality where possible (practicalswift) #17228 Add RegTestingSetup to setup_common (MarcoFalke) #17233 travis: Run unit and functional tests on native arm (MarcoFalke) #17235 Skip unnecessary fuzzer initialisation. Hold ECCVerifyHandle only when needed (practicalswift) #17240 ci: Disable functional tests on mac host (MarcoFalke) #17254 Fix script_p2sh_tests OP_PUSHBACK2/4 missing (adamjonas) #17267 bench: Fix negative values and zero for -evals flag (nijynot) #17275 pubkey: Assert CPubKey’s ECCVerifyHandle precondition (practicalswift) #17288 Added TestWrapper class for interactive Python environments (jachiang) #17292 Add new mempool benchmarks for a complex pool (JeremyRubin) #17299 add reason checks for non-standard txs in test_IsStandard (theStack) #17322 Fix input size assertion in wallet_bumpfee.py (instagibbs) #17327 Add rpc_fundrawtransaction logging (jonatack) #17330 Add shrinkdebugfile=0 to regtest bitcoin.conf (sdaftuar) #17340 Speed up fundrawtransaction test (jnewbery) #17345 Do not instantiate CAddrDB for static call CAddrDB::Read() (hebasto) #17362 Speed up wallet_avoidreuse, add logging (jonatack) #17363 add “diamond” unit test to MempoolAncestryTests (theStack) #17366 Reset global args between test suites (MarcoFalke) #17367 ci: Run non-cross-compile builds natively (MarcoFalke) #17378 TestShell: Fix typos & implement cleanups (jachiang) #17384 Create new test library (MarcoFalke) #17387 wallet_importmulti: use addresses of the same type as being imported (achow101) #17388 Add missing newline in util_ChainMerge test (ryanofsky) #17390 Add util_ArgParsing test (ryanofsky) #17420 travis: Rework cache_err_msg (MarcoFalke) #17423 ci: Make ci system read-only on the git work tree (MarcoFalke) #17435 check custom ancestor limit in mempool_packages.py (theStack) #17455 Update valgrind suppressions (practicalswift) #17461 Check custom descendant limit in mempool_packages.py (theStack) #17469 Remove fragile assert_memory_usage_stable (MarcoFalke) #17470 ci: Use clang-8 for fuzzing to run on aarch64 ci systems (MarcoFalke) #17480 Add unit test for non-standard txs with too large scriptSig (theStack) #17497 Skip tests when utils haven’t been compiled (fanquake) #17502 Add unit test for non-standard bare multisig txs (theStack) #17511 Add bounds checks before base58 decoding (sipa) #17517 ci: Bump to clang-8 for asan build to avoid segfaults on ppc64le (MarcoFalke) #17522 Wait until mempool is loaded in wallet_abandonconflict (MarcoFalke) #17532 Add functional test for non-standard txs with too large scriptSig (theStack) #17541 Add functional test for non-standard bare multisig txs (theStack) #17555 Add unit test for non-standard txs with wrong nVersion (dspicher) #17571 Add libtest_util library to msvc build configuration (sipsorcery) #17591 ci: Add big endian platform - s390x (elichai) #17593 Move more utility functions into test utility library (mzumsande) #17633 Add option –valgrind to run the functional tests under Valgrind (practicalswift) #17635 ci: Add centos 7 build (hebasto) #17641 Add unit test for leveldb creation with unicode path (sipsorcery) #17674 Add initialization order fiasco detection in Travis (practicalswift) #17675 Enable tests which are incorrectly skipped when running test_runner.py --usecli (practicalswift) #17685 Fix bug in the descriptor parsing fuzzing harness (descriptor_parse) (practicalswift) #17705 re-enable CLI test support by using EncodeDecimal in json.dumps() (fanquake) #17720 add unit test for non-standard “scriptsig-not-pushonly” txs (theStack) #17767 ci: Fix qemu issues (MarcoFalke) #17793 ci: Update github actions ci vcpkg cache on msbuild update (hebasto) #17806 Change filemode of rpc_whitelist.py (emilengler) #17849 ci: Fix brew python link (hebasto) #17851 Add std::to_string to list of locale dependent functions (practicalswift) #17893 Fix double-negative arg test (hebasto) #17900 ci: Combine 32-bit build with centos 7 build (theStack) #17921 Test OP_CSV empty stack fail in feature_csv_activation.py (theStack) #17931 Fix p2p_invalid_messages failing in Python 3.8 because of warning (elichai) #17947 add unit test for non-standard txs with too large tx size (theStack) #17959 Check specific reject reasons in feature_csv_activation.py (theStack) #17984 Add p2p test for forcerelay permission (MarcoFalke) #18001 Updated appveyor job to checkout a specific vcpkg commit ID (sipsorcery) #18008 fix fuzzing using libFuzzer on macOS (fanquake) #18013 bench: Fix benchmarks filters (elichai) #18018 reset fIsBareMultisigStd after bare-multisig tests (fanquake) #18022 Fix appveyor test_bitcoin build of *.raw (MarcoFalke) #18037 util: Allow scheduler to be mocked (amitiuttarwar) #18056 ci: Check for submodules (emilengler) #18069 Replace ‘regtest’ leftovers by self.chain (theStack) #18081 Set a name for CI Docker containers (fanquake) #18109 Avoid hitting some known minor tinyformat issues when fuzzing strprintf(…) (practicalswift) #18155 Add harness which fuzzes EvalScript and VerifyScript using a fuzzed signature checker (practicalswift) #18159 Add –valgrind option to test/fuzz/test_runner.py for running fuzzing test cases under valgrind (practicalswift) #18166 ci: Run fuzz testing test cases (bitcoin-core/qa-assets) under valgrind to catch memory errors (practicalswift) #18172 Transaction expiry from mempool (0xB10C) #18181 Remove incorrect assumptions in validation_flush_tests (MarcoFalke) #18183 Set catch_system_errors=no on boost unit tests (MarcoFalke) #18195 Add cost_of_change parameter assertions to bnb_search_test (yancyribbens) #18209 Reduce unneeded whitelist permissions in tests (MarcoFalke) #18211 Disable mockforward scheduler unit test for now (MarcoFalke) #18213 Fix race in p2p_segwit (MarcoFalke) #18224 Make AnalyzePSBT next role calculation simple, correct (instagibbs) #18228 Add missing syncwithvalidationinterfacequeue (MarcoFalke) #18247 Wait for both veracks in add_p2p_connection (MarcoFalke) #18249 Bump timeouts to accomodate really slow disks (MarcoFalke) #18255 Add bad-txns-*-toolarge test cases to invalid_txs (MarcoFalke) #18263 rpc: change setmocktime check to use IsMockableChain (gzhao408) #18285 Check that wait_until returns if time point is in the past (MarcoFalke) #18286 Add locale fuzzer to FUZZERS_MISSING_CORPORA (practicalswift) #18292 fuzz: Add assert(script == decompressed_script) (MarcoFalke) #18299 Update FUZZERS_MISSING_CORPORA to enable regression fuzzing for all harnesses in master (practicalswift) #18300 fuzz: Add option to merge input dir to test runner (MarcoFalke) #18305 Explain why test logging should be used (MarcoFalke) #18306 Add logging to wallet_listsinceblock.py (jonatack) #18311 Bumpfee test fix (instagibbs) #18314 Add deserialization fuzzing of SnapshotMetadata (utxo_snapshot) (practicalswift) #18319 fuzz: Add missing ECC_Start to key_io test (MarcoFalke) #18334 Add basic test for BIP 37 (MarcoFalke) #18350 Fix mining to an invalid target + ensure that a new block has the correct hash internally (TheQuantumPhysicist) #18378 Bugfix & simplify bn2vch using int.to_bytes (sipa) #18393 Don’t assume presence of __builtin_mul_overflow(…) in MultiplicationOverflow(…) fuzzing harness (practicalswift) #18406 add executable flag for rpc_estimatefee.py (theStack) #18420 listsinceblock block height checks (jonatack) #18430 ci: Only clone bitcoin-core/qa-assets when fuzzing (MarcoFalke) #18438 ci: Use homebrew addon on native macos (hebasto) #18447 Add coverage for script parse error in ParseScript (pierreN) #18472 Remove unsafe BOOST_TEST_MESSAGE (MarcoFalke) #18474 check that peer is connected when calling sync_* (MarcoFalke) #18477 ci: Use focal for fuzzers (MarcoFalke) #18481 add BIP37 ‘filterclear’ test to p2p_filter.py (theStack) #18496 Remove redundant sync_with_ping after add_p2p_connection (jonatack) #18509 fuzz: Avoid running over all inputs after merging them (MarcoFalke) #18510 fuzz: Add CScriptNum::getint coverage (MarcoFalke) #18514 remove rapidcheck integration and tests (fanquake) #18515 Add BIP37 remote crash bug [CVE-2013-5700] test to p2p_filter.py (theStack) #18516 relax bumpfee dust_to_fee txsize an extra vbyte (jonatack) #18518 fuzz: Extend descriptor fuzz test (MarcoFalke) #18519 fuzz: Extend script fuzz test (MarcoFalke) #18521 fuzz: Add process_messages harness (MarcoFalke) #18529 Add fuzzer version of randomized prevector test (sipa) #18534 skip backwards compat tests if not compiled with wallet (fanquake) #18540 wallet_bumpfee assertion fixup (jonatack) #18543 Use one node to avoid a race due to missing sync in rpc_signrawtransaction (MarcoFalke) #18561 Properly raise FailedToStartError when rpc shutdown before warmup finished (MarcoFalke) #18562 ci: Run unit tests sequential once (MarcoFalke) #18563 Fix unregister_all_during_call cleanup (ryanofsky) #18566 Set -use_value_profile=1 when merging fuzz inputs (MarcoFalke) #18757 Remove enumeration of expected deserialization exceptions in ProcessMessage(…) fuzzer (practicalswift) #18878 Add test for conflicted wallet tx notifications (ryanofsky) #18975 Remove const to work around compiler error on xenial (laanwj) Documentation
    #16947 Doxygen-friendly script/descriptor.h comments (ch4ot1c) #16983 Add detailed info about Bitcoin Core files (hebasto) #16986 Doxygen-friendly CuckooCache comments (ch4ot1c) #17022 move-only: Steps for “before major release branch-off” (MarcoFalke) #17026 Update bips.md for default bech32 addresses in 0.20.0 (MarcoFalke) #17081 Fix Makefile target in benchmarking.md (theStack) #17102 Add missing indexes/blockfilter/basic to doc/files.md (MarcoFalke) #17119 Fix broken bitcoin-cli examples (andrewtoth) #17134 Add switch on enum example to developer notes (hebasto) #17142 Update macdeploy README to include all files produced by make deploy (za-kk) #17146 github: Add warning for bug reports (laanwj) #17157 Added instructions for how to add an upsteam to forked repo (dannmat) #17159 Add a note about backporting (carnhofdaki) #17169 Correct function name in ReportHardwareRand() (fanquake) #17177 Describe log files + consistent paths in test READMEs (fjahr) #17239 Changed miniupnp links to https (sandakersmann) #17281 Add developer note on c_str() (laanwj) #17285 Bip70 removal follow-up (fjahr) #17286 Fix help-debug -checkpoints (ariard) #17309 update MSVC instructions to remove Qt OpenSSL linking (fanquake) #17339 Add template for good first issues (michaelfolkson) #17351 Fix some misspellings (RandyMcMillan) #17353 Add ShellCheck to lint tests dependencies (hebasto) #17370 Update doc/bips.md with recent changes in master (MarcoFalke) #17393 Added regtest config for linearize script (gr0kchain) #17411 Add some better examples for scripted diff (laanwj) #17503 Remove bitness from bitcoin-qt help message and manpage (laanwj) #17539 Update and improve Developer Notes (hebasto) #17561 Changed MiniUPnPc link to https in dependencies.md (sandakersmann) #17596 Change doxygen URL to doxygen.bitcoincore.org (laanwj) #17598 Update release process with latest changes (MarcoFalke) #17617 Unify unix epoch time descriptions (jonatack) #17637 script: Add keyserver to verify-commits readme (emilengler) #17648 Rename wallet-tool references to bitcoin-wallet (hel-o) #17688 Add “ci” prefix to CONTRIBUTING.md (hebasto) #17751 Use recommended shebang approach in documentation code block (hackerrdave) #17752 Fix directory path for secp256k1 subtree in developer-notes (hackerrdave) #17772 Mention PR Club in CONTRIBUTING.md (emilengler) #17804 Misc RPC help fixes (MarcoFalke) #17819 Developer notes guideline on RPCExamples addresses (jonatack) #17825 Update dependencies.md (hebasto) #17873 Add to Doxygen documentation guidelines (jonatack) #17907 Fix improper Doxygen inline comments (Empact) #17942 Improve fuzzing docs for macOS users (fjahr) #17945 Fix doxygen errors (Empact) #18025 Add missing supported rpcs to doc/descriptors.md (andrewtoth) #18070 Add note about brew doctor (givanse) #18125 Remove PPA note from release-process.md (fanquake) #18170 Minor grammatical changes and flow improvements (travinkeith) #18212 Add missing step in win deployment instructions (dangershony) #18219 Add warning against wallet.dat re-use (corollari) #18253 Correct spelling errors in comments (Empact) #18278 interfaces: Describe and follow some code conventions (ryanofsky) #18283 Explain rebase policy in CONTRIBUTING.md (MarcoFalke) #18340 Mention MAKE=gmake workaround when building on a BSD (fanquake) #18341 Replace remaining literal BTC with CURRENCY_UNIT (domob1812) #18342 Add fuzzing quickstart guides for libFuzzer and afl-fuzz (practicalswift) #18344 Fix nit in getblockchaininfo (stevenroose) #18379 Comment fix merkle.cpp (4d55397500) #18382 note the costs of fetching all pull requests (vasild) #18391 Update init and reduce-traffic docs for -blocksonly (glowang) #18464 Block-relay-only vs blocksonly (MarcoFalke) #18486 Explain new test logging (MarcoFalke) #18505 Update webchat URLs in README.md (SuriyaaKudoIsc) #18513 Fix git add argument (HashUnlimited) #18577 Correct scripted-diff example link (yahiheb) #18589 Fix naming of macOS SDK and clarify version (achow101) Miscellaneous
    #15600 lockedpool: When possible, use madvise to avoid including sensitive information in core dumps (luke-jr) #15934 Merge settings one place instead of five places (ryanofsky) #16115 On bitcoind startup, write config args to debug.log (LarryRuane) #16117 util: Replace boost sleep with std sleep (MarcoFalke) #16161 util: Fix compilation errors in support/lockedpool.cpp (jkczyz) #16802 scripts: In linearize, search for next position of magic bytes rather than fail (takinbo) #16889 Add some general std::vector utility functions (sipa) #17049 contrib: Bump gitian descriptors for 0.20 (MarcoFalke) #17052 scripts: Update copyright_header script to include additional files (GChuf) #17059 util: Simplify path argument for cblocktreedb ctor (hebasto) #17191 random: Remove call to RAND_screen() (Windows only) (fanquake) #17192 util: Add check_nonfatal and use it in src/rpc (MarcoFalke) #17218 Replace the LogPrint function with a macro (jkczyz) #17266 util: Rename decodedumptime to parseiso8601datetime (elichai) #17270 Feed environment data into RNG initializers (sipa) #17282 contrib: Remove accounts from bash completion (fanquake) #17293 Add assertion to randrange that input is not 0 (JeremyRubin) #17325 log: Fix log message for -par=1 (hebasto) #17329 linter: Strip trailing / in path for git-subtree-check (jnewbery) #17336 scripts: Search for first block file for linearize-data with some block files pruned (Rjected) #17361 scripts: Lint gitian descriptors with shellcheck (hebasto) #17482 util: Disallow network-qualified command line options (ryanofsky) #17507 random: mark RandAddPeriodic and SeedPeriodic as noexcept (fanquake) #17527 Fix CPUID subleaf iteration (sipa) #17604 util: Make schedulebatchpriority advisory only (fanquake) #17650 util: Remove unwanted fields from bitcoin-cli -getinfo (malevolent) #17671 script: Fixed wget call in gitian-build.py (willyko) #17699 Make env data logging optional (sipa) #17721 util: Don’t allow base58 decoding of non-base58 strings. add base58 tests (practicalswift) #17750 util: Change getwarnings parameter to bool (jnewbery) #17753 util: Don’t allow base32/64-decoding or parsemoney(…) on strings with embedded nul characters. add tests (practicalswift) #17823 scripts: Read suspicious hosts from a file instead of hardcoding (sanjaykdragon) #18162 util: Avoid potential uninitialized read in formatiso8601datetime(int64_t) by checking gmtime_s/gmtime_r return value (practicalswift) #18167 Fix a violation of C++ standard rules where unions are used for type-punning (TheQuantumPhysicist) #18225 util: Fail to parse empty string in parsemoney (MarcoFalke) #18270 util: Fail to parse whitespace-only strings in parsemoney(…) (instead of parsing as zero) (practicalswift) #18316 util: Helpexamplerpc formatting (jonatack) #18357 Fix missing header in sync.h (promag) #18412 script: Fix script_err_sig_pushonly error string (theStack) #18416 util: Limit decimal range of numbers parsescript accepts (pierreN) #18503 init: Replace URL_WEBSITE with PACKAGE_URL (MarcoFalke) #18526 Remove PID file at the very end (hebasto) #18553 Avoid non-trivial global constants in SHA-NI code (sipa) #18665 Do not expose and consider -logthreadnames when it does not work (hebasto) Credits
    Thanks to everyone who directly contributed to this release:
    0xb10c 251 4d55397500 Aaron Clauson Adam Jonas Albert Amiti Uttarwar Andrew Chow Andrew Toth Anthony Towns Antoine Riard Ava Barron Ben Carman Ben Woosley Block Mechanic Brian Solon Bushstar Carl Dong Carnhof Daki Cory Fields Daki Carnhof Dan Gershony Daniel Kraft dannmat Danny-Scott darosior David O’Callaghan Dominik Spicher Elichai Turkel Emil Engler emu Fabian Jahr fanquake Filip Gospodinov Franck Royer Gastón I. Silva gchuf Gleb Naumenko Gloria Zhao glowang Gr0kchain Gregory Sanders hackerrdave Harris hel0 Hennadii Stepanov ianliu Igor Cota James Chiang James O’Beirne Jan Beich Jan Sarenik Jeffrey Czyz Jeremy Rubin JeremyCrookshank Jim Posen John Bampton John L. Jegutanis John Newbery Jon Atack Jon Layton Jonas Schnelli João Barbosa Jorge Timón Karl-Johan Alm kodslav Larry Ruane Luke Dashjr malevolent MapleLaker marcaiaf MarcoFalke Marius Kjærstad Mark Erhardt Mark Tyneway Martin Erlandsson Martin Zumsande Matt Corallo Matt Ward Michael Folkson Michael Polzer Micky Yun Chan Neha Narula nijynot naumenkogs NullFunctor Peter Bushnell pierrenn Pieter Wuille practicalswift randymcmillan Rjected Russell Yanofsky Samer Afach Samuel Dobson Sanjay K Sebastian Falbesoner setpill Sjors Provoost Stefan Richter stefanwouldgo Steven Roose Suhas Daftuar Suriyaa Sundararuban TheCharlatan Tim Akinbo Travin Keith tryphe Vasil Dimov Willy Ko Wilson Ccasihue S Wladimir J. van der Laan Yahia Chiheb Yancy Ribbens Yusuf Sahin HAMZA Zakk Zero As well as to everyone that helped with translations on Transifex.
    View the full article
  5. Like
    admin got a reaction from vamp111 in [bitcoin_core] Bitcoin Core version 0.19.1 released   
    0.19.1 Release Notes
    Bitcoin Core version 0.19.1 is now available from:
    https://bitcoincore.org/bin/bitcoin-core-0.19.1/
    This minor release includes various bug fixes and performance improvements, as well as updated translations.
    Please report bugs using the issue tracker at GitHub:
    https://github.com/bitcoin/bitcoin/issues
    To receive security and update notifications, please subscribe to:
    https://bitcoincore.org/en/list/announcements/join/
    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).
    Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the datadir needs to be migrated. Old wallet versions of Bitcoin Core are generally supported.
    Compatibility
    Bitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended to use Bitcoin Core on unsupported systems.
    Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them.
    From Bitcoin Core 0.17.0 onwards, macOS versions earlier than 10.10 are no longer supported, as Bitcoin Core is now built using Qt 5.9.x which requires macOS 10.10+. Additionally, Bitcoin Core does not yet change appearance when macOS “dark mode” is activated.
    In addition to previously supported CPU platforms, this release’s pre-compiled distribution provides binaries for the RISC-V platform.
    0.19.1 change log
    Wallet
    #17643 Fix origfee return for bumpfee with feerate arg (instagibbs) #16963 Fix unique_ptr usage in boost::signals2 (promag) #17258 Fix issue with conflicted mempool tx in listsinceblock (adamjonas, mchrostowski) #17924 Bug: IsUsedDestination shouldn’t use key id as script id for ScriptHash (instagibbs) #17621 IsUsedDestination should count any known single-key address (instagibbs) #17843 Reset reused transactions cache (fjahr) RPC and other APIs
    #17687 cli: Fix fatal leveldb error when specifying -blockfilterindex=basic twice (brakmic) #17728 require second argument only for scantxoutset start action (achow101) #17445 zmq: Fix due to invalid argument and multiple notifiers (promag) #17524 psbt: handle unspendable psbts (achow101) #17156 psbt: check that various indexes and amounts are within bounds (achow101) GUI
    #17427 Fix missing qRegisterMetaType for size_t (hebasto) #17695 disable File->CreateWallet during startup (fanquake) #17634 Fix comparison function signature (hebasto) #18062 Fix unintialized WalletView::progressDialog (promag) Tests and QA
    #17416 Appveyor improvement - text file for vcpkg package list (sipsorcery) #17488 fix “bitcoind already running” warnings on macOS (fanquake) #17980 add missing #include to fix compiler errors (kallewoof) Platform support
    #17736 Update msvc build for Visual Studio 2019 v16.4 (sipsorcery) #17364 Updates to appveyor config for VS2019 and Qt5.9.8 + msvc project fixes (sipsorcery) #17887 bug-fix macos: give free bytes to F_PREALLOCATE (kallewoof) Miscellaneous
    #17897 init: Stop indexes on shutdown after ChainStateFlushed callback (jimpo) #17450 util: Add missing headers to util/fees.cpp (hebasto) #17654 Unbreak build with Boost 1.72.0 (jbeich) #17857 scripts: Fix symbol-check & security-check argument passing (fanquake) #17762 Log to net category for exceptions in ProcessMessages (laanwj) #18100 Update univalue subtree (MarcoFalke) Credits
    Thanks to everyone who directly contributed to this release:
    Aaron Clauson Adam Jonas Andrew Chow Fabian Jahr fanquake Gregory Sanders Harris Hennadii Stepanov Jan Beich Jim Posen João Barbosa Karl-Johan Alm Luke Dashjr MarcoFalke Michael Chrostowski Russell Yanofsky Wladimir J. van der Laan As well as to everyone that helped with translations on Transifex.
    View the full article
  6. Like
    admin got a reaction from vamp111 in [bitmex]???? Crypto Trader Digest   
    style="margin: 0;color: black;">
    View this email in a browser
    BitMEX Crypto Trader Digest January 13, 2020 From the desk of Arthur Hayes
    Co-founder & CEO, BitMEX
    From The BitMEX Research Desk
    The Bitcoin Cash Hardfork – Three Interrelated Incidents
    Abstract: The 15 May 2019 Bitcoin Cash hardfork appears to have suffered from three significant interrelated problems. A weakness exploited by an “attack transaction”, which caused miners to produce empty blocks. The uncertainty surrounding the empty blocks may have caused concern among some miners, who may have tried to mine on the original non-hardfork chain, causing a consensus chainsplit. There appears to have been a plan by developers and miners to recover funds accidentally sent to SegWit addresses and the above weakness may have scuppered this plan. This failure may have resulted in a deliberate and coordinated 2 block chain re-organisation. Based on our calculations, around 3,392 BCH may have been successfully double spent in an orchestrated transaction reversal. However, the only victim with respect to these double spent coins could have been the original “thief”.
    Illustration of the Bitcoin Cash network splits on 15 May 2019
    (Source: BitMEX Research)
    (Notes: Graphical illustration of the split)

    ForkMonitor: Unexpected Inflation Detection and Warning System
    Abstract: ForkMonitor has now implemented unexpected inflation detection and warning systems for Bitcoin. The block reward is currently 12.5 bitcoin, which means that no more than 12.5 new bitcoin should be created each block. Some of the ForkMonitor nodes now calculate the total coin supply each block, using the gettxoutsetinfo RPC call. If the total coin supply increases by more than 12.5 bitcoin, warnings systems are initiated. This service potentially provides additional assurances to network participants about the supply of Bitcoin at any given time. (Source: ForkMonitor.info)

    Bitcoin’s Block Timestamp Protection Rules
    Abstract: We examine two of Bitcoin’s little-known rules, designed to stop nefarious miners from manipulating the block timestamps and achieving unfairly high mining rewards. We discuss why constants such as the two-hour MAX_FUTURE_BLOCK_TIME value may have been chosen and how this value may have particular implications for Bitcoin Cash. We conclude that Bitcoin’s time protection rules appear reasonably effective, an impressive feat, considering the lack of a functioning network when the rules were implemented. 


    (Source: Pexels)

    Bitcoin Cash’s October 2019 Hashrate Volatility Increase
    Abstract: We look at the recent elevated level of hashrate volatility on the Bitcoin Cash network. We note that the apparent cyclical nature of the oscillations may indicate a form of manipulation, although we found no direct evidence of such behavior. We conclude that there are no easy solutions to Bitcoin Cash’s hashrate volatility issue, on the other hand the negative impact on the usability of the coin has been marginal so far. The best course of action in the short term may be to be patient and research possible solutions, unless a particular cause becomes more apparent. 

    Bitcoin Cash Hashrate Estimate- (8 hour rolling average) – PH/s

    (Source: BitMEX Research)
    (Notes: Eight hour periods were chosen to maximise the visual impact of the apparent hashrate oscillations. Hashrate data calculated by using the difficulty and block timestamps)
    Announcing txstats.com
    Abstract: BitMEX Research and Coin Metrics are happy to announce the release of txstats.com, the successor to P2SH.info, an independent project created by Coin Metrics’ Lead Data Engineer, Antoine Le Calvez. Bitcoin stored by P2SH address type(Screenshot from txstats.com)

    Benford’s Law & Cryptocurrency Trading Data
    Abstract: In this report we examine Benford’s law, a mathematical rule which describes the frequency of the leading digit in various real world sequences of numbers. We look at various datasets from the cryptocurrency ecosystem, such as coin prices and trading volume data. We explain that this mathematical concept should not be looked at in isolation and that a strong understanding of the underlying economics is necessary to draw strong conclusions. We note that for a minority of trading platforms, notably OKEX and HitBTC, the reported trading volume figures appear to result in a distribution which does not follow Benford’s law. However, this pattern does not imply inappropriate manipulation of the data and there are many potential legitimate explanations for the unexpected distributions.

    (Ben Affleck explaining to Anna Kendrick the abnormally high occurrence of the digit 3, potentially indicating financial fraud, in the 2016 Hollywood movie “The Accountant”. Screen captured 41 minutes and 40 seconds into the film)
    Bitcoin’s Initial Block Download
    Abstract: We test the performance of Bitcoin Core by successfully conducting 35 initial block downloads (IBDs) and recording the amount of time the node takes to synchronize with the network. We used software releases in the period spanning from 2012 to 2019. The results show a considerable and consistent improvement in the performance of the software, but also a high degree of variance. Even with the latest computer hardware, older versions of Bitcoin struggled to get past the pickup in transaction volume which occured in the 2015 to 2016 period. Therefore we conclude that without the software enhancements, an initial synchronization today could be almost impossible.

    Figure 1 – Bitcoin Initial Block Download Time (Days) – Average Of 3 Attempts

    (Source: BitMEX Research)
    (Notes: Synchronization up to block 602,707. Further details in the notes below)
    Lightning Network (Part 5) – BitMEX Research Launches Penalty Transaction Alert System
    Abstract: ForkMonitor has launched a Lightning Network penalty transaction alert system, available at https://forkmonitor.info/lightning. Unfortunately, it is possible the alerts could be manipulated, for instance by users artificially generating this transaction type on two nodes they control. On the other hand, our new alert system should capture every failed theft attempt on the Lightning Network, in real time. This may be a useful feature to those monitoring the health and development of the Lightning Network and additionally it could be useful to individual users concerned about their channels.

    (Source: Pexels.com) I CAN has IPO
    Abstract: In contrast to the apparent management difficulties at Bitmain, in a shrewd piece of corporate finance, cryptocurrency ASIC manufacturer Canaan Creative successfully raised $90m in an IPO in November 2019, at a very attractive valuation from the company’s perspective. From Canaan’s point of view, the timing appears impeccable, right before the release of a set of financial results likely to show a loss in 2019, a Bitcoin price decline and the 2020 halvening which should reduce mining revenue. Quarterly disclosures in the prospectus illustrate extreme volatility in sales, which appear more volatile than both cryptocurrency prices and mining farm operation financials. The shares are down 43% since the listing, moving towards what we would consider a more attractive valuation for investors. Canaan’s sharp share price decline since the IPO vs Bitcoin(Source: Bloomberg)
    Build Systems & Security – Bitcoin Is Improving
    Abstract: This piece is written by Bitcoin Core contributor and BitMEX Research guest writer, Michael Ford. Michael is the recipient of the HDR Global Trading Limited Bitcoin development grant of US$60,000 per annum. In this report, Michael explains recent Bitcoin Core build system improvements and how he has been involved in removing third party software dependencies, such as OpenSSL. The number of packages built in Bitcoin Core 0.19.99 is down 44% since Bitcoin Core 0.13.2 and the build time has fallen 42% since the peak, to 135 seconds, according to Michael’s tests. This work has improved the security of the software, by reducing the attack surface and improved software performance.

    Bitcoin Core Dependencies – Build Time

    (Source: Michael Ford’s analysis)
    (Notes: Only requires packages, excludes downloading. Make -C depends -j8 NO_QT=1 NO_UPNP=1 etc, Conducted on MacOS) Lightning Network (Part 6) – Over 60,000 Non-Cooperative Channel Closures
    Abstract: In our sixth piece on the lightning network, we provide new data about its growth and size. We reveal statistics about private channels, often produced by mobile wallets, which are not normally included in traditional network metrics. We primarily focus on non-cooperative channel closures and a database we have constructed, which we believe contains all such transactions. Our database illustrates that non-cooperative channel closures are relatively common and that lightning network usage is higher than expected.

    Main Findings: The number of lightning network non-cooperative channel closures in Bitcoin’s history is over 60,000. Over 1,000 Bitcoin has been spent in non-cooperative channel closure transactions.
    (Lightning strikes the city of New York. Source: Pexels) From The Desk Of Arthur Hayes
    When Options? Part 1



    These are the three questions any self-respecting crypto punter asks themselves:
    When moon? When lambo? When liquid options? If I knew the answers to questions 1 and 2, HDR Long Term Capital Management would not be a figment of my imagination, but a fee guzzling hedge fund posting returns that rival Renaissance Technologies. By the way, I recently read somewhere that since its inception, Ren Tech earned over $100 billion in net gains AFTER fees of 4 and 40. Jim Simons is the Samuel L Jackson of investing; he is one bad ass mother fucker.
     
    As the CEO of the largest crypto derivatives trading platform, I do however have a somewhat informed opinion on the third question. For those of you ringing in 2020 with a resolve to read even less text and more Instagram, here is the summary:
     
    The liquid crypto delta one trading products obviate the need for traders to rush into traditional screen options trading platforms like in traditional asset classes. That does not mean that volatility products will not pick up liquidity. As more participants rediscover the need to smooth out volatile cash flows and earn yield on their Bitcoin, both insurance and yield products with embedded options will become popular. These structured products will lead the way towards a more mature crypto derivatives market, and that liquidity will leak into vanilla options traded by sophisticated traders. BitMEX will be present in the areas of the market where we can add value.
     
    Delta One Dominance
     
    Traders use delta one products to obtain leveraged directional exposure to an asset. Traders always want more leverage when they are prescient; that’s how you earn more ducats. Traditional trading platforms and exchanges, baring shady CFD brokers / bucket shops, offer limited leverage.
     
    Unless you are a very large hedge fund, bank, or financial institution, you will not have access to a large amount of leverage. Exchanges endeavor to protect their seat holders who are on the hook for bankrupt traders by limiting leverage. The most liquid equity futures contract globally is the CME’s Globex S&P E-mini contract. I believe the maintenance margin offered by the exchange equates to max 5x leverage. 5x leverage ain’t the nuts when a large daily move in the underlying is considered 1%.
     
    Brokers may offer higher leverage trading FX pairs, but obtaining 100x or greater leverage is getting increasingly difficult. Even if you can obtain high leverage, these exchanges or brokers do not limit your liability. When the Swiss National Bank removed the CHF/EUR peg in January 2015, a few shops sued customers for large losses. That’s not a good look.
     
    Since the options are either low leverage offered at the exchange level, or high leverage offered by a broker, with the risk of total financial ruin, traders in search of safe leverage must resort to options. By purchasing out of the money (OTM) call and put options, traders can enjoy much higher leverage and limited liability.
     
    The OTM options will trade cheap because the strike price is far enough away from the current spot price to dampen the premium. You pay less for an outcome that is less likely to happen. If the trader is wrong, he only loses the premium. This way, traders construct leveraged positive convexity trades.
     
    The other, and arguably more important facet which will reduce the premium is low observed volatility levels for equities, fixed income, and currencies. If the asset price moves very little and is OTM, the premium will be cheaper, which offers larger gearing.
     
    As a result of this market structure, options appeal to speculators. In turn, speculators bring the gift of liquidity on both sides of a market. Life is all about discovering cheap convexity. Traditional asset class options markets offer convexity, leverage, and safety to speculators. Delta one products offer none of these characteristics, therefore, speculators add a significant amount of liquidity and open interest to the options markets.
     
    Crypto derivatives feature a completely different market structure.
     
    Suing your customers is bad business and almost impossible when the margin currency, Bitcoin, is barely recognised as real money. As a result, all platforms adopted a limited liability stance from the outset. You can only lose your initial margin on BitMEX, no matter how big your position is.
     
    Nothing in life is free, unless you are a politician running for election. If traders can only lose what they put in, then in volatile and jumpy markets, winners cannot enjoy their full unrealised profit. There will be situations where the market gaps up or down and the platform does not possess enough equity to pay out winners in full. That is where the socialised loss system plays a role.
     
    The socialised loss system ensures the platform is solvent under all market conditions. Crypto trading platforms did not start by selling seats to well-heeled institutions willing to put their balance sheets on the line so punters can go 100x on one of the most volatile assets in human history.
     
    I can only speak for BitMEX, but if Bitcoin goes to zero or infinity in one tick, we will be solvent. That is how much safety our socialised loss system provides.
     
    A limited liability and socialised loss margin system sounds attractive in theory, but without the third piece, the insurance fund, it is still deficient. In a two-trader system where one person is long and other side short, the maximum return on equity (ROE) is 100%. That is because you can only win what the other side has placed as margin. This platform could offer 1,000x leverage and it would still be a nothing burger. The leverage is irrelevant if you can’t raise your ROE substantially above 100%.
     
    An additional pot of funds which pays out winners when the losers go bankrupt is needed to raise ROE above 100%. Traditional exchanges partner with a clearinghouse which provides such a backstop from guarantee bonds. Usually seat holders must purchase these bonds; in return they receive a fee on every trade.

    However, if I came to you in 2015 and asked you to give me some Bitcoin to help traders use 100x leverage, you probably would have suffered a myocardial infarction laughing at my expense. Therefore, BitMEX and other platforms had to find another source of funds to backstop the market. The insurance fund is that pool of money. The BitMEX insurance fund currently holds approximately 33,500 Bitcoin.
     
    Pop goes the weasel, with an insurance fund the potential ROE in a socialised system rises above 100%. Mathematically the larger the insurance fund the larger the potential ROE of a new trade becomes. The other factor that influences the potential ROE is the number of traders on a platform who have different price expectations on the long and short side. The more punters, the greater chance that a liquidation order will be cleared in the market at better than bankruptcy price. As a result, the insurance fund will grow.
     
    Assume that all crypto derivatives platforms have the same number of active users. (I could posit that BitMEX has the most, but I can’t verify that without knowing the active user base of all competitors. And alas I don’t have that information.) The only public data which all socialised loss platforms post is their insurance fund. BitMEX has the largest fund. Therefore, on BitMEX a trader will have the highest pre-trade potential ROE.
     
    If we assume a non-zero insurance fund balance, then the crypto delta one markets begin to confer some juicy convexity for traders. Consider this:
    Traders can only lose what they put in. That means their downside loss is capped. Traders can make more when they are right than when they are wrong, regardless of going long or short. That means their return profile is always positively convex. Traders can use high leverage. In essence, the crypto capital market structure has wrapped options into a delta one product. The return profile of a crypto future or swap hasn’t changed. On the leveraged notional, a 1% rise in price equals a 1% rise in the contract. However, on an ROE basis the trader has purchased an option with the premium as the initial margin.
     
    Crypto Options
     
    Various crypto platforms have over the years offered options markets. While the liquidity is definitely better than five years ago when I entered the space, it still is pretty illiquid. Many traders lament the lack of “proper” liquid screen market of calls and puts of various strikes.
     
    Traders who cut their teeth trading equity and fx options want the same trading weapons in crypto. However, the crypto option is a breech loaded musket compared to the crypto perpetual swap Gatling gun. Charge that hill if you dare.
     
    Trading options is orders of magnitude more complicated than trading futures and swaps. Delta, Vega, Theta, Rho, Gamma, dVega / dVol, I could go on with the alphabet letter soup of the option greeks. I still remember the weekly quizzes on options math and the greeks the MD would give me during my internship on the derivatives sales desk at Deutsche Bank. Given volatility sales and trading desks employ tens of thousands but not millions, most traders of all stripes barely understand how these markets are priced.
     
    Case in point, one day I was sitting with a trader who traded Variance Swaps. A Variance Swap allows the trader to have constant vega across all strikes. If you don’t know what that means, this story will be comforting. The trader had a fancy spreadsheet which calculated all the option greeks and told him his daily PNL. All he had to do was vigorously press F9 to generate quotes. I asked him how those were calculated. He responded that he didn’t know, the quants made the spreadsheet and he just followed it blindly.
     
    Moral of the story, this shit is complicated. 

    Strike one! Traders will always do what is easiest if they can generate the same return profile.
     
    Crypto volatility is very high. We are currently in a low volatility regime and 30 day realised volatility is around 40%. When pricing an option, the higher the volatility the more expensive the call or put. Therefore, option buyers, the speculators, must post high amounts of capital to obtain convex trades. In order to be cheaper than the BitMEX XBTUSD perpetual swap, the most liquid crypto derivatives product, the premium must be less than 1%. That is not possible when the underlying asset has such a high realised volatility.
     
    Strike two! Traders will always gravitate to the product with the most leverage.
     
    Market makers, I haven’t forgotten about you. For every buyer there is a seller. Writing options is a tough business. If the volatility is high, margin requirements for writers of options will be very expensive. Market makers must be able to write naked options while quoting. Writing naked call options on an asset that popped 40% in a few hours when Xi Jinping mentioned the word “blockchain” is risky. As a result, the margining systems employed by various platforms are extremely conservative.
     
    The same set of crypto market makers quote crypto delta one and options products. They must decide how to allocate their capital. If the option requires more capital due to margin requirements and has less flow because it’s less understood and offers less leverage, they will provide less liquidity. If the brave speculator turns up to trade an option and you can drive a Tesla pickup truck through the spread, she will hightail it back to XBTUSD.
     
    Strike three, and you are out! Traders prefer the liquid to the illiquid derivative.

    I hope you enjoyed a nice primer on the crypto derivatives market structure and why delta one products will be preferred to options by speculators. 

    Delta One:
    High leverage Limited liability which translates into a max loss of 100% of initial margin, but a max upside that vastly exceeds 100%. Also known as positive convexity. Liquidity
    Options:
    High premiums because of high implied volatility, which translates into low leverage or gearing. Limited liability as you can only lose your premium. Illiquid
    After laying out what won’t work, in the next voluminous installment I will get into my views on what sort of option / volatility products will become popular in 2020.
     
    Glossary of Terms
     
    For those of you who didn’t get any of what I just said, here’s a glossary.
     
    Delta – The change in the value of a derivative contract with respect to the price of the underlying asset.
     
    Delta One – Derivatives where delta equals one. This term will be used to refer to futures and swaps products of the crypto space. I was a practicing delta one trader during my time working for the man.
     
    Socialised Loss System – This is the dominant margining system used by all liquid crypto derivatives platforms. In this system, if there is not enough money to pay out winners due to bankrupt losers, the winners’ unrealized profit is reduced, or their position is closed early.
     
    Initial Margin / Limited Liability – A complement to the socialised loss system. Traders can only lose a position’s initial margin. The trading platform cannot go after other financial assets held outside of its system. This is different than most brokers offering any sort of derivatives / leveraged trading, they can and will go after the entirety of a traders’ financial net worth if losses exceed the initial margin.
     
    Insurance Fund – This is the guarantee fund attached to a socialised loss system. On BitMEX, if you are liquidated, the system takes over your position and closes it in the market. If there is equity left over after closure, those funds are deposited into the insurance fund. The losers pay into the fund with their leftover equity. The fund is tapped when a liquidation order cannot be closed at a price which is above its bankruptcy price.
     
    Volatility Products – Derivatives where the delta is greater than one. This term will be used to refer to options products of all stripes. When trading options, you are not just trading directionally but also for convexity and yield.
     
    Convexity – This is the asymmetric nature of a payoff curve. A positively convex trade is one where you make more money when you are right than when you are wrong, assuming the same asset price movement on the up or downside. Buying an option is a positively convex trade. A negatively convex trade is one where you lose more money when you are wrong than when you are right, assuming the same asset price movement on the up or downside. Selling or writing an option is a negatively convex trade. Convexity is not free, the price for this return profile is the premium attached to any option.
     
    Yield – A trade that yields a fixed known payoff by expiry. Selling a covered call option is a yield trade. E.g. A miner expects to produce 100 Bitcoin in one year sells 100 $10,000 Strike December 2020 Bitcoin / USD Call Options and receives 20 Bitcoin premium from the buyer. The miner knows a priori that this trade will yield 20 Bitcoin of income regardless of where the price of Bitcoin settles in one year.
     
    I am doing these concepts a disservice via these curt descriptions, but I am cognizant of a burning desire on behalf of punters to read as little as possible while still trading profitably.


    Risk Disclaimer

    This article should not be copied or reproduced in whole or in part. The information contained in this article does not constitute research or a recommendation. 

    Neither BitMEX nor any of its affiliates make any representation or warranty, as to the accuracy or completeness of the statements or any information contained in this article and any liability therefor (including in respect of direct, indirect or consequential loss or damage) is expressly disclaimed. This is not providing any financial, economic, legal, accounting or tax advice or recommendations.  In addition, the receipt of this article is not to be taken as constituting the giving of investment advice nor to constitute such person a client of BitMEX.
    Contact Us | Subscribe | Unsubscribe
  7. Like
    admin got a reaction from vamp111 in [hash] PayNyms и Биткойн анонимността   
    Не е тайна, че на този етап Биткойн не е достатъчно анонимен. Или поне не дотолкова, доколкото ни се иска. Това е така, защото блокчейнът е публичен и видим за всички. Широко разпространено мнение е, че Биткойн и останалите криптовалути се използват основно за трансфер на средства от нелегална дейност....
    Материалът PayNyms и Биткойн анонимността е публикуван за пръв път на Hash.bg.
    View the full article
  8. Like
    admin got a reaction from vamp111 in [bitcoin_core] Bitcoin Core version 0.19.0.1 released   
    Bitcoin Core version 0.19.0.1 is now available from:
    https://bitcoincore.org/bin/bitcoin-core-0.19.0.1/
    This release includes new features, various bug fixes and performance improvements, as well as updated translations.
    Please report bugs using the issue tracker at GitHub:
    https://github.com/bitcoin/bitcoin/issues
    To receive security and update notifications, please subscribe to:
    https://bitcoincore.org/en/list/announcements/join/
    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).
    Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but might take some time if the datadir needs to be migrated. Old wallet versions of Bitcoin Core are generally supported.
    Compatibility
    Bitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended to use Bitcoin Core on unsupported systems.
    Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them.
    From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is built using Qt 5.9.x, which doesn’t support versions of macOS older than 10.10. Additionally, Bitcoin Core does not yet change appearance when macOS “dark mode” is activated.
    Users running macOS Catalina may need to “right-click” and then choose “Open” to open the Bitcoin Core .dmg. This is due to new signing requirements imposed by Apple, which the Bitcoin Core project does not yet adhere too.
    Notable changes
    New user documentation
    Reduce memory suggests configuration tweaks for running Bitcoin Core on systems with limited memory. (#16339) New RPCs
    getbalances returns an object with all balances (mine, untrusted_pending and immature). Please refer to the RPC help of getbalances for details. The new RPC is intended to replace getbalance, getunconfirmedbalance, and the balance fields in getwalletinfo. These old calls and fields may be removed in a future version. (#15930, #16239)
    setwalletflag sets and unsets wallet flags that enable or disable features specific to that existing wallet, such as the new avoid_reuse feature documented elsewhere in these release notes. (#13756)
    getblockfilter gets the BIP158 filter for the specified block. This RPC is only enabled if block filters have been created using the -blockfilterindex configuration option. (#14121)
    New settings
    -blockfilterindex enables the creation of BIP158 block filters for the entire blockchain. Filters will be created in the background and currently use about 4 GiB of space. Note: this version of Bitcoin Core does not serve block filters over the P2P network, although the local user may obtain block filters using the getblockfilter RPC. (#14121) Updated settings
    whitebind and whitelist now accept a list of permissions to provide peers connecting using the indicated interfaces or IP addresses. If no permissions are specified with an address or CIDR network, the implicit default permissions are the same as previous releases. See the bitcoind -help output for these two options for details about the available permissions. (#16248)
    Users setting custom dbcache values can increase their setting slightly without using any more real memory. Recent changes reduced the memory use by about 9% and made chainstate accounting more accurate (it was underestimating the use of memory before). For example, if you set a value of “450” before, you may now set a value of “500” to use about the same real amount of memory. (#16957)
    Updated RPCs
    Note: some low-level RPC changes mainly useful for testing are described in the Low-level Changes section below.
    sendmany no longer has a minconf argument. This argument was not well-specified and would lead to RPC errors even when the wallet’s coin selection succeeded. Users who want to influence coin selection can use the existing -spendzeroconfchange, -limitancestorcount, -limitdescendantcount and -walletrejectlongchains configuration arguments. (#15596)
    getbalance and sendtoaddress, plus the new RPCs getbalances and createwallet, now accept an “avoid_reuse” parameter that controls whether already used addresses should be included in the operation. Additionally, sendtoaddress will avoid partial spends when avoid_reuse is enabled even if this feature is not already enabled via the -avoidpartialspends command line flag because not doing so would risk using up the “wrong” UTXO for an address reuse case. (#13756)
    RPCs which have an include_watchonly argument or includeWatching option now default to true for watch-only wallets. Affected RPCs are: getbalance, listreceivedbyaddress, listreceivedbylabel, listtransactions, listsinceblock, gettransaction, walletcreatefundedpsbt, and fundrawtransaction. (#16383)
    listunspent now returns a “reused” bool for each output if the wallet flag “avoid_reuse” is enabled. (#13756)
    getblockstats now uses BlockUndo data instead of the transaction index, making it much faster, no longer dependent on the -txindex configuration option, and functional for all non-pruned blocks. (#14802)
    utxoupdatepsbt now accepts a descriptors parameter that will fill out input and output scripts and keys when known. P2SH-witness inputs will be filled in from the UTXO set when a descriptor is provided that shows they’re spending segwit outputs. See the RPC help text for full details. (#15427)
    sendrawtransaction and testmempoolaccept no longer accept a allowhighfees parameter to fail mempool acceptance if the transaction fee exceeds the value of the configuration option -maxtxfee. Now there is a hardcoded default maximum feerate that can be changed when calling either RPC using a maxfeerate parameter. (#15620)
    getmempoolancestors, getmempooldescendants, getmempoolentry, and getrawmempool no longer return a size field unless the configuration option -deprecatedrpc=size is used. Instead a new vsize field is returned with the transaction’s virtual size (consistent with other RPCs such as getrawtransaction). (#15637)
    getwalletinfo now includes a scanning field that is either false (no scanning) or an object with information about the duration and progress of the wallet’s scanning historical blocks for transactions affecting its balances. (#15730)
    gettransaction now accepts a third (boolean) argument verbose. If set to true, a new decoded field will be added to the response containing the decoded transaction. This field is equivalent to RPC decoderawtransaction, or RPC getrawtransaction when verbose is passed. (#16185, #16866, #16873)
    createwallet accepts a new passphrase parameter. If set, this will create the new wallet encrypted with the given passphrase. If unset (the default) or set to an empty string, no encryption will be used. (#16394)
    getchaintxstats RPC now returns the additional key of window_final_block_height. (#16695)
    getmempoolentry now provides a weight field containing the transaction weight as defined in BIP141. (#16647)
    The getnetworkinfo and getpeerinfo commands now contain a new field with decoded network service flags. (#16786)
    getdescriptorinfo now returns an additional checksum field containing the checksum for the unmodified descriptor provided by the user (that is, before the descriptor is normalized for the descriptor field). (#15986)
    joinpsbts now shuffles the order of the inputs and outputs of the resulting joined PSBT. Previously, inputs and outputs were added in the order PSBTs were provided. This made it easy to correlate inputs to outputs, representing a privacy leak. (#16512)
    walletcreatefundedpsbt now signals BIP125 Replace-by-Fee if the -walletrbf configuration option is set to true. (#15911)
    GUI changes
    The GUI wallet now provides bech32 addresses by default. The user may change the address type during invoice generation using a GUI toggle, or the default address type may be changed with the -addresstype configuration option. (#15711, #16497)
    In 0.18.0, a ./configure flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now disabled by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass --enable-bip70 to ./configure. (#15584)
    Deprecated or removed configuration options
    -mempoolreplacement is removed, although default node behavior remains the same. This option previously allowed the user to prevent the node from accepting or relaying BIP125 transaction replacements. This is different from the remaining configuration option -walletrbf. (#16171) Deprecated or removed RPCs
    bumpfee no longer accepts a totalFee option unless the configuration parameter deprecatedrpc=totalFee is specified. This parameter will be fully removed in a subsequent release. (#15996)
    bumpfee has a new fee_rate option as a replacement for the deprecated totalFee. (#16727)
    generate is now removed after being deprecated in Bitcoin Core 0.18. Use the generatetoaddress RPC instead. (#15492)
    P2P changes
    BIP 61 reject messages were deprecated in v0.18. They are now disabled by default, but can be enabled by setting the -enablebip61 command line option. BIP 61 reject messages will be removed entirely in a future version of Bitcoin Core. (#14054)
    To eliminate well-known denial-of-service vectors in Bitcoin Core, especially for nodes with spinning disks, the default value for the -peerbloomfilters configuration option has been changed to false. This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service flag, accepting BIP37 bloom filters, or serving merkle blocks or transactions matching a bloom filter. Users who still want to provide bloom filter support may either set the configuration option to true to re-enable both BIP111 and BIP37 support or enable just BIP37 support for specific peers using the updated -whitelist and -whitebind configuration options described elsewhere in these release notes. For the near future, lightweight clients using public BIP111/BIP37 nodes should still be able to connect to older versions of Bitcoin Core and nodes that have manually enabled BIP37 support, but developers of such software should consider migrating to either using specific BIP37 nodes or an alternative transaction filtering system. (#16152)
    By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759)
    Miscellaneous CLI Changes
    The testnet field in bitcoin-cli -getinfo has been renamed to chain and now returns the current network name as defined in BIP70 (main, test, regtest). (#15566) Low-level changes
    RPC
    getblockchaininfo no longer returns a bip9_softforks object. Instead, information has been moved into the softforks object and an additional type field describes how Bitcoin Core determines whether that soft fork is active (e.g. BIP9 or BIP90). See the RPC help for details. (#16060)
    getblocktemplate no longer returns a rules array containing CSV and segwit (the BIP9 deployments that are currently in active state). (#16060)
    getrpcinfo now returns a logpath field with the path to debug.log. (#15483)
    Tests
    The regression test chain enabled by the -regtest command line flag now requires transactions to not violate standard policy by default. This is the same default used for mainnet and makes it easier to test mainnet behavior on regtest. Note that the testnet still allows non-standard txs by default and that the policy can be locally adjusted with the -acceptnonstdtxn command line flag for both test chains. (#15891) Configuration
    A setting specified in the default section but not also specified in a network-specific section (e.g. testnet) will now produce an error preventing startup instead of just a warning unless the network is mainnet. This prevents settings intended for mainnet from being applied to testnet or regtest. (#15629)
    On platforms supporting thread_local, log lines can be prefixed with the name of the thread that caused the log. To enable this behavior, use -logthreadnames=1. (#15849)
    Network
    When fetching a transaction announced by multiple peers, previous versions of Bitcoin Core would sequentially attempt to download the transaction from each announcing peer until the transaction is received, in the order that those peers’ announcements were received. In this release, the download logic has changed to randomize the fetch order across peers and to prefer sending download requests to outbound peers over inbound peers. This fixes an issue where inbound peers could prevent a node from getting a transaction. (#14897, #15834)
    If a Tor hidden service is being used, Bitcoin Core will be bound to the standard port 8333 even if a different port is configured for clearnet connections. This prevents leaking node identity through use of identical non-default port numbers. (#15651)
    Mempool and transaction relay
    Allows one extra single-ancestor transaction per package. Previously, if a transaction in the mempool had 25 descendants, or it and all of its descendants were over 101,000 vbytes, any newly-received transaction that was also a descendant would be ignored. Now, one extra descendant will be allowed provided it is an immediate descendant (child) and the child’s size is 10,000 vbytes or less. This makes it possible for two-party contract protocols such as Lightning Network to give each participant an output they can spend immediately for Child-Pays-For-Parent (CPFP) fee bumping without allowing one malicious participant to fill the entire package and thus prevent the other participant from spending their output. (#15681)
    Transactions with outputs paying v1 to v16 witness versions (future segwit versions) are now accepted into the mempool, relayed, and mined. Attempting to spend those outputs remains forbidden by policy (“non-standard”). When this change has been widely deployed, wallets and services can accept any valid bech32 Bitcoin address without concern that transactions paying future segwit versions will become stuck in an unconfirmed state. (#15846)
    Legacy transactions (transactions with no segwit inputs) must now be sent using the legacy encoding format, enforcing the rule specified in BIP144. (#14039)
    Wallet
    When in pruned mode, a rescan that was triggered by an importwallet, importpubkey, importaddress, or importprivkey RPC will only fail when blocks have been pruned. Previously it would fail when -prune has been set. This change allows setting -prune to a high value (e.g. the disk size) without the calls to any of the import RPCs failing until the first block is pruned. (#15870)
    When creating a transaction with a fee above -maxtxfee (default 0.1 BTC), the RPC commands walletcreatefundedpsbt and fundrawtransaction will now fail instead of rounding down the fee. Be aware that the feeRate argument is specified in BTC per 1,000 vbytes, not satoshi per vbyte. (#16257)
    A new wallet flag avoid_reuse has been added (default off). When enabled, a wallet will distinguish between used and unused addresses, and default to not use the former in coin selection. When setting this flag on an existing wallet, rescanning the blockchain is required to correctly mark previously used destinations. Together with “avoid partial spends” (added in Bitcoin Core v0.17.0), this can eliminate a serious privacy issue where a malicious user can track spends by sending small payments to a previously-paid address that would then be included with unrelated inputs in future payments. (#13756)
    Build system changes
    Python >=3.5 is now required by all aspects of the project. This includes the build systems, test framework and linters. The previously supported minimum (3.4), was EOL in March 2019. (#14954)
    The minimum supported miniUPnPc API version is set to 10. This keeps compatibility with Ubuntu 16.04 LTS and Debian 8 libminiupnpc-dev packages. Please note, on Debian this package is still vulnerable to CVE-2017-8798 (in jessie only) and CVE-2017-1000494 (both in jessie and in stretch). (#15993)
    0.19.0 change log
    Consensus
    #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs) #16060 Bury bip9 deployments (jnewbery) Policy
    #15557 Enhance bumpfee to include inputs when targeting a feerate (instagibbs) #15846 Make sending to future native witness outputs standard (sipa) Block and transaction handling
    #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery) #14121 Index for BIP 157 block filters (jimpo) #15141 Rewrite DoS interface between validation and net_processing (sdaftuar) #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto) #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift) #15999 init: Remove dead code in LoadChainTip (MarcoFalke) #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift) #16056 remove unused magic number from consistency check (instagibbs) #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt) #15894 Remove duplicated “Error: “ prefix in logs (hebasto) #14193 validation: Add missing mempool locks (MarcoFalke) #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt) #15305 [validation] Crash if disconnecting a block fails (sdaftuar) #16471 log correct messages when CPFP fails (jnewbery) #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke) #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact) #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt) #16854 Prevent UpdateTip log message from being broken up (stevenroose) #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke) #16713 Ignore old versionbit activations to avoid ‘unknown softforks’ warning (jnewbery) #17002 chainparams: Bump assumed chain params (MarcoFalke) #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar) P2P protocol and network code
    #15597 Generate log entry when blocks messages are received unexpectedly (pstratem) #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke) #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl) #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar) #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr) #16188 Document what happens to getdata of unknown type (MarcoFalke) #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli) #16152 Disable bloom filtering by default (TheBlueMatt) #15993 Drop support of the insecure miniUPnPc versions (hebasto) #16197 Use mockable time for tx download (MarcoFalke) #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier) #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier) #16631 Restore default whitelistrelay to true (NicolasDorier) #15759 Add 2 outbound block-relay-only connections (sdaftuar) #15558 Don’t query all DNS seeds at once (sipa) #16999 0.19 seeds update (laanwj) Wallet
    #15288 Remove wallet -> node global function calls (ryanofsky) #15491 Improve log output for errors during load (gwillen) #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof) #15680 Remove resendwallettransactions RPC method (jnewbery) #15508 Refactor analyzepsbt for use outside RPC code (gwillen) #15747 Remove plethora of Get*Balance (MarcoFalke) #15728 Refactor relay transactions (jnewbery) #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky) #15853 Remove unused import checkpoints.h (MarcoFalke) #15780 add cachable amounts for caching credit/debit values (kallewoof) #15778 Move maxtxfee from node to wallet (jnewbery) #15901 log on rescan completion (andrewtoth) #15917 Avoid logging no_such_file_or_directory error (promag) #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs) #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke) #15006 Add option to create an encrypted wallet (achow101) #16001 Give WalletModel::UnlockContext move semantics (sipa) #15741 Batch write imported stuff in importmulti (achow101) #16144 do not encrypt wallets with disabled private keys (mrwhythat) #15024 Allow specific private keys to be derived from descriptor (meshcollider) #13756 “avoid_reuse” wallet flag for improved privacy (kallewoof) #16226 Move ismine to the wallet module (achow101) #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof) #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto) #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors) #16237 Have the wallet give out destinations instead of keys (achow101) #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag) #16361 Remove redundant pre-TopUpKeypool check (instagibbs) #16244 Move wallet creation out of the createwallet rpc into its own function (achow101) #16227 Refactor CWallet’s inheritance chain (achow101) #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs) #16301 Use CWallet::Import* functions in all import* RPCs (achow101) #16402 Remove wallet settings from chainparams (MarcoFalke) #16415 Get rid of PendingWalletTx class (ryanofsky) #15588 Log the actual wallet file version and no longer publicly expose the “version” record (achow101) #16399 Improve wallet creation (fjahr) #16475 Enumerate walletdb keys (MarcoFalke) #15709 Do not add “setting” key as unknown (Bushstar) #16451 Remove CMerkleTx (jnewbery) #15906 Move min_depth and max_depth to coin control (amitiuttarwar) #16502 Drop unused OldKey (promag) #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101) #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors) #16503 Remove p2pEnabled from Chain interface (ariard) #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery) #14934 Descriptor expansion cache clarifications (Sjors) #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55) #16542 Return more specific errors about invalid descriptors (achow101) #16572 Fix Char as Bool in Wallet (JeremyRubin) #16753 extract PubKey from P2PK script with Solver (theStack) #16716 Use wallet name instead of pointer on unload/release (promag) #16185 gettransaction: add an argument to decode the transaction (darosior) #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke) #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider) #16624 encapsulate transactions state (ariard) #16830 Cleanup walletinitinterface.h (hebasto) #16796 Fix segfault in CreateWalletFromFile (MarcoFalke) #16866 Rename ‘decode’ argument in gettransaction method to ‘verbose’ (jnewbery) #16727 Explicit feerate for bumpfee (instagibbs) #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake) RPC and other APIs
    #15492 remove deprecated generate method (Sjors) #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake) #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake) #15642 Remove deprecated rpc warnings (jnewbery) #15637 Rename size to vsize in mempool related calls (fanquake) #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke) #15616 Clarify decodescript RPCResult doc (MarcoFalke) #15669 Fix help text for signtransactionwithXXX (torkelrogstad) #15596 Ignore sendmany::minconf as dummy value (MarcoFalke) #15755 remove unused var in rawtransaction.cpp (Bushstar) #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke) #15748 remove dead mining code (jnewbery) #15751 Speed up deriveaddresses for large ranges (sipa) #15770 Validate maxfeerate with AmountFromValue (promag) #15474 rest/rpc: Make mempoolinfo atomic (promag) #15463 Speedup getaddressesbylabel (promag) #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard) #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact) #15932 Serialize in getblock without cs_main (MarcoFalke) #15930 Add balances RPC (MarcoFalke) #15730 Show scanning details in getwalletinfo (promag) #14802 faster getblockstats using BlockUndo data (FelixWeis) #14984 Speedup getrawmempool when verbose=true (promag) #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk) #16063 Mention getwalletinfo where a rescan is triggered (promag) #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo) #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior) #15427 Add support for descriptors to utxoupdatepsbt (sipa) #16262 Allow shutdown while in generateblocks (pstratem) #15483 Adding a ‘logpath’ entry to getrpcinfo (darosior) #16325 Clarify that block count means height excl genesis (MarcoFalke) #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery) #16332 Add logpath description for getrpcinfo (instagibbs) #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof) #15996 Deprecate totalfee argument in bumpfee (instagibbs) #16467 sendrawtransaction help privacy note (jonatack) #16596 Fix getblocktemplate CLI example (emilengler) #15986 Add checksum to getdescriptorinfo (sipa) #16647 add weight to getmempoolentry output (fanquake) #16695 Add window final block height to getchaintxstats (leto) #16798 Refactor rawtransaction_util’s SignTransaction to separate prevtx parsing (achow101) #16285 Improve scantxoutset response and help message (promag) #16725 Don’t show addresses or P2PK in decoderawtransaction (NicolasDorier) #16787 Human readable network services (darosior) #16251 Improve signrawtransaction error reporting (ajtowns) #16873 fix regression in gettransaction (jonatack) #16512 Shuffle inputs and outputs after joining psbts (achow101) #16521 Use the default maxfeerate value as BTC/kB (Remagpie) #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony) #17131 fix -rpcclienttimeout 0 option (fjahr) #17249 Add missing deque include to fix build (jbeich) #17368 cli: fix -getinfo output when compiled with no wallet (fanquake) GUI
    #15464 Drop unused return values in WalletFrame (promag) #15614 Defer removeAndDeleteWallet when no modal widget is active (promag) #15711 Generate bech32 addresses by default (MarcoFalke) #15829 update request payment button text and tab description (fanquake) #15874 Resolve the qt/guiutil <-> qt/optionsmodel CD (251Labs) #15371 Uppercase bech32 addresses in qr codes (benthecarman) #15928 Move QRImageWidget to its own file-pair (luke-jr) #16113 move coin control “OK” to the right hand side of the dialog (fanquake) #16090 Add vertical spacer to peer detail widget (JosuGZ) #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto) #16263 Use qInfo() if no error occurs (hebasto) #16153 Add antialiasing to traffic graph widget (JosuGZ) #16350 Remove unused guard (hebasto) #16106 Sort wallets in open wallet menu (promag) #16291 Stop translating PACKAGE_NAME (MarcoFalke) #16380 Remove unused bits from the service flags enum (MarcoFalke) #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto) #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke) #16436 Do not create payment server if -disablewallet option provided (hebasto) #16514 Remove unused RPCConsole::tabFocus (promag) #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke) #16349 Remove redundant WalletController::addWallet slot (hebasto) #16578 Do not pass in command line arguments to QApplication (achow101) #16612 Remove menu icons (laanwj) #16677 remove unused PlatformStyle::TextColorIcon (fanquake) #16694 Ensure transaction send error is always visible (fanquake) #14879 Add warning messages to the debug window (hebasto) #16708 Replace obsolete functions of QSslSocket (hebasto) #16701 Replace functions deprecated in Qt 5.13 (hebasto) #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto) #16707 Remove obsolete QModelIndex::child() (hebasto) #16758 Replace QFontMetrics::width() with TextWidth() (hebasto) #16760 Change uninstall icon on Windows (GChuf) #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto) #16788 Update transifex slug for 0.19 (laanwj) #15450 Create wallet menu option (achow101) #16735 Remove unused menu items for Windows and Linux (GChuf) #16826 Do additional character escaping for wallet names and address labels (achow101) #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery) #16714 add prune to intro screen with smart default (Sjors) #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard) #16822 Create wallet menu option follow-ups (jonatack) #16882 Re-generate translations before 0.19.0 (MarcoFalke) #16928 Rename address checkbox back to bech32 (MarcoFalke) #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl) #16971 Change default size of intro frame (emilengler) #16988 Periodic translations update (laanwj) #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101) #16952 make sure to update the UI when deleting a transaction (jonasschnelli) #17031 Prevent processing duplicate payment requests (promag) #17135 Make polling in ClientModel asynchronous (promag) #17120 Fix start timer from non QThread (promag) #17257 disable font antialiasing for QR image address (fanquake) Build system
    #14954 Require python 3.5 (MarcoFalke) #15580 native_protobuf: avoid system zlib (dongcarl) #15601 Switch to python3 (take 3) (MarcoFalke) #15581 Make less assumptions about build env (dongcarl) #14853 latest RapidCheck (fanquake) #15446 Improve depends debuggability (dongcarl) #13788 Fix –disable-asm for newer assembly checks/code (luke-jr) #12051 add missing debian contrib file to tarball (puchu) #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) #15978 .gitignore: Don’t ignore depends patches (dongcarl) #15939 gitian: Remove windows 32 bit build (MarcoFalke) #15239 scripts and tools: Move non-linux build source tarballs to “bitcoin-binaries/version” directory (hebasto) #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli) #16051 add patch to common dependencies (fanquake) #16049 switch to secure download of all dependencies (Kemu) #16059 configure: Fix thread_local detection (dongcarl) #16089 add ability to skip building zeromq (fanquake) #15844 Purge libtool archives (dongcarl) #15461 update to Boost 1.70 (Sjors) #16141 remove GZIP export from gitian descriptors (fanquake) #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery) #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier) #16183 xtrans: Configure flags cleanup (dongcarl) #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier) #16271 remove -Wall from rapidcheck build flags (fanquake) #16309 [MSVC] allow user level project customization (NicolasDorier) #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier) #15457 Check std::system for -[alert block wallet]notify (Sjors) #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors) #16352 prune dbus from depends (fanquake) #16270 expat 2.2.7 (fanquake) #16408 Prune X packages (dongcarl) #16386 disable unused Qt features (fanquake) #16424 Treat -Wswitch as error when –enable-werror (MarcoFalke) #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake) #16434 Specify AM_CPPFLAGS for ZMQ (domob1812) #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar) #16573 disable building libsecp256k1 benchmarks (fanquake) #16533 disable libxcb extensions (fanquake) #16589 Remove unused src/obj-test folder (MarcoFalke) #16435 autoconf: Sane --enable-debug defaults (dongcarl) #16622 echo property tests status during build (jonatack) #16611 Remove src/obj directory from repository (laanwj) #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake) #16654 build: update RapidCheck Makefile (jonatack) #16370 cleanup package configure flags (fanquake) #16746 msbuild: Ignore linker warning (sipsorcery) #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery) #16810 guix: Remove ssp spec file hack (dongcarl) #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake) #16413 Bump QT to LTS release 5.9.8 (THETCR) #15584 disable BIP70 support by default (fanquake) #16871 make building protobuf optional in depends (fanquake) #16879 remove redundant sed patching (fanquake) #16809 zlib: Move toolchain options to configure (dongcarl) #15146 Solve SmartOS FD_ZERO build issue (Empact) #16870 update boost macros to latest upstream for improved error reporting (fanquake) #16982 Factor out qt translations from build system (laanwj) #16926 Add OpenSSL termios fix for musl libc (nmarley) #16927 Refresh ZeroMQ 4.3.1 patch (nmarley) #17005 Qt version appears only if GUI is being built (ch4ot1c) #16468 Exclude depends/Makefile in .gitignore (promag) Tests and QA
    #15296 Add script checking for deterministic line coverage in unit tests (practicalswift) #15338 ci: Build and run tests once on freebsd (MarcoFalke) #15479 Add .style.yapf (MarcoFalke) #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen) #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke) #15473 bench: Benchmark mempooltojson (MarcoFalke) #15466 Print remaining jobs in test_runner.py (stevenroose) #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke) #15255 Remove travis_wait from lint script (gkrizek) #15686 make pruning test faster (jnewbery) #15533 .style.yapf: Set column_limit=160 (MarcoFalke) #15660 Overhaul p2p_compactblocks.py (sdaftuar) #15495 Add regtests for HTTP status codes (domob1812) #15772 Properly log named args in authproxy (MarcoFalke) #15771 Prevent concurrency issues reading .cookie file (promag) #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke) #15629 init: Throw error when network specific config is ignored (MarcoFalke) #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke) #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke) #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke) #15352 Reduce noise level in test_bitcoin output (practicalswift) #15779 Add wallet_balance benchmark (MarcoFalke) #15843 fix outdated include in blockfilter_index_tests (jamesob) #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke) #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke) #15895 Avoid re-reading config.ini unnecessarily (luke-jr) #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr) #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr) #15696 test_runner: Move feature_pruning to base tests (MarcoFalke) #15869 Add settings merge test to prevent regresssions (ryanofsky) #15758 Add further tests to wallet_balance (MarcoFalke) #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke) #15949 test_runner: Move pruning back to extended (MarcoFalke) #15927 log thread names by default in functional tests (jnewbery) #15664 change default Python block serialization to witness (instagibbs) #15988 Add test for ArgsManager::GetChainName (ryanofsky) #15963 Make random seed logged and settable (jnewbery) #15943 Fail if RPC has been added without tests (MarcoFalke) #16036 travis: Run all lint scripts even if one fails (scravy) #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk) #16079 wallet_balance.py: Prevent edge cases (stevenroose) #16078 replace tx hash with txid in rawtransaction test (LongShao007) #16042 Bump MAX_NODES to 12 (MarcoFalke) #16124 Limit Python linting to files in the repo (practicalswift) #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift) #16214 travis: Fix caching issues (MarcoFalke) #15982 Make msg_block a witness block (MarcoFalke) #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift) #16236 fuzz: Log output even if fuzzer failed (MarcoFalke) #15520 cirrus: Run extended test feature_pruning (MarcoFalke) #16234 Add test for unknown args (MarcoFalke) #16207 stop generating lcov coverage when functional tests fail (asood123) #16252 Log to debug.log in all unit tests (MarcoFalke) #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli) #16278 Remove unused includes (practicalswift) #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke) #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs) #16294 Create at most one testing setup (MarcoFalke) #16299 bench: Move generated data to a dedicated translation unit (promag) #16329 Add tests for getblockchaininfo.softforks (MarcoFalke) #15687 tool wallet test coverage for unexpected writes to wallet (jonatack) #16267 bench: Benchmark blocktojson (fanatid) #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift) #16338 Disable other targets when enable-fuzz is set (qmma70) #16334 rpc_users: Also test rpcauth.py with password (dongcarl) #15282 Replace hard-coded hex tx with class in test framework (stevenroose) #16390 Add –filter option to test_runner.py (promag) #15891 Require standard txs in regtest by default (MarcoFalke) #16374 Enable passing wildcard test names to test runner from root (jonatack) #16420 Fix race condition in wallet_encryption test (jonasschnelli) #16422 remove redundant setup in addrman_tests (zenosage) #16438 travis: Print memory and number of cpus (MarcoFalke) #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr) #16459 Fix race condition in example_test.py (sdaftuar) #16464 Ensure we don’t generate a too-big block in p2sh sigops test (sdaftuar) #16491 fix deprecated log.warn in feature_dbcrash test (jonatack) #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift) #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery) #16293 Make test cases separate functions (MarcoFalke) #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke) #16277 Suppress output in test_bitcoin for expected errors (gertjaap) #16493 Fix test failures (MarcoFalke) #16538 Add missing sync_blocks to feature_pruning (MarcoFalke) #16509 Adapt test framework for chains other than “regtest” (MarcoFalke) #16363 Add test for BIP30 duplicate tx (MarcoFalke) #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke) #16554 only include and use OpenSSL where it’s actually needed (BIP70) (fanquake) #16598 Remove confusing hash256 function in util (elichai) #16595 travis: Use extended 90 minute timeout when available (MarcoFalke) #16563 Add unit test for AddTimeData (mzumsande) #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift) #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke) #16582 Rework ci (Use travis only as fallback env) (MarcoFalke) #16633 travis: Fix test_runner.py timeouts (MarcoFalke) #16646 Run tests with UPnP disabled (fanquake) #16623 ci: Add environment files for all settings (MarcoFalke) #16656 fix rpc_setban.py race (jonasschnelli) #16570 Make descriptor tests deterministic (davereikher) #16404 Test ZMQ notification after chain reorg (promag) #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift) #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke) #16767 Check for codespell in lint-spelling.sh (kristapsk) #16768 Make lint-includes.sh work from any directory (kristapsk) #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact) #16804 Remove unused try-block in assert_debug_log (MarcoFalke) #16850 servicesnames field in getpeerinfo and getnetworkinfo (darosior) #16551 Test that low difficulty chain fork is rejected (MarcoFalke) #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke) #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke) #16888 Bump timeouts in slow running tests (MarcoFalke) #16864 Add python bech32 impl round-trip test (instagibbs) #16865 add some unit tests for merkle.cpp (soroosh-sdi) #14696 Add explicit references to related CVE’s in p2p_invalid_block test (lucash-dev) #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke) #16898 Remove connect_nodes_bi (MarcoFalke) #16917 Move common function assert_approx() into util.py (fridokus) #16921 Add information on how to add Vulture suppressions (practicalswift) #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke) #16918 Make PORT_MIN in test runner configurable (MarcoFalke) #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke) #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack) #16959 ci: Set $host before setting fallback values (MarcoFalke) #16961 Remove python dead code linter (laanwj) #16931 add unittests for CheckProofOfWork (soroosh-sdi) #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj) #16987 Correct docstring param name (jbampton) #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke) #17006 Enable UBSan for Travis fuzzing job (practicalswift) #17086 Fix fs_tests for unknown locales (carnhofdaki) #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke) #16742 test: add executable flag for wallet_watchonly.py (theStack) #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740) Miscellaneous
    #15335 Fix lack of warning of unrecognized section names (AkioNak) #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke) #15609 scripts and tools: Set ‘distro’ explicitly (hebasto) #15519 Add Poly1305 implementation (jonasschnelli) #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke) #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas) #15920 lint: Check that all wallet args are hidden (MarcoFalke) #15849 Thread names in logs and deadlock debug tools (jamesob) #15650 Handle the result of posix_fallocate system call (lucayepa) #15766 scripts and tools: Upgrade gitian image before signing (hebasto) #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli) #15968 Fix portability issue with pthreads (grim-trigger) #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye) #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto) #15224 Add RNG strengthening (10ms once every minute) (sipa) #15840 Contrib scripts: Filter IPv6 by ASN (abitfan) #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto) #15236 scripts and tools: Make –setup command independent (hebasto) #16114 contrib: Add curl as a required program in gitian-build.py (fanquake) #16046 util: Add type safe gettime (MarcoFalke) #15703 Update secp256k1 subtree to latest upstream (sipa) #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake) #16130 Don’t GPG sign intermediate commits with github-merge tool (stevenroose) #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake) #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj) #16112 util: Log early messages (MarcoFalke) #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj) #16300 util: Explain why the path is cached (MarcoFalke) #16314 scripts and tools: Update copyright_header.py script (hebasto) #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random) #14734 fix an undefined behavior in uint::SetHex (kazcw) #16327 scripts and tools: Update ShellCheck linter (hebasto) #15277 contrib: Enable building in guix containers (dongcarl) #16362 Add bilingual_str type (hebasto) #16481 logs: add missing space (harding) #16581 sipsorcery gitian key (sipsorcery) #16566 util: Refactor upper/lowercase functions (kallewoof) #16620 util: Move resolveerrmsg to util/error (MarcoFalke) #16625 scripts: Remove github-merge.py (fanquake) #15864 Fix datadir handling (hebasto) #16670 util: Add join helper to join a list of strings (MarcoFalke) #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake) #16730 Support serialization of std::vector<bool> (sipa) #16556 Fix systemd service file configuration directory setup (setpill) #15615 Add log output during initial header sync (jonasschnelli) #16774 Avoid unnecessary “Synchronizing blockheaders” log messages (jonasschnelli) #16489 log: harmonize bitcoind logging (jonatack) #16577 util: Cbufferedfile fixes and unit test (LarryRuane) #16984 util: Make thread names shorter (hebasto) #17038 Don’t rename main thread at process level (laanwj) #17184 util: Filter out macos process serial number (hebasto) #17095 util: Filter control characters out of log messages (laanwj) #17085 init: Change fallback locale to C.UTF-8 (laanwj) #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus) #17449 fix uninitialized variable nMinerConfirmationWindow (bitcoinVBR) Documentation
    #15514 Update Transifex links (fanquake) #15513 add “sections” info to example bitcoin.conf (fanquake) #15530 Move wallet lock annotations to header (MarcoFalke) #15562 remove duplicate clone step in build-windows.md (fanquake) #15565 remove release note fragments (fanquake) #15444 Additional productivity tips (Sjors) #15577 Enable TLS in link to chris.beams.io (JeremyRand) #15604 release note for disabling reject messages by default (jnewbery) #15611 Add Gitian key for droark (droark) #15626 Update ACK description in CONTRIBUTING.md (jonatack) #15603 Add more tips to productivity.md (gwillen) #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar) #15685 rpc-mining: Clarify error messages (MarcoFalke) #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke) #15659 fix findFork comment (r8921039) #15718 Improve netaddress comments (dongcarl) #15833 remove out-of-date comment on pay-to-witness support (r8921039) #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke) #15267 explain AcceptToMemoryPoolWorker’s coins_to_uncache (jamesob) #15887 Align code example style with clang-format (hebasto) #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon) #15908 Align MSVC build options with Linux build ones (hebasto) #15941 Add historical release notes for 0.18.0 (laanwj) #15794 Clarify PR guidelines w/re documentation (dongcarl) #15607 Release process updates (jonatack) #14364 Clarify -blocksdir usage (sangaman) #15777 Add doxygen comments for keypool classes (jnewbery) #15820 Add productivity notes for dummy rebases (dongcarl) #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke) #16080 build/doc: update bitcoin_config.h packages, release process (jonatack) #16047 analyzepsbt description in doc/psbt.md (jonatack) #16039 add release note for 14954 (fanquake) #16139 Add riscv64 to outputs list in release-process.md (JeremyRand) #16140 create security policy (narula) #16164 update release process for SECURITY.md (jonatack) #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke) #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact) #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke) #16196 Add release notes for 14897 & 15834 (MarcoFalke) #16241 add rapidcheck to vcpkg install list (fanquake) #16243 Remove travis badge from readme (MarcoFalke) #16256 remove orphaned header in developer notes (jonatack) #15964 Improve build-osx document formatting (giulio92) #16313 Fix broken link in doc/build-osx.md (jonatack) #16330 Use placeholder instead of key expiration date (hebasto) #16339 add reduce-memory.md (fanquake) #16347 Include static members in Doxygen (dongcarl) #15824 Improve netbase comments (dongcarl) #16430 Update bips 35, 37 and 111 status (MarcoFalke) #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke) #16484 update labels in CONTRIBUTING.md (MarcoFalke) #16483 update Python command in msvc readme (sipsorcery) #16504 Add release note for the deprecated totalFee option of bumpfee (promag) #16448 add note on precedence of options in bitcoin.conf (fanquake) #16536 Update and extend benchmarking.md (ariard) #16530 Fix grammar and punctuation in developer notes (Tech1k) #16574 Add historical release notes for 0.18.1 (laanwj) #16585 Update Markdown syntax for bdb packages (emilengler) #16586 Mention other ways to conserve memory on compilation (MarcoFalke) #16605 Add missing contributor to 0.18.1 release notes (meshcollider) #16615 Fix typos in COPYRIGHT (gapeman) #16626 Fix spelling error chache -> cache (nilswloewen) #16587 Improve versionbits.h documentation (ariard) #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto) #16634 Refer in rpcbind doc to the manpage (MarcoFalke) #16555 mention whitelist is inbound, and applies to blocksonly (Sjors) #16645 initial RapidCheck property-based testing documentation (jonatack) #16691 improve depends prefix documentation (fanquake) #16629 Add documentation for the new whitelist permissions (NicolasDorier) #16723 Update labels in CONTRIBUTING.md (hebasto) #16461 Tidy up shadowing section (promag) #16621 add default bitcoin.conf locations (GChuf) #16752 Delete stale URL in test README (michaelfolkson) #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke) #16806 Add issue templates for bug and feature request (MarcoFalke) #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly) #16863 Add a missing closing parenthesis in the bitcoin-wallet’s help (darosior) #16757 CChainState return values (MarcoFalke) #16847 add comments clarifying how local services are advertised (jamesob) #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c) #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs) #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke) #16914 Update homebrew instruction for doxygen (Sjors) #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c) #16960 replace outdated OpenSSL comment in test README (fanquake) #16968 Remove MSVC update step from translation process (laanwj) #16953 Improve test READMEs (fjahr) #16962 Put PR template in comments (laanwj) #16397 Clarify includeWatching for fundrawtransaction (stevenroose) #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner) #16997 Update bips.md for 0.19 (laanwj) #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke) #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke) #17111 update bips.md with buried BIP9 deployments (MarcoFalke) Credits
    Thanks to everyone who directly contributed to this release:
    251 Aaron Clauson Akio Nakamura Alistair Mann Amiti Uttarwar Andrew Chow andrewtoth Anthony Towns Antoine Riard Aseem Sood Ben Carman Ben Woosley bpay Carl Dong Carnhof Daki Chris Capobianco Chris Moore Chuf clashic clashicly Cory Fields Daki Carnhof Dan Gershony Daniel Edgecumbe Daniel Kraft Daniel McNally darosior David A. Harding David Reikher Douglas Roark Elichai Turkel Emil Emil Engler ezegom Fabian Jahr fanquake Felix Weis Ferdinando M. Ametrano fridokus gapeman GChuf Gert-Jaap Glasbergen Giulio Lombardo Glenn Willen Graham Krizek Gregory Sanders grim-trigger gwillen Hennadii Stepanov Jack Mallers James Hilliard James O’Beirne Jan Beich Jeremy Rubin JeremyRand Jim Posen John Bampton John Newbery Jon Atack Jon Layton Jonas Schnelli Jonathan “Duke” Leto João Barbosa Joonmo Yang Jordan Baczuk Jorge Timón Josu Goñi Julian Fleischer Karl-Johan Alm Kaz Wesley keepkeyjon Kirill Fomichev Kristaps Kaupe Kristian Kramer Larry Ruane Lenny Maiorani LongShao007 Luca Venturini lucash-dev Luke Dashjr marcoagner MarcoFalke marcuswin Martin Ankerl Martin Zumsande Matt Corallo MeshCollider Michael Folkson Miguel Herranz Nathan Marley Neha Narula nicolas.dorier Nils Loewen nkostoulas NullFunctor orient Patrick Strateman Peter Bushnell Peter Wagner Pieter Wuille practicalswift qmma r8921039 RJ Rybarczyk Russell Yanofsky Samuel Dobson Sebastian Falbesoner setpill shannon1916 Sjors Provoost soroosh-sdi Steven Roose Suhas Daftuar tecnovert THETCR Tim Ruffing Tobias Kaderle Torkel Rogstad Ulrich Kempken whythat William Casarin Wladimir J. van der Laan zenosage As well as everyone that helped translating on Transifex.
    View the full article
  9. Like
    admin got a reaction from vamp111 in [hash] Тежки 20 часа за най-големите крипто борси за деривати   
    Дори и да не е отразено в цената на Биткойн (няма драстичен спад) две от най-големите борси за деривати – Deribit и BitMEX, имат тежко денонощие. Двата проблема са от различно естество. Проблемът за Deribit се появи около 23:00 часа снощи вечер (31.10.2017). Поради вътрешна грешка в калкулирането на техния...
    Материалът Тежки 20 часа за най-големите крипто борси за деривати е публикуван за пръв път на Hash.bg.
    View the full article
  10. Thanks
    admin got a reaction from Pistolero in [hash] Тежки 20 часа за най-големите крипто борси за деривати   
    Дори и да не е отразено в цената на Биткойн (няма драстичен спад) две от най-големите борси за деривати – Deribit и BitMEX, имат тежко денонощие. Двата проблема са от различно естество. Проблемът за Deribit се появи около 23:00 часа снощи вечер (31.10.2017). Поради вътрешна грешка в калкулирането на техния...
    Материалът Тежки 20 часа за най-големите крипто борси за деривати е публикуван за пръв път на Hash.bg.
    View the full article
  11. Like
    admin got a reaction from vamp111 in [bitmex]???? Crypto Trader Digest   
    style="margin: 0;color: black;">
    View this email in a browser
    BitMEX Crypto Trader Digest May 23, 2019 From the desk of Arthur Hayes
    Co-founder & CEO, BitMEX
    From The BitMEX Engine Team
    BitMEX Technology Scaling, Part 2: The Road to 100x
    Today, we’re offering Part 2 of this series — a deep dive into overload and problems inherent to horizontal scaling. We will discuss the results from our efforts so far in handling unprecedented volumes and will detail the parts of the BitMEX engine that must remain serial, the parts that can be parallelised, and the benefits of BitMEX’s API-first design.

    From The BitMEX Research Desk
    The Lightning Network (Part 2) – Routing Fee Economics
    Abstract: BitMEX Research examines the market dynamics of Lightning network routing fees and the financial incentives for Lightning node operators to provide liquidity. We identify the interrelationship and balance between Lightning routing fees and investment returns for channel liquidity providers, as a major challenge for the network, rather than the computer science aspects of the routing problem. We conclude that if the Lightning network scales, at least in theory, conditions in wider financial markets, such as changing interest rates and investor sentiment may impact the market for Lightning network fees. However, regardless of the prevailing economic conditions, we are of the view that in the long term, competition will be the key driver of prices. Low barriers to entry into the market could mean the balance favours users and low fees, rather than investment returns for liquidity providers.
    (Photo source: Pexels)

    The Schnorr Signature & Taproot Softfork Proposal
    Abstract: We summarise and provide context for a recent Bitcoin softfork upgrade proposal, which includes a new digital signature scheme (Schnorr), as well as a complementary upgrade called Taproot, which adds new capabilities that extend Bitcoin’s smart contracting capability. The upgrades are structured to ensure that they simultaneously improve both scalability and privacy. Other than increased complexity, there are no significant downsides to the proposal, and the most controversial aspect of it is likely to be the lack of other anticipated features. We conclude that although many will be enthusiastic about the upgrade and are keen to see it rolled out, patience will be important.
    (Photo source: Pexels)
    Bitcoin Cash SV – 6 block chainsplit
    Abstract: On 18th April 2019, the BitMEX Research Bitcoin Cash SV node experienced 2 block re-organisations. First a 3 block re-organisation, followed by a 6 block re-organisation. In this brief piece, we provide data and graphics related to the temporary chainsplit. The chainsplit appears to be caused by large blocks which took too long to propagate, rather than consensus related issues. Our analysis shows there were no double spends related to the split.
    Initial Exchange Offerings
    Abstract: In this piece we present data on a relatively new phenomenon, Initial Exchange Offerings (IEOs). The ICO market is down around 97% in Q1 2019 (YoY), based on the amount of capital raised. In this relatively challenging climate to raise funds, some projects have changed the “C” in ICO to an “E”, perhaps in an attempt to assist with raising capital. At least for now, to some extent, this appears to be working, with almost $40m having been raised so far this year. However, we remain sceptical about the prospects for long term investors.

      Let's Go Choyna!
    In America, the “heartland”, “rustbelt”, “flyover states” and “insert your euphemism for underemployed workers”, have not participated in the tech and finance bull market from the 1980s until the present. Trump rode the wave of this disaffection to the White House, and he panders to his constituency with China bashing. Oh, and you best believe he is going to wipe the floor with the Democrats in 2020. I will trade SIZE on this prediction.
     
    In China, the rural-now-urban peasants left their villages to work in factories mass-producing knick knacks at affordable prices for American soccer moms. 30 years on, Xi Jinping and the Politburo must continue to generate wage growth to keep the peasant horde happy. In the absence of actual demand, that means China prints money to continue to support heavy industry and manufacturing.
     
    Both America and China need a market for their labour. The trade war is a manifestation of this conflict. Unfortunately, win or lose, this “war” will not solve the structural economic issues that keep the plebes plebeian. It is a convenient distraction for both Trump and Xi.
     
    The unfortunate part for China is that it lacks a well-functioning consumer economic participation to create homegrown GDP growth. Instead, China relies on money printing to generate economic activity. The trade war, while pointless in the long run, pushed China to continue to print more and more money to keep growth numbers at “acceptable” levels.
     
    I subscribe to the view of Michael Pettis that GDP is a political number. Beijing chooses a GDP growth rate, then prints money to hit the target. It does not represent the true economic health of the Chinese economy. I highly suggest anyone serious about understanding China macroeconomics to subscribe to his newsletter. It’s pricey but worth every penny.
     
    So Back to Bitcoin
     
    Bitcoin is a monetary asset, and the flow of money and credit is crucial to understanding how the price will perform in the future. The Fed and PBOC are committed to increasing the size of their balance sheets in 2019, that is positive for Bitcoin.
     
    The reason I focus more on China is the scale of credit creation each year dwarfs any country ever in human history. The other important consideration is Chinese people have no illusion about what is actually happening. Unlike their American counterparts, ordinary Chinese people do not trust the government.
     
    Americans love America. Walk around an American and city, and you will see countless people wearing American flag paraphernalia. Walk around a Chinese city, and you are more likely to see a Balenciaga handbag than someone rocking the Chinese flag as a fashion statement.
     
    China has devalued and revalued the Yuan multiple times since the early 1980s. This is not lost on the population. The PBOC has kept the Yuan relatively stable since early 2017. They even made moves to actually tighten credit conditions. However, the trade war changed all that, and now they are printing money like it’s 2008. That pressure will build around the exchange rate, and at some point, either the PBOC tightens credit and slows GDP growth, or devalues.
     
    Chinese asset holders are not stupid. They see the writing on the wall, and as the CNY has recently crept higher towards the magical 7.00, Bitcoin exited the doldrums and more than doubled.



     

    The charts above show the USD/CNH (this is the offshore CNY) and the Bitcoin / USD price performance during two time periods, June 2015 – December 2015 and January 2019 – May 2019. The charts show that Bitcoin performs well during periods of rapid Yuan depreciation.
     
    The wrinkle in 2019 is that the major Chinese exchanges no longer offer Bitcoin / CNY trading. Now Chinese traders must obtain Bitcoin in the Chinese OTC markets. Make no mistake, just because you don’t see Okcoin and Huobi putting up big volume numbers in China, doesn’t mean they have stopped serving the Chinese market. The OTC market is vibrant, and these venues have found politically acceptable ways to allow buyers and sellers to meet in China.
     
    Zhao Dong, arguably the largest OTC trader in China, is one of the main people responsible for the successful $1bn Bitfinex LEO IEO. He went on the record supporting Bitfinex to the Chinese crypto community, and his clout and network helped Bitfinex win back the Chinese traders. China still matters.
     
    The key number is 7.00. If the PBOC allows the Yuan to break this level, ordinary Zhou’s will scramble to get their hands on Bitcoin and other cryptos. Similar to 2015, a sharp and sudden Yuan depreciation could lead to the beginning of another epic bull market.
    Replace C with E


    When in doubt, change the name. ICO is a dirty word these days, so let’s just call them IEO’s (Initial Exchange Offerings). 2019 marked the beginning of the IEO market. BitMEX Research wrote an excellent piece examining the beginnings of the IEO market.

    With an ICO, any schmuck with an internet connection could put up a makeshift WordPress site, a Bitcoin or Ethereum address, and a poorly written whitepaper. Fast forward a few months, and the team became crypto millionaires. After the lawyers and regulators scared off everyone, the ICO market died.

    The IEO market rose from the ashes. Instead of just anyone raising money, the exchanges with the most vibrant user bases became the gatekeepers. It makes sense, ICO projects all jostled to get onto Binance, Bittrex, Kraken, Bitfinex etc. You can’t pump an ICO without a coterie of speculators, which successful exchanges bring to the party. Instead of allowing a bunch of amateurs financial token advisors take the vig, the exchanges completely cut them out of the process.

    The most straightforward IEO investments are in the exchanges themselves. Binance pioneered the exchange token space with its BNB token. Binance pledged that it would buyback BNB in the market with profits generated from the exchange. To encourage traders to hold BNB, Binance gave fee discounts and recently required punters to stake BNB to participate in hot IEO deals.

    ICO mania treated Bitcoin and Ether very well. The more people that heard about the insane returns trading ICO’s, the more people who entered the crypto ecosystem. The first asset they naturally bought was Bitcoin or Ether. Even if some of that money transitioned onto shitcoins, a lot of it stuck around.

    The question during this crypto winter is, what new thing will cause speculators to pile back into the crypto capital markets. Enter Bitfinex!

    The Tether / Bitfinex saga entered a new stage when payment processing firm Crypto Capital was unable to give Bitfinex access to its money. Bitfinex took a “loan” from Tether, and once this was exposed via the NYAG, Bitfinex had some ‘splanin’ to do.

    When in doubt IEO!! Bitfinex used the new shitcoin IEO wrapper to issue the largest exchange token ever. They planned to privately raise $1 billion to plug the Crypto Capital hole and keep Tether backed 1:1 with USD cash money.

    The community rallied behind them. In under two weeks, the Bitfinex LEO exchange token raised $1 billion from private individuals. This is truly amazing.

    Read the LEO whitepaper and an S1 for an IPO in the United States. You will quickly realise the LEO whitepaper is about one ton lighter in the material than an S1. No matter, the trading community piled in.
     
    The Capital Structure?

    Where does an IEO sit on the capital structure of a company? That is a great question. In the case of exchange tokens like BNB and LEO, it appears you have no rights. That doesn’t mean the cash won’t flow, but the exchange can change the rules of the game as they see fit. The only check is the willingness of the community to continue supporting said exchange by paying fees.
     
    Exchanges that focus on the community and do right by it will generally outperform those that don’t. Binance is a great case study in an organisation that took the top spot by giving the crypto traders what they wanted. They wanted shitcoins, they wanted a charismatic CEO, they wanted SICK GAINZ!!
     
    In the shitcoin game, Binance listed everything and created a community of die-hard fans. Exchanges like Poloniex were not able to keep the mindshare of traders and got smoked by the upstart.
     
    Do you have any legal rights as the holder of an IEO exchange token? Maybe. That being said, if an exchange abuses the community long enough, someone will take their place. Anyone can open an exchange, and there are plenty of white lable tech providers that will happily take $100k and give you a subpar matching engine. Would be usurpers see the fees generated by the top players and want in on the action. That is why crypto is different than traditional asset trading. If you wanted to create a traditional stock exchange, good luck! I hope you have a few hundred million USD of capital and like waiting for Godot.

    Bull Market Baby
     
    If Bitfinex can raise the largest ever IEO in under two weeks, the community is feeling good about itself. Traders spent the last two years repairing their balance sheets. They are striking out now at the new shiny bauble. Buckle up, buckaroos!
    Convexity - Rektum Damn Near Killed ‘Em
    Since BitMEX launched on 24 November 2014, cryptocurrency derivatives trading exploded. I tried in vain to seduce various venture capital firms with the vision of the future that was all about derivatives trading. At that time, succour was not forthcoming; however, I could not be more pleased with my failures now standing in 2019.
     
    The BitMEX XBTUSD perpetual swap and various other contracts traded on OKEx and Deribit are of the same ilk. These contracts all allow you to trade a fixed USD amount of Bitcoin. We call these inverse derivatives contracts. Many OG traders have heard me speak at length about the subtle yet profound implications of this contract structure. However, as many new traders now try their hand at derivatives trading, a refresher course is necessitated.
     
    Contrary to popular belief, I don’t delight when I see the BitMEX Rekt twitter feed going bananas. I’m long-term greedy. I would rather you enjoy a long trading career earning a profit and paying BitMEX trading fees along the way, than blow up your equity capital during a liquidation. Therefore, it is in mine and BitMEX’s best interest that our traders are sufficiently educated about best trading practices.
     
    I love our traders, but when I hear people smile and laugh about getting liquidated it makes me cringe. A real trader practices proper risk management, and that means never being liquidated.
     
    You Gotta Go Down, To Go Up
     
    Convexity or gamma is the second derivative of a contract's value with respect to price. Used correctly convexity can supercharge your portfolio’s returns. However, if you do not understand how convexity affects a derivative you trade, you will get rekt repeatedly.
     
    With inverse contracts, the margin currency is the same as the home currency. I will use the XBTUSD contract throughout this post.
     
    Home Currency: XBT (Bitcoin)
    Foreign Currency: USD
    Margin Currency: XBT
    USD Value: 1 USD
    XBT Value: 1 USD / Price (XBT/USD exchange rate or .BXBT index)
     
    I will dwell on how the XBT exposure of a long 100,000 contract position changes with respect to the price (.BXBT Index).

     

    First, let’s look at the long side. In bull and bear markets, these will most likely be speculators. This makes sense because being long Bitcoin offers asymmetric returns. Bitcoin can rise to infinity, but can only fall zero. It is better from a return on equity perspective to go long the bottom, then go short the top. Those who picked up ETH below $100 know this acutely. Therefore, coupled with leverage, on the margin, longs in most market environments will be predominately speculators.

    The first chart shows XBT PNL profile and curvature. The straight line is the PNL %  return if the contract moved in a linear fashion, the curved line is the long inverse contract position’s PNL % return. What you immediately notice is that you will lose more money when the market falls, and make less money as the market rises. This is suboptimal as you must post margin in XBT. Thus, your margin requirements increase in a non-linear fashion, and this is why longs get rekt quickly in a falling market. 
     


    Now let’s examine the short side.  In bull and bear markets, these will most likely be hedgers and market makers. In both cases, these market participants want to lock in the USD value of Bitcoin. With inverse contracts, a long physical Bitcoin position coupled with an equivalent short XBTUSD position creates a synthetic USD position. If 100% of the physical Bitcoin is placed at cross-margin with BitMEX, you cannot be liquidated.
     
    Unlike the long side, shorts benefit from positive XBT convexity. Shorts make more and more XBT as the price falls, and lose less and less as the price rises.
     
    The take away from these two examples is that long speculators will be liquidated faster on the way down. This explains why dumps in these derivatives dominated markets are now more extreme than pumps and will continue so long as inverse style derivatives dominate the cryptocurrency derivatives markets.
     
    The CME contract has a fixed XBT exposure regardless of the price, and the USD exposure varies linearly with respect to price. While this is great for USD benchmarked investors, it becomes problematic for those hedging their exposure. Bitcoin purchased to hedge a short CME position cannot be used as collateral with the CME. This presents some challenges for hedgers who hold physical Bitcoin, and market makers who must divide precious capital between derivatives and spot markets with no cross-collateral relief. Risk Disclaimer

    This article should not be copied or reproduced in whole or in part. The information contained in this article does not constitute research or a recommendation. 

    Neither BitMEX nor any of its affiliates make any representation or warranty, as to the accuracy or completeness of the statements or any information contained in this article and any liability therefor (including in respect of direct, indirect or consequential loss or damage) is expressly disclaimed. This is not providing any financial, economic, legal, accounting or tax advice or recommendations.  In addition, the receipt of this article is not to be taken as constituting the giving of investment advice nor to constitute such person a client of BitMEX.
    Contact Us | Subscribe | Unsubscribe
  12. Like
    admin got a reaction from vamp111 in [bitcoin_core] Bitcoin Core version 0.18.0 released   
    Bitcoin Core version 0.18.0 is now available from:
    https://bitcoincore.org/bin/bitcoin-core-0.18.0/
    This is a new major version release, including new features, various bug fixes and performance improvements, as well as updated translations.
    Please report bugs using the issue tracker at GitHub:
    https://github.com/bitcoin/bitcoin/issues
    To receive security and update notifications, please subscribe to:
    https://bitcoincore.org/en/list/announcements/join/
    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).
    The first time you run version 0.15.0 or newer, your chainstate database will be converted to a new format, which will take anywhere from a few minutes to half an hour, depending on the speed of your machine.
    Note that the block database format also changed in version 0.8.0 and there is no automatic upgrade code from before version 0.8 to version 0.15.0 or later. Upgrading directly from 0.7.x and earlier without redownloading the blockchain is not supported. However, as usual, old wallet versions are still supported.
    Compatibility
    Bitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended to use Bitcoin Core on unsupported systems.
    Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them.
    From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is built using Qt 5.9.x, which doesn’t support versions of macOS older than 10.10. Additionally, Bitcoin Core does not yet change appearance when macOS “dark mode” is activated.
    In addition to previously-supported CPU platforms, this release’s pre-compiled distribution also provides binaries for the RISC-V platform.
    If you are using the systemd unit configuration file located at contrib/init/bitcoind.service, it has been changed to use /var/lib/bitcoind as the data directory instead of ~bitcoin/.bitcoin. When switching over to the new configuration file, please make sure that the filesystem on which /var/lib/bitcoind will exist has enough space (check using df -h /var/lib/bitcoind), and optionally copy over your existing data directory. See the systemd init file section for more details.
    Known issues
    Wallet GUI
    For advanced users who have both (1) enabled coin control features, and (2) are using multiple wallets loaded at the same time: The coin control input selection dialog can erroneously retain wrong-wallet state when switching wallets using the dropdown menu. For now, it is recommended not to use coin control features with multiple wallets loaded.
    Notable changes
    Mining
    Calls to getblocktemplate will fail if the segwit rule is not specified. Calling getblocktemplate without segwit specified is almost certainly a misconfiguration since doing so results in lower rewards for the miner. Failed calls will produce an error message describing how to enable the segwit rule. Configuration option changes
    A warning is printed if an unrecognized section name is used in the configuration file. Recognized sections are [test], [main], and [regtest].
    Four new options are available for configuring the maximum number of messages that ZMQ will queue in memory (the “high water mark”) before dropping additional messages. The default value is 1,000, the same as was used for previous releases. See the ZMQ documentation for details.
    The rpcallowip option can no longer be used to automatically listen on all network interfaces. Instead, the rpcbind parameter must be used to specify the IP addresses to listen on. Listening for RPC commands over a public network connection is insecure and should be disabled, so a warning is now printed if a user selects such a configuration. If you need to expose RPC in order to use a tool like Docker, ensure you only bind RPC to your localhost, e.g. docker run [...] -p 127.0.0.1:8332:8332 (this is an extra :8332 over the normal Docker port specification).
    The rpcpassword option now causes a startup error if the password set in the configuration file contains a hash character (#), as it’s ambiguous whether the hash character is meant for the password or as a comment.
    The whitelistforcerelay option is used to relay transactions from whitelisted peers even when not accepted to the mempool. This option now defaults to being off, so that changes in policy and disconnect/ban behavior will not cause a node that is whitelisting another to be dropped by peers. Users can still explicitly enable this behavior with the command line option (and may want to consider contacting the Bitcoin Core project to let us know about their use-case, as this feature could be deprecated in the future).
    systemd init file
    The systemd init file (contrib/init/bitcoind.service) has been changed to use /var/lib/bitcoind as the data directory instead of ~bitcoin/.bitcoin. This change makes Bitcoin Core more consistent with other services, and makes the systemd init config more consistent with existing Upstart and OpenRC configs.
    The configuration, PID, and data directories are now completely managed by systemd, which will take care of their creation, permissions, etc. See systemd.exec(5) for more details.
    When using the provided init files under contrib/init, overriding the datadir option in /etc/bitcoin/bitcoin.conf will have no effect. This is because the command line arguments specified in the init files take precedence over the options specified in /etc/bitcoin/bitcoin.conf.
    Documentation
    A new short document about the JSON-RPC interface describes cases where the results of an RPC might contain inconsistencies between data sourced from different subsystems, such as wallet state and mempool state. A note is added to the REST interface documentation indicating that the same rules apply.
    Further information is added to the JSON-RPC documentation about how to secure this interface.
    A new document about the bitcoin.conf file describes how to use it to configure Bitcoin Core.
    A new document introduces Bitcoin Core’s BIP174 Partially-Signed Bitcoin Transactions (PSBT) interface, which is used to allow multiple programs to collaboratively work to create, sign, and broadcast new transactions. This is useful for offline (cold storage) wallets, multisig wallets, coinjoin implementations, and many other cases where two or more programs need to interact to generate a complete transaction.
    The output script descriptor documentation has been updated with information about new features in this still-developing language for describing the output scripts that a wallet or other program wants to receive notifications for, such as which addresses it wants to know received payments. The language is currently used in multiple new and updated RPCs described in these release notes and is expected to be adapted to other RPCs and to the underlying wallet structure.
    Build system changes
    A new --disable-bip70 option may be passed to ./configure to prevent Bitcoin-Qt from being built with support for the BIP70 payment protocol or from linking libssl. As the payment protocol has exposed Bitcoin Core to libssl vulnerabilities in the past, builders who don’t need BIP70 support are encouraged to use this option to reduce their exposure to future vulnerabilities.
    The minimum required version of Qt (when building the GUI) has been increased from 5.2 to 5.5.1 (the depends system provides 5.9.7)
    New RPCs
    getnodeaddresses returns peer addresses known to this node. It may be used to find nodes to connect to without using a DNS seeder.
    listwalletdir returns a list of wallets in the wallet directory (either the default wallet directory or the directory configured by the -walletdir parameter).
    getrpcinfo returns runtime details of the RPC server. At the moment, it returns an array of the currently active commands and how long they’ve been running.
    deriveaddresses returns one or more addresses corresponding to an output descriptor.
    getdescriptorinfo accepts a descriptor and returns information about it, including its computed checksum.
    joinpsbts merges multiple distinct PSBTs into a single PSBT. The multiple PSBTs must have different inputs. The resulting PSBT will contain every input and output from all of the PSBTs. Any signatures provided in any of the PSBTs will be dropped.
    analyzepsbt examines a PSBT and provides information about what the PSBT contains and the next steps that need to be taken in order to complete the transaction. For each input of a PSBT, analyzepsbt provides information about what information is missing for that input, including whether a UTXO needs to be provided, what pubkeys still need to be provided, which scripts need to be provided, and what signatures are still needed. Every input will also list which role is needed to complete that input, and analyzepsbt will also list the next role in general needed to complete the PSBT. analyzepsbt will also provide the estimated fee rate and estimated virtual size of the completed transaction if it has enough information to do so.
    utxoupdatepsbt searches the set of Unspent Transaction Outputs (UTXOs) to find the outputs being spent by the partial transaction. PSBTs need to have the UTXOs being spent to be provided because the signing algorithm requires information from the UTXO being spent. For segwit inputs, only the UTXO itself is necessary. For non-segwit outputs, the entire previous transaction is needed so that signers can be sure that they are signing the correct thing. Unfortunately, because the UTXO set only contains UTXOs and not full transactions, utxoupdatepsbt will only add the UTXO for segwit inputs.
    Updated RPCs
    Note: some low-level RPC changes mainly useful for testing are described in the Low-level Changes section below.
    getpeerinfo now returns an additional minfeefilter field set to the peer’s BIP133 fee filter. You can use this to detect that you have peers that are willing to accept transactions below the default minimum relay fee.
    The mempool RPCs, such as getrawmempool with verbose=true, now return an additional “bip125-replaceable” value indicating whether the transaction (or its unconfirmed ancestors) opts-in to asking nodes and miners to replace it with a higher-feerate transaction spending any of the same inputs.
    settxfee previously silently ignored attempts to set the fee below the allowed minimums. It now prints a warning. The special value of “0” may still be used to request the minimum value.
    getaddressinfo now provides an ischange field indicating whether the wallet used the address in a change output.
    importmulti has been updated to support P2WSH, P2WPKH, P2SH-P2WPKH, and P2SH-P2WSH. Requests for P2WSH and P2SH-P2WSH accept an additional witnessscript parameter.
    importmulti now returns an additional warnings field for each request with an array of strings explaining when fields are being ignored or are inconsistent, if there are any.
    getaddressinfo now returns an additional solvable boolean field when Bitcoin Core knows enough about the address’s scriptPubKey, optional redeemScript, and optional witnessScript in order for the wallet to be able to generate an unsigned input spending funds sent to that address.
    The getaddressinfo, listunspent, and scantxoutset RPCs now return an additional desc field that contains an output descriptor containing all key paths and signing information for the address (except for the private key). The desc field is only returned for getaddressinfo and listunspent when the address is solvable.
    importprivkey will preserve previously-set labels for addresses or public keys corresponding to the private key being imported. For example, if you imported a watch-only address with the label “cold wallet” in earlier releases of Bitcoin Core, subsequently importing the private key would default to resetting the address’s label to the default empty-string label (“”). In this release, the previous label of “cold wallet” will be retained. If you optionally specify any label besides the default when calling importprivkey, the new label will be applied to the address.
    See the Mining section for changes to getblocktemplate.
    getmininginfo now omits currentblockweight and currentblocktx when a block was never assembled via RPC on this node.
    The getrawtransaction RPC & REST endpoints no longer check the unspent UTXO set for a transaction. The remaining behaviors are as follows: 1. If a blockhash is provided, check the corresponding block. If no blockhash is provided, check the mempool. 3. If no blockhash is provided but txindex is enabled, also check txindex. unloadwallet is now synchronous, meaning it will not return until the wallet is fully unloaded.
    importmulti now supports importing of addresses from descriptors. A “desc” parameter can be provided instead of the “scriptPubKey” in a request, as well as an optional range for ranged descriptors to specify the start and end of the range to import. Descriptors with key origin information imported through importmulti will have their key origin information stored in the wallet for use with creating PSBTs. More information about descriptors can be found here.
    listunspent has been modified so that it also returns witnessScript, the witness script in the case of a P2WSH or P2SH-P2WSH output.
    createwallet now has an optional blank argument that can be used to create a blank wallet. Blank wallets do not have any keys or HD seed. They cannot be opened in software older than 0.18. Once a blank wallet has a HD seed set (by using sethdseed) or private keys, scripts, addresses, and other watch only things have been imported, the wallet is no longer blank and can be opened in 0.17.x. Encrypting a blank wallet will also set a HD seed for it. Deprecated or removed RPCs
    signrawtransaction is removed after being deprecated and hidden behind a special configuration option in version 0.17.0.
    The ‘account’ API is removed after being deprecated in v0.17. The ‘label’ API was introduced in v0.17 as a replacement for accounts. See the release notes from v0.17 for a full description of the changes from the ‘account’ API to the ‘label’ API.
    addwitnessaddress is removed after being deprecated in version 0.16.0.
    generate is deprecated and will be fully removed in a subsequent major version. This RPC is only used for testing, but its implementation reached across multiple subsystems (wallet and mining), so it is being deprecated to simplify the wallet-node interface. Projects that are using generate for testing purposes should transition to using the generatetoaddress RPC, which does not require or use the wallet component. Calling generatetoaddress with an address returned by the getnewaddress RPC gives the same functionality as the old generate RPC. To continue using generate in this version, restart bitcoind with the -deprecatedrpc=generate configuration option.
    Be reminded that parts of the validateaddress command have been deprecated and moved to getaddressinfo. The following deprecated fields have moved to getaddressinfo: ismine, iswatchonly, script, hex, pubkeys, sigsrequired, pubkey, embedded, iscompressed, label, timestamp, hdkeypath, hdmasterkeyid.
    The addresses field has been removed from the validateaddress and getaddressinfo RPC methods. This field was confusing since it referred to public keys using their P2PKH address. Clients should use the embedded.address field for P2SH or P2WSH wrapped addresses, and pubkeys for inspecting multisig participants.
    REST changes
    A new /rest/blockhashbyheight/ endpoint is added for fetching the hash of the block in the current best blockchain based on its height (how many blocks it is after the Genesis Block). Graphical User Interface (GUI)
    A new Window menu is added alongside the existing File, Settings, and Help menus. Several items from the other menus that opened new windows have been moved to this new Window menu.
    In the Send tab, the checkbox for “pay only the required fee” has been removed. Instead, the user can simply decrease the value in the Custom Feerate field all the way down to the node’s configured minimum relay fee.
    In the Overview tab, the watch-only balance will be the only balance shown if the wallet was created using the createwallet RPC and the disable_private_keys parameter was set to true.
    The launch-on-startup option is no longer available on macOS if compiled with macosx min version greater than 10.11 (use CXXFLAGS=”-mmacosx-version-min=10.11” CFLAGS=”-mmacosx-version-min=10.11” for setting the deployment sdk version)
    Tools
    A new bitcoin-wallet tool is now distributed alongside Bitcoin Core’s other executables. Without needing to use any RPCs, this tool can currently create a new wallet file or display some basic information about an existing wallet, such as whether the wallet is encrypted, whether it uses an HD seed, how many transactions it contains, and how many address book entries it has. Planned changes
    This section describes planned changes to Bitcoin Core that may affect other Bitcoin software and services.
    Since version 0.16.0, Bitcoin Core’s built-in wallet has defaulted to generating P2SH-wrapped segwit addresses when users want to receive payments. These addresses are backwards compatible with all widely-used software. Starting with Bitcoin Core 0.20 (expected about a year after 0.18), Bitcoin Core will default to native segwit addresses (bech32) that provide additional fee savings and other benefits. Currently, many wallets and services already support sending to bech32 addresses, and if the Bitcoin Core project sees enough additional adoption, it will instead default to bech32 receiving addresses in Bitcoin Core 0.19 (approximately November 2019). P2SH-wrapped segwit addresses will continue to be provided if the user requests them in the GUI or by RPC, and anyone who doesn’t want the update will be able to configure their default address type. (Similarly, pioneering users who want to change their default now may set the addresstype=bech32 configuration option in any Bitcoin Core release from 0.16.0 up.) Deprecated P2P messages
    BIP 61 reject messages are now deprecated. Reject messages have no use case on the P2P network and are only logged for debugging by most network nodes. Furthermore, they increase bandwidth and can be harmful for privacy and security. It has been possible to disable BIP 61 messages since v0.17 with the -enablebip61=0 option. BIP 61 messages will be disabled by default in a future version, before being removed entirely. Low-level changes
    This section describes RPC changes mainly useful for testing, mostly not relevant in production. The changes are mentioned for completeness.
    RPC
    The submitblock RPC previously returned the reason a rejected block was invalid the first time it processed that block, but returned a generic “duplicate” rejection message on subsequent occasions it processed the same block. It now always returns the fundamental reason for rejecting an invalid block and only returns “duplicate” for valid blocks it has already accepted.
    A new submitheader RPC allows submitting block headers independently from their block. This is likely only useful for testing.
    The signrawtransactionwithkey and signrawtransactionwithwallet RPCs have been modified so that they also optionally accept a witnessScript, the witness script in the case of a P2WSH or P2SH-P2WSH output. This is compatible with the change to listunspent.
    For the walletprocesspsbt and walletcreatefundedpsbt RPCs, if the bip32derivs parameter is set to true but the key metadata for a public key has not been updated yet, then that key will have a derivation path as if it were just an independent key (i.e. no derivation path and its master fingerprint is itself).
    Configuration
    The -usehd configuration option was removed in version 0.16. From that version onwards, all new wallets created are hierarchical deterministic wallets. This release makes specifying -usehd an invalid configuration option. Network
    This release allows peers that your node automatically disconnected for misbehavior (e.g. sending invalid data) to reconnect to your node if you have unused incoming connection slots. If your slots fill up, a misbehaving node will be disconnected to make room for nodes without a history of problems (unless the misbehaving node helps your node in some other way, such as by connecting to a part of the Internet from which you don’t have many other peers). Previously, Bitcoin Core banned the IP addresses of misbehaving peers for a period of time (default of 1 day); this was easily circumvented by attackers with multiple IP addresses. If you manually ban a peer, such as by using the setban RPC, all connections from that peer will still be rejected. Wallet
    The key metadata will need to be upgraded the first time that the HD seed is available. For unencrypted wallets this will occur on wallet loading. For encrypted wallets this will occur the first time the wallet is unlocked.
    Newly encrypted wallets will no longer require restarting the software. Instead such wallets will be completely unloaded and reloaded to achieve the same effect.
    A sub-project of Bitcoin Core now provides Hardware Wallet Interaction (HWI) scripts that allow command-line users to use several popular hardware key management devices with Bitcoin Core. See their project page for details.
    Security
    This release changes the Random Number Generator (RNG) used from OpenSSL to Bitcoin Core’s own implementation, although entropy gathered by Bitcoin Core is fed out to OpenSSL and then read back in when the program needs strong randomness. This moves Bitcoin Core a little closer to no longer needing to depend on OpenSSL, a dependency that has caused security issues in the past. The new implementation gathers entropy from multiple sources, including from hardware supporting the rdseed CPU instruction. Changes for particular platforms
    On macOS, Bitcoin Core now opts out of application CPU throttling (“app nap”) during initial blockchain download, when catching up from over 100 blocks behind the current chain tip, or when reindexing chain data. This helps prevent these operations from taking an excessively long time because the operating system is attempting to conserve power. 0.18.0 change log
    Consensus
    #14247 Fix crash bug with duplicate inputs within a transaction (TheBlueMatt) Mining
    #14811 Mining: Enforce that segwit option must be set in GBT (jnewbery) Block and transaction handling
    #13310 Report progress in ReplayBlocks while rolling forward (promag) #13783 validation: Pass tx pool reference into CheckSequenceLocks (MarcoFalke) #14834 validation: Assert that pindexPrev is non-null when required (kallewoof) #14085 index: Fix for indexers skipping genesis block (jimpo) #14963 mempool, validation: Explain cs_main locking semantics (MarcoFalke) #15193 Default -whitelistforcerelay to off (sdaftuar) #15429 Update assumevalid, minimumchainwork, and getchaintxstats to height 563378 (gmaxwell) #15552 Granular invalidateblock and RewindBlockIndex (MarcoFalke) #14841 Move CheckBlock() call to critical section (hebasto) P2P protocol and network code
    #14025 Remove dead code for nVersion=10300 (MarcoFalke) #12254 BIP 158: Compact Block Filters for Light Clients (jimpo) #14073 blockfilter: Avoid out-of-bounds script access (jimpo) #14140 Switch nPrevNodeCount to vNodesSize (pstratem) #14027 Skip stale tip checking if outbound connections are off or if reindexing (gmaxwell) #14532 Never bind INADDR_ANY by default, and warn when doing so explicitly (luke-jr) #14733 Make peer timeout configurable, speed up very slow test and ensure correct code path tested (zallarak) #14336 Implement poll (pstratem) #15051 IsReachable is the inverse of IsLimited (DRY). Includes unit tests (mmachicao) #15138 Drop IsLimited in favor of IsReachable (Empact) #14605 Return of the Banman (dongcarl) #14970 Add dnsseed.emzy.de to DNS seeds (Emzy) #14929 Allow connections from misbehavior banned peers (gmaxwell) #15345 Correct comparison of addr count (dongcarl) #15201 Add missing locking annotation for vNodes. vNodes is guarded by cs_vNodes (practicalswift) #14626 Select orphan transaction uniformly for eviction (sipa) #15486 Ensure tried collisions resolve, and allow feeler connections to existing outbound netgroups (sdaftuar) Wallet
    #13962 Remove unused dummy_tx variable from FillPSBT (dongcarl) #13967 Don’t report minversion wallet entry as unknown (instagibbs) #13988 Add checks for settxfee reasonableness (ajtowns) #12559 Avoid locking cs_main in some wallet RPC (promag) #13631 Add CMerkleTx::IsImmatureCoinBase method (Empact) #14023 Remove accounts RPCs (jnewbery) #13825 Kill accounts (jnewbery) #10605 Add AssertLockHeld assertions in CWallet::ListCoins (ryanofsky) #12490 Remove deprecated wallet rpc features from bitcoin_server (jnewbery) #14138 Set encrypted_batch to nullptr after delete. Avoid double free in the case of NDEBUG (practicalswift) #14168 Remove ENABLE_WALLET from libbitcoin_server.a (jnewbery) #12493 Reopen CDBEnv after encryption instead of shutting down (achow101) #14282 Remove -usehd option (jnewbery) #14146 Remove trailing separators from -walletdir arg (PierreRochard) #14291 Add ListWalletDir utility function (promag) #14468 Deprecate generate RPC method (jnewbery) #11634 Add missing cs_wallet/cs_KeyStore locks to wallet (practicalswift) #14296 Remove addwitnessaddress (jnewbery) #14451 Add BIP70 deprecation warning and allow building GUI without BIP70 support (jameshilliard) #14320 Fix duplicate fileid detection (ken2812221) #14561 Remove fs::relative call and fix listwalletdir tests (promag) #14454 Add SegWit support to importmulti (MeshCollider) #14410 rpcwallet: ischange field for getaddressinfo RPC (mrwhythat) #14350 Add WalletLocation class (promag) #14689 Require a public key to be retrieved when signing a P2PKH input (achow101) #14478 Show error to user when corrupt wallet unlock fails (MeshCollider) #14411 Restore ability to list incoming transactions by label (ryanofsky) #14552 Detect duplicate wallet by comparing the db filename (ken2812221) #14678 Remove redundant KeyOriginInfo access, already done in CreateSig (instagibbs) #14477 Add ability to convert solvability info to descriptor (sipa) #14380 Fix assert crash when specified change output spend size is unknown (instagibbs) #14760 Log env path in BerkeleyEnvironment::Flush (promag) #14646 Add expansion cache functions to descriptors (unused for now) (sipa) #13076 Fix ScanForWalletTransactions to return an enum indicating scan result: success / failure / user_abort (Empact) #14821 Replace CAffectedKeysVisitor with descriptor based logic (sipa) #14957 Initialize stop_block in CWallet::ScanForWalletTransactions (Empact) #14565 Overhaul importmulti logic (sipa) #15039 Avoid leaking nLockTime fingerprint when anti-fee-sniping (MarcoFalke) #14268 Introduce SafeDbt to handle Dbt with free or memory_cleanse raii-style (Empact) #14711 Remove uses of chainActive and mapBlockIndex in wallet code (ryanofsky) #15279 Clarify rescanblockchain doc (MarcoFalke) #15292 Remove boost::optional-related false positive -Wmaybe-uninitialized warnings on GCC compiler (hebasto) #13926 [Tools] bitcoin-wallet - a tool for creating and managing wallets offline (jnewbery) #11911 Free BerkeleyEnvironment instances when not in use (ryanofsky) #15235 Do not import private keys to wallets with private keys disabled (achow101) #15263 Descriptor expansions only need pubkey entries for PKH/WPKH (sipa) #15322 Add missing cs_db lock (promag) #15297 Releases dangling files on BerkeleyEnvironment::Close (promag) #14491 Allow descriptor imports with importmulti (MeshCollider) #15365 Add lock annotation for mapAddressBook (MarcoFalke) #15226 Allow creating blank (empty) wallets (alternative) (achow101) #15390 [wallet-tool] Close bdb when flushing wallet (jnewbery) #15334 Log absolute paths for the wallets (hebasto) #14978 Factor out PSBT utilities from RPCs for use in GUI code; related refactoring (gwillen) #14481 Add P2SH-P2WSH support to listunspent RPC (MeshCollider) #14021 Import key origin data through descriptors in importmulti (achow101) #14075 Import watch only pubkeys to the keypool if private keys are disabled (achow101) #15368 Descriptor checksums (sipa) #15433 Use a single wallet batch for UpgradeKeyMetadata (jonasschnelli) #15408 Remove unused TransactionError constants (MarcoFalke) #15583 Log and ignore errors in ListWalletDir and IsBerkeleyBtree (promag) #14195 Pass privkey export DER compression flag correctly (fingera) #15299 Fix assertion in CKey::SignCompact (promag) #14437 Start to separate wallet from node (ryanofsky) #15749 Fix: importmulti only imports origin info for PKH outputs (sipa) RPC and other APIs
    #12842 Prevent concurrent savemempool (promag) #13987 Report minfeefilter value in getpeerinfo RPC (ajtowns) #13891 Remove getinfo deprecation warning (jnewbery) #13399 Add submitheader (MarcoFalke) #12676 Show bip125-replaceable flag, when retrieving mempool entries (dexX7) #13723 PSBT key path cleanups (sipa) #14008 Preserve a format of RPC command definitions (kostyantyn) #9332 Let wallet importmulti RPC accept labels for standard scriptPubKeys (ryanofsky) #13983 Return more specific reject reason for submitblock (MarcoFalke) #13152 Add getnodeaddresses RPC command (chris-belcher) #14298 rest: Improve performance for JSON calls (alecalve) #14297 Remove warning for removed estimatefee RPC (jnewbery) #14373 Consistency fixes for RPC descriptions (ch4ot1c) #14150 Add key origin support to descriptors (sipa) #14518 Always throw in getblockstats if -txindex is required (promag) #14060 ZMQ: add options to configure outbound message high water mark, aka SNDHWM (mruddy) #13381 Add possibility to preserve labels on importprivkey (marcoagner) #14530 Use RPCHelpMan to generate RPC doc strings (MarcoFalke) #14720 Correctly name RPC arguments (MarcoFalke) #14726 Use RPCHelpMan for all RPCs (MarcoFalke) #14796 Pass argument descriptions to RPCHelpMan (MarcoFalke) #14670 http: Fix HTTP server shutdown (promag) #14885 Assert that named arguments are unique in RPCHelpMan (promag) #14877 Document default values for optional arguments (MarcoFalke) #14875 RPCHelpMan: Support required arguments after optional ones (MarcoFalke) #14993 Fix data race (UB) in InterruptRPC() (practicalswift) #14653 rpcwallet: Add missing transaction categories to RPC helptexts (andrewtoth) #14981 Clarify RPC getrawtransaction’s time help text (benthecarman) #12151 Remove cs_main lock from blockToJSON and blockheaderToJSON (promag) #15078 Document bytessent_per_msg and bytesrecv_per_msg (MarcoFalke) #15057 Correct reconsiderblock help text, add test (MarcoFalke) #12153 Avoid permanent cs_main lock in getblockheader (promag) #14982 Add getrpcinfo command (promag) #15122 Expand help text for importmulti changes (jnewbery) #15186 remove duplicate solvable field from getaddressinfo (fanquake) #15209 zmq: log outbound message high water mark when reusing socket (fanquake) #15177 rest: Improve tests and documention of /headers and /block (promag) #14353 rest: Add blockhash call, fetch blockhash by height (jonasschnelli) #15248 Compile on GCC4.8 (MarcoFalke) #14987 RPCHelpMan: Pass through Result and Examples (MarcoFalke) #15159 Remove lookup to UTXO set from GetTransaction (amitiuttarwar) #15245 remove deprecated mentions of signrawtransaction from fundraw help (instagibbs) #14667 Add deriveaddresses RPC util method (Sjors) #15357 Don’t ignore -maxtxfee when wallet is disabled (JBaczuk) #15337 Fix for segfault if combinepsbt called with empty inputs (benthecarman) #14918 RPCHelpMan: Check default values are given at compile-time (MarcoFalke) #15383 mining: Omit uninitialized currentblockweight, currentblocktx (MarcoFalke) #13932 Additional utility RPCs for PSBT (achow101) #15401 Actually throw help when passed invalid number of params (MarcoFalke) #15471 rpc/gui: Remove ‘Unknown block versions being mined’ warning (laanwj) #15497 Consistent range arguments in scantxoutset/importmulti/deriveaddresses (sipa) #15510 deriveaddresses: add range to CRPCConvertParam (Sjors) #15582 Fix overflow bug in analyzepsbt fee: CAmount instead of int (sipa) #13424 Consistently validate txid / blockhash length and encoding in rpc calls (Empact) #15750 Remove the addresses field from the getaddressinfo return object (jnewbery) GUI
    #13634 Compile boost::signals2 only once (MarcoFalke) #13248 Make proxy icon from statusbar clickable (mess110) #12818 TransactionView: highlight replacement tx after fee bump (Sjors) #13529 Use new Qt5 connect syntax (promag) #14162 Also log and print messages or questions like bitcoind (MarcoFalke) #14385 Avoid system harfbuzz and bz2 (theuni) #14450 Fix QCompleter popup regression (hebasto) #14177 Set C locale for amountWidget (hebasto) #14374 Add Blocksdir to Debug window (hebasto) #14554 Remove unused adjustedTime parameter (hebasto) #14228 Enable system tray icon by default if available (hebasto) #14608 Remove the “Pay only required fee…” checkbox (hebasto) #14521 qt, docs: Fix bitcoin-qt -version output formatting (hebasto) #13966 When private key is disabled, only show watch-only balance (ken2812221) #14828 Remove hidden columns in coin control dialog (promag) #14783 Fix boost::signals2::no_slots_error in early calls to InitWarning (promag) #14854 Cleanup SplashScreen class (hebasto) #14801 Use window() instead of obsolete topLevelWidget() (hebasto) #14573 Add Window menu (promag) #14979 Restore < Qt5.6 compatibility for addAction (jonasschnelli) #14975 Refactoring with QString::toNSString() (hebasto) #15000 Fix broken notificator on GNOME (hebasto) #14375 Correct misleading “overridden options” label (hebasto) #15007 Notificator class refactoring (hebasto) #14784 Use WalletModel* instead of the wallet name as map key (promag) #11625 Add BitcoinApplication & RPCConsole tests (ryanofsky) #14517 Fix start with the -min option (hebasto) #13216 implements concept for different disk sizes on intro (marcoagner) #15114 Replace remaining 0 with nullptr (Empact) #14594 Fix minimized window bug on Linux (hebasto) #14556 Fix confirmed transaction labeled “open” (#13299) (hebasto) #15149 Show current wallet name in window title (promag) #15136 “Peers” tab overhaul (hebasto) #14250 Remove redundant stopThread() and stopExecutor() signals (hebasto) #15040 Add workaround for QProgressDialog bug on macOS (hebasto) #15101 Add WalletController (promag) #15178 Improve “help-console” message (hebasto) #15210 Fix window title update (promag) #15167 Fix wallet selector size adjustment (hebasto) #15208 Remove macOS launch-at-startup when compiled with > macOS 10.11, fix memory mismanagement (jonasschnelli) #15163 Correct units for “-dbcache” and “-prune” (hebasto) #15225 Change the receive button to respond to keypool state changing (achow101) #15280 Fix shutdown order (promag) #15203 Fix issue #9683 “gui, wallet: random abort (segmentation fault) (dooglus) #15091 Fix model overlay header sync (jonasschnelli) #15153 Add Open Wallet menu (promag) #15183 Fix m_assumed_blockchain_size variable value (marcoagner) #15063 If BIP70 is disabled, attempt to fall back to BIP21 parsing (luke-jr) #15195 Add Close Wallet action (promag) #15462 Fix async open wallet call order (promag) #15801 Bugfix: GUI: Options: Initialise prune setting range before loading current value, and remove upper bound limit (luke-jr) Build system
    #13955 gitian: Bump descriptors for (0.)18 (fanquake) #13899 Enable -Wredundant-decls where available. Remove redundant redeclarations (practicalswift) #13665 Add RISC-V support to gitian (ken2812221) #14062 Generate MSVC project files via python script (ken2812221) #14037 Add README.md to linux release tarballs (hebasto) #14183 Remove unused Qt 4 dependencies (ken2812221) #14127 Avoid getifaddrs when unavailable (greenaddress) #14184 Scripts and tools: increased timeout downloading (cisba) #14204 Move interfaces/* to libbitcoin_server (laanwj) #14208 Actually remove ENABLE_WALLET (jnewbery) #14212 Remove libssl from LDADD unless GUI (MarcoFalke) #13578 Upgrade zeromq to 4.2.5 and avoid deprecated zeromq API functions (mruddy) #14281 lcov: filter /usr/lib/ from coverage reports (MarcoFalke) #14325 gitian: Use versioned unsigned tarballs instead of generically named ones (achow101) #14253 During ‘make clean’, remove some files that are currently missed (murrayn) #14455 Unbreak make clean (jamesob) #14495 Warn (don’t fail!) on spelling errors (practicalswift) #14496 Pin to specific versions of Python packages we install from PyPI in Travis (practicalswift) #14568 Fix Qt link order for Windows build (ken2812221) #14252 Run functional tests and benchmarks under the undefined behaviour sanitizer (UBSan) (practicalswift) #14612 Include full version number in released file names (achow101) #14840 Remove duplicate libconsensus linking in test make (AmirAbrams) #14564 Adjust configure so that only BIP70 is disabled when protobuf is missing instead of the GUI (jameshilliard) #14883 Add --retry 5 to curl opts in install_db4.sh (qubenix) #14701 Add CLIENT_VERSION_BUILD to CFBundleGetInfoString (fanquake) #14849 Qt 5.9.7 (fanquake) #15020 Add names to Travis jobs (gkrizek) #15047 Allow to configure –with-sanitizers=fuzzer (MarcoFalke) #15154 Configure: bitcoin-tx doesn’t need libevent, so don’t pull it in (luke-jr) #15175 Drop macports support (Empact) #15308 Restore compatibility with older boost (Empact) #15407 msvc: Fix silent merge conflict between #13926 and #14372 part II (ken2812221) #15388 Makefile.am: add rule for src/bitcoin-wallet (Sjors) #15393 Bump minimum Qt version to 5.5.1 (Sjors) #15285 Prefer Python 3.4 even if newer versions are present on the system (Sjors) #15398 msvc: Add rapidcheck property tests (ken2812221) #15431 msvc: scripted-diff: Remove NDEBUG pre-define in project file (ken2812221) #15549 gitian: Improve error handling (laanwj) #15548 use full version string in setup.exe (MarcoFalke) #11526 Visual Studio build configuration for Bitcoin Core (sipsorcery) #15110 build_msvc: Fix the build problem in libbitcoin_server (Mr-Leshiy) #14372 msvc: build secp256k1 and leveldb locally (ken2812221) #15325 msvc: Fix silent merge conflict between #13926 and #14372 (ken2812221) #15391 Add compile time verification of assumptions we’re currently making implicitly/tacitly (practicalswift) #15503 msvc: Use a single file to specify the include path (ken2812221) #13765 contrib: Add gitian build support for github pull request (ken2812221) #15809 gitignore: plist and dat (jamesob) Tests and QA
    #15405 appveyor: Clean cache when build configuration changes (Sjors) #13953 Fix deprecation in bitcoin-util-test.py (isghe) #13963 Replace usage of tostring() with tobytes() (dongcarl) #13964 ci: Add appveyor ci (ken2812221) #13997 appveyor: fetch the latest port data (ken2812221) #13707 Add usage note to check-rpc-mappings.py (masonicboom) #14036 travis: Run unit tests –with-sanitizers=undefined (MarcoFalke) #13861 Add testing of value_ret for SelectCoinsBnB (Empact) #13863 travis: Move script sections to files in .travis/ subject to shellcheck (scravy) #14081 travis: Fix missing differentiation between unit and functional tests (scravy) #14042 travis: Add cxxflags=-wno-psabi at arm job (ken2812221) #14051 Make combine_logs.py handle multi-line logs (jnewbery) #14093 Fix accidental trunction from int to bool (practicalswift) #14108 Add missing locking annotations and locks (g_cs_orphans) (practicalswift) #14088 Don’t assert(…) with side effects (practicalswift) #14086 appveyor: Use clcache to speed up build (ken2812221) #13954 Warn (don’t fail!) on spelling errors. Fix typos reported by codespell (practicalswift) #12775 Integration of property based testing into Bitcoin Core (Christewart) #14119 Read reject reasons from debug log, not P2P messages (MarcoFalke) #14189 Fix silent merge conflict in wallet_importmulti (MarcoFalke) #13419 Speed up knapsack_solver_test by not recreating wallet 100 times (lucash-dev) #14199 Remove redundant BIP174 test from rpc_psbt.json (araspitzu) #14179 Fixups to “Run all tests even if wallet is not compiled” (MarcoFalke) #14225 Reorder tests and move most of extended tests up to normal tests (ken2812221) #14236 generate –> generatetoaddress change to allow tests run without wallet (sanket1729) #14287 Use MakeUnique to construct objects owned by unique_ptrs (practicalswift) #14007 Run functional test on Windows and enable it on Appveyor (ken2812221) #14275 Write the notification message to different files to avoid race condition in feature_notifications.py (ken2812221) #14306 appveyor: Move AppVeyor YAML to dot-file-style YAML (MitchellCash) #14305 Enforce critical class instance attributes in functional tests, fix segwit test specificity (JustinTArthur) #12246 Bugfix: Only run bitcoin-tx tests when bitcoin-tx is enabled (luke-jr) #14316 Exclude all tests with difference parameters in --exclude list (ken2812221) #14381 Add missing call to skip_if_no_cli() (practicalswift) #14389 travis: Set codespell version to avoid breakage (MarcoFalke) #14398 Don’t access out of bounds array index: array[sizeof(array)] (Empact) #14419 Remove rpc_zmq.py (jnewbery) #14241 appveyor: Script improvement (ken2812221) #14413 Allow closed RPC handler in assert_start_raises_init_error (ken2812221) #14324 Run more tests with wallet disabled (MarcoFalke) #13649 Allow arguments to be forwarded to flake8 in lint-python.sh (jamesob) #14465 Stop node before removing the notification file (ken2812221) #14460 Improve ‘CAmount’ tests (hebasto) #14456 forward timeouts properly in send_blocks_and_test (jamesob) #14527 Revert “Make qt wallet test compatible with qt4” (MarcoFalke) #14504 Show the progress of functional tests (isghe) #14559 appveyor: Enable multiwallet tests (ken2812221) #13515 travis: Enable qt for all jobs (ken2812221) #14571 Test that nodes respond to getdata with notfound (MarcoFalke) #14569 Print dots by default in functional tests (ken2812221) #14631 Move deterministic address import to setup_nodes (jnewbery) #14630 test: Remove travis specific code (MarcoFalke) #14528 travis: Compile once on xenial (MarcoFalke) #14092 Dry run bench_bitcoin as part make check to allow for quick identification of assertion/sanitizer failures in benchmarking code (practicalswift) #14664 example_test.py: fixup coinbase height argument, derive number clearly (instagibbs) #14522 Add invalid P2P message tests (jamesob) #14619 Fix value display name in test_runner help text (merland) #14672 Send fewer spam messages in p2p_invalid_messages (jamesob) #14673 travis: Fail the ubsan travis build in case of newly introduced ubsan errors (practicalswift) #14665 appveyor: Script improvement part II (ken2812221) #14365 Add Python dead code linter (vulture) to Travis (practicalswift) #14693 test_node: get_mem_rss fixups (MarcoFalke) #14714 util.h: explicitly include required QString header (1Il1) #14705 travis: Avoid timeout on verify-commits check (MarcoFalke) #14770 travis: Do not specify sudo in .travis (scravy) #14719 Check specific reject reasons in feature_block (MarcoFalke) #14771 Add BOOST_REQUIRE to getters returning optional (MarcoFalke) #14777 Add regtest for JSON-RPC batch calls (domob1812) #14764 travis: Run thread sanitizer on unit tests (MarcoFalke) #14400 Add Benchmark to test input de-duplication worst case (JeremyRubin) #14812 Fix p2p_invalid_messages on macOS (jamesob) #14813 Add wallet_encryption error tests (MarcoFalke) #14820 Fix descriptor_tests not checking ToString output of public descriptors (ryanofsky) #14794 Add AddressSanitizer (ASan) Travis build (practicalswift) #14819 Bugfix: test/functional/mempool_accept: Ensure oversize transaction is actually oversize (luke-jr) #14822 bench: Destroy wallet txs instead of leaking their memory (MarcoFalke) #14683 Better combine_logs.py behavior (jamesob) #14231 travis: Save cache even when build or test fail (ken2812221) #14816 Add CScriptNum decode python implementation in functional suite (instagibbs) #14861 Modify rpc_bind to conform to #14532 behaviour (dongcarl) #14864 Run scripted-diff in subshell (dongcarl) #14795 Allow test_runner command line to receive parameters for each test (marcoagner) #14788 Possible fix the permission error when the tests open the cookie file (ken2812221) #14857 wallet_keypool_topup.py: Test for all keypool address types (instagibbs) #14886 Refactor importmulti tests (jnewbery) #14908 Removed implicit CTransaction constructor calls from tests and benchmarks (lucash-dev) #14903 Handle ImportError explicitly, improve comparisons against None (daniel-s-ingram) #14884 travis: Enforce python 3.4 support through linter (Sjors) #14940 Add test for truncated pushdata script (MarcoFalke) #14926 consensus: Check that final transactions are valid (MarcoFalke) #14937 travis: Fix travis would always be green even if it fail (ken2812221) #14953 Make g_insecure_rand_ctx thread_local (MarcoFalke) #14931 mempool: Verify prioritization is dumped correctly (MarcoFalke) #14935 Test for expected return values when calling functions returning a success code (practicalswift) #14969 Fix cuckoocache_tests TSAN failure introduced in 14935 (practicalswift) #14964 Fix race in mempool_accept (MarcoFalke) #14829 travis: Enable functional tests in the threadsanitizer (tsan) build job (practicalswift) #14985 Remove thread_local from test_bitcoin (MarcoFalke) #15005 Bump timeout to run tests in travis thread sanitizer (MarcoFalke) #15013 Avoid race in p2p_timeouts (MarcoFalke) #14960 lint/format-strings: Correctly exclude escaped percent symbols (luke-jr) #14930 pruning: Check that verifychain can be called when pruned (MarcoFalke) #15022 Upgrade Travis OS to Xenial (gkrizek) #14738 Fix running wallet_listtransactions.py individually through test_runner.py (kristapsk) #15026 Rename rpc_timewait to rpc_timeout (MarcoFalke) #15069 Fix rpc_net.py pong race condition (Empact) #14790 Allow running rpc_bind.py –nonloopback test without IPv6 (kristapsk) #14457 add invalid tx templates for use in functional tests (jamesob) #14855 Correct ineffectual WithOrVersion from transactions_tests (Empact) #15099 Use std::vector API for construction of test data (domob1812) #15102 Run invalid_txs.InputMissing test in feature_block (MarcoFalke) #15059 Add basic test for BIP34 (MarcoFalke) #15108 Tidy up wallet_importmulti.py (amitiuttarwar) #15164 Ignore shellcheck warning SC2236 (promag) #15170 refactor/lint: Add ignored shellcheck suggestions to an array (koalaman) #14958 Remove race between connecting and shutdown on separate connections (promag) #15166 Pin shellcheck version (practicalswift) #15196 Update all subprocess.check_output functions to be Python 3.4 compatible (gkrizek) #15043 Build fuzz targets into seperate executables (MarcoFalke) #15276 travis: Compile once on trusty (MarcoFalke) #15246 Add tests for invalid message headers (MarcoFalke) #15301 When testing with –usecli, unify RPC arg to cli arg conversion and handle dicts and lists (achow101) #15247 Use wallet to retrieve raw transactions (MarcoFalke) #15303 travis: Remove unused functional_tests_config (MarcoFalke) #15330 Fix race in p2p_invalid_messages (MarcoFalke) #15324 Make bloom tests deterministic (MarcoFalke) #15328 travis: Revert “run extended tests once daily” (MarcoFalke) #15327 Make test updatecoins_simulation_test deterministic (practicalswift) #14519 add utility to easily profile node performance with perf (jamesob) #15349 travis: Only exit early if compilation took longer than 30 min (MarcoFalke) #15350 Drop RPC connection if –usecli (promag) #15370 test: Remove unused –force option (MarcoFalke) #14543 minor p2p_sendheaders fix of height in coinbase (instagibbs) #13787 Test for Windows encoding issue (ken2812221) #15378 Added missing tests for RPC wallet errors (benthecarman) #15238 remove some magic mining constants in functional tests (instagibbs) #15411 travis: Combine –disable-bip70 into existing job (MarcoFalke) #15295 fuzz: Add test/fuzz/test_runner.py and run it in travis (MarcoFalke) #15413 Add missing cs_main locks required when accessing pcoinsdbview, pcoinsTip or pblocktree (practicalswift) #15399 fuzz: Script validation flags (MarcoFalke) #15410 txindex: interrupt threadGroup before calling destructor (MarcoFalke) #15397 Remove manual byte editing in wallet_tx_clone func test (instagibbs) #15415 functional: allow custom cwd, use tmpdir as default (Sjors) #15404 Remove -txindex to start nodes (amitiuttarwar) #15439 remove byte.hex() to keep compatibility (AkioNak) #15419 Always refresh cache to be out of ibd (MarcoFalke) #15507 Bump timeout on tests that timeout on windows (MarcoFalke) #15506 appveyor: fix cache issue and reduce dependencies build time (ken2812221) #15485 add rpc_misc.py, mv test getmemoryinfo, add test mallocinfo (adamjonas) #15321 Add cs_main lock annotations for mapBlockIndex (MarcoFalke) #14128 lint: Make sure we read the command line inputs using UTF-8 decoding in python (ken2812221) #14115 lint: Make all linters work under the default macos dev environment (build-osx.md) (practicalswift) #15219 lint: Enable python linters via an array (Empact) Platform support
    #13866 utils: Use _wfopen and _wfreopen on windows (ken2812221) #13886 utils: Run commands using UTF-8 string on windows (ken2812221) #14192 utils: Convert fs::filesystem_error messages from local multibyte to UTF-8 on windows (ken2812221) #13877 utils: Make fs::path::string() always return UTF-8 string on windows (ken2812221) #13883 utils: Convert windows args to UTF-8 string (ken2812221) #13878 utils: Add fstream wrapper to allow to pass unicode filename on windows (ken2812221) #14426 utils: Fix broken windows filelock (ken2812221) #14686 Fix windows build error if --disable-bip70 (ken2812221) #14922 windows: Set _WIN32_WINNT to 0x0601 (Windows 7) (ken2812221) #13888 Call unicode API on Windows (ken2812221) #15468 Use fsbridge::ifstream to fix Windows path issue (ken2812221) #13734 Drop boost::scoped_array and use wchar_t API explicitly on Windows (ken2812221) #13884 Enable bdb unicode support for Windows (ken2812221) Miscellaneous
    #13935 contrib: Adjust output to current test format (AkioNak) #14097 validation: Log FormatStateMessage on ConnectBlock error in ConnectTip (MarcoFalke) #13724 contrib: Support ARM and RISC-V symbol check (ken2812221) #13159 Don’t close old debug log file handle prematurely when trying to re-open (on SIGHUP) (practicalswift) #14186 bitcoin-cli: don’t translate command line options (HashUnlimited) #14057 logging: Only log using config file path_to_bitcoin.conf message on startup if conf file exists (leishman) #14164 Update univalue subtree (MarcoFalke) #14272 init: Remove deprecated args from hidden args (MarcoFalke) #14494 Error if # is used in rpcpassword in conf (MeshCollider) #14742 Properly generate salt in rpcauth.py (dongcarl) #14708 Warn unrecognised sections in the config file (AkioNak) #14756 Improve rpcauth.py by using argparse and getpass modules (promag) #14785 scripts: Fix detection of copyright holders (cornelius) #14831 scripts: Use #!/usr/bin/env bash instead of #!/bin/bash (vim88) #14869 Scripts: Add trusted key for samuel dobson (laanwj) #14809 Tools: improve verify-commits.py script (jlopp) #14624 Some simple improvements to the RNG code (sipa) #14947 scripts: Remove python 2 import workarounds (practicalswift) #15087 Error if rpcpassword contains hash in conf sections (MeshCollider) #14433 Add checksum in gitian build scripts for ossl (TheCharlatan) #15165 contrib: Allow use of github api authentication in github-merge (laanwj) #14409 utils and libraries: Make ‘blocksdir’ always net specific (hebasto) #14839 threads: Fix unitialized members in sched_param (fanquake) #14955 Switch all RNG code to the built-in PRNG (sipa) #15258 Scripts and tools: Fix devtools/copyright_header.py to always honor exclusions (Empact) #12255 Update bitcoin.service to conform to init.md (dongcarl) #15266 memory: Construct globals on first use (MarcoFalke) #15347 Fix build after pr 15266 merged (hebasto) #15351 Update linearize-hashes.py (OverlordQ) #15358 util: Add setuphelpoptions() (MarcoFalke) #15216 Scripts and tools: Replace script name with a special parameter (hebasto) #15250 Use RdSeed when available, and reduce RdRand load (sipa) #15278 Improve PID file error handling (hebasto) #15270 Pull leveldb subtree (MarcoFalke) #15456 Enable PID file creation on WIN (riordant) #12783 macOS: disable AppNap during sync (krab) #13910 Log progress while verifying blocks at level 4 (domob1812) #15124 Fail AppInitMain if either disk space check fails (Empact) #15117 Fix invalid memory write in case of failing mmap(…) in PosixLockedPageAllocator::AllocateLocked (practicalswift) #14357 streams: Fix broken streams_vector_reader test. Remove unused seek(size_t) #11640 Make LOCK, LOCK2, TRY_LOCK work with CWaitableCriticalSection (ryanofsky) #14074 Use std::unordered_set instead of set in blockfilter interface (jimpo) #15275 Add gitian PGP key for hebasto (hebasto) Documentation
    #14120 Notes about control port and read access to cookie (JBaczuk) #14135 correct GetDifficulty doc after #13288 (fanquake) #14013 Add new regtest ports in man following #10825 ports reattributions (ariard) #14149 Remove misleading checkpoints comment in CMainParams (MarcoFalke) #14153 Add disable-wallet section to OSX build instructions, update line in Unix instructions (bitstein) #13662 Explain when reindex-chainstate can be used instead of reindex (Sjors) #14207 -help-debug implies -help (laanwj) #14213 Fix reference to lint-locale-dependence.sh (hebasto) #14206 Document -checklevel levels (laanwj) #14217 Add GitHub PR template (MarcoFalke) #14331 doxygen: Fix member comments (MarcoFalke) #14264 Split depends installation instructions per arch (MarcoFalke) #14393 Add missing apt-get install (poiuty) #14428 Fix macOS files description in qt/README.md (hebasto) #14390 release process: RPC documentation (karel-3d) #14472 getblocktemplate: use SegWit in example (Sjors) #14497 Add doc/bitcoin-conf.md (hebasto) #14526 Document lint tests (fanquake) #14511 Remove explicit storage requirement from README.md (merland) #14600 Clarify commit message guidelines (merland) #14617 FreeBSD: Document Python 3 requirement for ‘gmake check’ (murrayn) #14592 Add external interface consistency guarantees (MarcoFalke) #14625 Make clear function argument case in dev notes (dongcarl) #14515 Update OpenBSD build guide for 6.4 (fanquake) #14436 Add comment explaining recentRejects-DoS behavior (jamesob) #14684 conf: Remove deprecated options from docs, Other cleanup (MarcoFalke) #14731 Improve scripted-diff developer docs (dongcarl) #14778 A few minor formatting fixes and clarifications to descriptors.md (jnewbery) #14448 Clarify rpcwallet flag url change (JBaczuk) #14808 Clarify RPC rawtransaction documentation (jlopp) #14804 Less confusing documentation for torpassword (fanquake) #14848 Fix broken Gmane URL in security-check.py (cyounkins-bot) #14882 developer-notes.md: Point out that UniValue deviates from upstream (Sjors) #14909 Update minimum required Qt (fanquake) #14914 Add nice table to files.md (emilengler) #14741 Indicate -rpcauth option password hashing alg (dongcarl) #14950 Add NSIS setup/install steps to windows docs (fanquake) #13930 Better explain GetAncestor check for m_failed_blocks in AcceptBlockHeader (Sjors) #14973 Improve Windows native build instructions (murrayn) #15073 Botbot.me (IRC logs) not available anymore (anduck) #15038 Get more info about GUI-related issue on Linux (hebasto) #14832 Add more Doxygen information to Developer Notes (ch4ot1c) #15128 Fix download link in doc/README.md (merland) #15127 Clarifying testing instructions (benthecarman) #15132 Add FreeBSD build notes link to doc/README.md (fanquake) #15173 Explain what .python-version does (Sjors) #15223 Add information about security to the JSON-RPC doc (harding) #15249 Update python docs to reflect that wildcard imports are disallowed (Empact) #15176 Get rid of badly named doc/README_osx.md (merland) #15272 Correct logging return type and RPC example (fanquake) #15244 Gdb attaching to process during tests has non-sudo solution (instagibbs) #15332 Small updates to getrawtransaction description (amitiuttarwar) #15354 Add missing bitcoin-wallet tool manpages (MarcoFalke) #15343 netaddress: Make IPv4 loopback comment more descriptive (dongcarl) #15353 Minor textual improvements in translation_strings_policy.md (merland) #15426 importmulti: add missing description of keypool option (harding) #15425 Add missing newline to listunspent help for witnessScript (harding) #15348 Add separate productivity notes document (dongcarl) #15416 Update FreeBSD build guide for 12.0 (fanquake) #15222 Add info about factors that affect dependency list (merland) #13676 Explain that mempool memory is added to -dbcache (Sjors) #15273 Slight tweak to the verify-commits script directions (droark) #15477 Remove misleading hint in getrawtransaction (MarcoFalke) #15489 Update release process for snap package (MarcoFalke) #15524 doc: Remove berkeleydb PPA from linux build instructions (MarcoFalke) #15559 Correct analyzepsbt rpc doc (fanquake) #15194 Add comment describing fDisconnect behavior (dongcarl) #15754 getrpcinfo docs (benthecarman) #15763 Update bips.md for 0.18.0 (sipa) #15757 List new RPCs in psbt.md and descriptors.md (sipa) #15765 correct bitcoinconsensus_version in shared-libraries.md (fanquake) #15792 describe onlynet option in doc/tor.md (jonatack) #15802 mention creating application support bitcoin folder on OSX (JimmyMow) #15799 Clarify RPC versioning (MarcoFalke) Credits
    Thanks to everyone who directly contributed to this release:
    1Il1 251 Aaron Clauson Adam Jonas Akio Nakamura Alexander Leishman Alexey Ivanov Alexey Poghilenkov Amir Abrams Amiti Uttarwar Andrew Chow andrewtoth Anthony Towns Antoine Le Calvez Antoine Riard Antti Majakivi araspitzu Arvid Norberg Ben Carman Ben Woosley benthecarman bitcoinhodler Carl Dong Chakib Benziane Chris Moore Chris Stewart chris-belcher Chun Kuan Lee Cornelius Schumacher Cory Fields Craig Younkins Cristian Mircea Messel Damian Mee Daniel Ingram Daniel Kraft David A. Harding DesWurstes dexX7 Dimitri Deijs Dimitris Apostolou Douglas Roark DrahtBot Emanuele Cisbani Emil Engler Eric Scrivner fridokus Gal Buki Gleb Naumenko Glenn Willen Graham Krizek Gregory Maxwell Gregory Sanders gustavonalle Harry Moreno Hennadii Stepanov Isidoro Ghezzi Jack Mallers James Hilliard James O’Beirne Jameson Lopp Jeremy Rubin Jesse Cohen Jim Posen John Newbery Jon Layton Jonas Schnelli João Barbosa Jordan Baczuk Jorge Timón Julian Fleischer Justin Turner Arthur Karel Bílek Karl-Johan Alm Kaz Wesley ken2812221 Kostiantyn Stepaniuk Kristaps Kaupe Lawrence Nahum Lenny Maiorani liuyujun lucash-dev luciana Luke Dashjr marcaiaf marcoagner MarcoFalke Martin Erlandsson Marty Jones Mason Simon Michael Ford Michael Goldstein Michael Polzer Mitchell Cash mruddy Murray Nesbitt OverlordQ Patrick Strateman Pierre Rochard Pieter Wuille poiuty practicalswift priscoan qubenix riordant Russell Yanofsky Samuel Dobson sanket1729 Sjors Provoost Stephan Oeste Steven Roose Suhas Daftuar TheCharlatan Tim Ruffing Vidar Holen vim88 Walter whythat Wladimir J. van der Laan Zain Iqbal Allarakhia As well as everyone that helped translating on Transifex.
    View the full article
  13. Like
    admin got a reaction from vamp111 in [hash] Lightning 101: Какво е Lightning нод?   
    Какво правят Lightning нодовете? LN нодовете имат две основни задължения: Да следят основния блокчейн (Bitcoin). Да взаимодействат с други Lightning Network нодове и да осъществяват транзакциите в мрежата Всеки нод в Lightning мрежата трябва да наблюдава блокчейна на основната валутата, върху която работи. Когато се говори за Lightning network, повечето...
    Материалът Lightning 101: Какво е Lightning нод? е публикуван за пръв път на Hash.bg.
    View the full article
  14. Like
    admin got a reaction from vamp111 in [hash] Lightning 101: Какво е Lightning invoice?   
    Какво е Lightning invoice? Lightning invoice (фактура) е начинът, по който заявявате, че искате да получите плащане чрез LN. Тя частично наподобява биткойн адресите, но има някои ключови разлики, на който трябва да обърнем внимание. Ето и пример: В този си вид изглежда малко стряскащо. Именно затова в повечето случаи...
    Материалът Lightning 101: Какво е Lightning invoice? е публикуван за пръв път на Hash.bg.
    View the full article
  15. Like
    admin got a reaction from vamp111 in [hash] Lightning Network и борбата с мащабируемостта в Биткойн системата   
    Криптовалутите са сравнително нови и за повечето хора те имат различни недостатъци. Спекулантите и търсачите на бързо забогатяване, например, гледащи на криптовалутите като начин за „пенсиониране“ в рамките на няколко дни, бързо биват застигнати от реалността. От другата страна, по-консервативните се страхуват от волатилността, което е разбираемо. Хората, закупили Биткойн...
    Материалът Lightning Network и борбата с мащабируемостта в Биткойн системата е публикуван за пръв път на Hash.bg.
    View the full article
  16. Like
    admin got a reaction from vamp111 in [hash] Биткойн транзакции с портфейла Blockstream Green   
    Лог-ин и PIN код След като сте преминали през стъпките, описани в предишната статия и сте създали своя Blockstream Green портфейл, ще ви бъде показан следният Лог-ин екран, на който ще трябва да въведете своя PIN код. Правилно въведена комбинация ще ви даде достъп до портфейла. Ако сте забравили своя...
    Материалът Биткойн транзакции с портфейла Blockstream Green е публикуван за пръв път на Hash.bg.
    View the full article
  17. Like
    admin got a reaction from vamp111 in [hash] Blockstream Green – ултималният Биткойн портфейл   
    За какво служи Blockstream Green? Blockstream Green е Bitcoin портфейл – той предоставя възможността да получавате, съхранявате и изпращате Bitcoin. Можете да използвате Blockstream Green, за да приемате входящи плащания, да съхранявате койните си на безопасно място за дълги периоди от време или да извършвате плащания и да изпращате Bitcoin...
    Материалът Blockstream Green – ултималният Биткойн портфейл е публикуван за пръв път на Hash.bg.
    View the full article
  18. Like
    admin got a reaction from vamp111 in [hash] Multisignature и приложението му в Биткойн. Multi-sig адреси.   
    *Интересен факт: Multisignature (накратко Multi-sig) се използва под различни форми от хиляди години. Към момента се смята, че най-древната форма е използвана при монасите, за да предпазят най-ценните реликви на своите светци. Главният монах давал само част от ключа на подчинените му монаси, като по този начин никой не можел...
    Материалът Multisignature и приложението му в Биткойн. Multi-sig адреси. е публикуван за пръв път на Hash.bg.
    View the full article
  19. Like
    admin got a reaction from metaflute1 in [hash] Dai и платформата зад него – Maker Dao   
    Maker DAO е децентрализирана автономна организация, оперираща в рамките на Ethereum блокчейна. Основната функция на Maker е да сведе до минимум волатилността на Dai токена спрямо американския долар. Това става посредством използването на система от обезпечения и ценови емисии. Maker системата от своя страна се контролира от притежателите на MKR. Това кратко определениe най-вероятно е повдигнало множество въпроси. Сигурно се питате какво е Dai, какво е MKR, как работи Maker системата? Ще се опитаме да дадем отговор на всеки от тези въпроси. За да разберем как работи Maker, трябва да се фокусираме върху първия продукт на организацията. Този продукт се нарича Dai. Какво е Dai? Dai е стейбълкойн. Понятието „стейбълкойн“ е доста просто за обяснение – това е токен (като Binance coin и OmiseGo), който съществува на даден блокчейн. В случая и трите токена работят върху блокчейна на Етериум. Но за разлика от посочените, той не е волатилен. Но ако  волатилността е относителна, какво означава даден инструмент да не е волатилен? Активът, спрямо който Dai се опитва да бъде стабилен е американският...
    The post Dai и платформата зад него – Maker Dao appeared first on Hash.bg.
    View the full article
  20. Like
    admin got a reaction from vamp111 in [bitmex]   
    style="margin: 0;color: black;">
    View this email in a browser
    BitMEX Crypto Trader Digest Mar 22, 2019 From the desk of Arthur Hayes
    Co-founder & CEO, BitMEX
    From The BitMEX Research Desk
    Atomic Swaps and Distributed Exchanges: The Inadvertent Call Option
    Abstract: In this piece, we look at a common problem facing both distributed exchanges and cross-chain atomic swaps: what we call the “inadvertent call option.” Non-custodial fully-distributed trading systems often inadvertently create an American-style call option, rather than the more simple desired operation of exchanging one asset for another. We review how this same issue applies to some specific distributed trading platforms like Bisq and particular cross-chain atomic swaps constructions. We then look at how IDEX solves this problem, but then requires users to trust the platform operator, to some extent, by removing some benefits of distributed exchanges. We conclude that despite the added complexity, in some circumstances it may be better to embrace the call option feature as a viable product, rather than ignoring or fighting it.


    Tracking US$24 billion Of Tokens ICO Makers Allocated To Themselves
    Abstract: This is our third major piece on ICOs. In our first piece in September 2017 we focused on the interrelationships between ICO team members. In our second piece, in October 2018, we tracked the Ethereum balances in the ICO treasury accounts. In collaboration with TokenAnalyst, this piece focuses on the treasury balances of the ICO tokens themselves, on the Ethereum network. This report is based on tokens where the team controlled holding’s were worth an astonishing US$24.2 billion on issuance (in reality liquidity was too low for this value to be realized). Today this figure has fallen to around US$5 billion, with the difference primarily being caused by a fall in the market value of the tokens, alongside US$1.5 billion of transfers away from team address clusters (possibly disposals).


    Anatomy Of The Next Global Financial Crisis
    Abstract: We examine a question which many in the crypto-currency community frequently ask: “When is the next global financial crisis going to happen?” We attempt to answer this by first explaining how that since 2008, the epicentre of financial risk seems to have shifted from the banks to the asset management industry. We therefore argue that a repeat of 2008, where retail banking deposits and payment systems are under threat, is unlikely. In particular, we assert that corporate debt investment funds and unconventional debt investment vehicles, encouraged by the deceptively low volatility and low return environment, could be the area where the fragility in the financial system is most significant.


    BitMEX Research Launches Ethereum Node Metrics Website – Nodestats.org
    Abstract: BitMEX Research is delighted to announce the launch of a new website to monitor the Ethereum network, Nodestats.org. The website connects to five different Ethereum nodes and collects data every five seconds. The main focus of the website is providing metrics related to the computational resources each Ethereum node requires. While analysing some of the metrics, we may have identified issues with respect to the integrity of the data reported by the nodes, which may be of concern to some Ethereum users. Nodestats.org was produced in collaboration with TokenAnalyst, who are BitMEX Research’s Ethereum network data and analysis partner.



      The Road to $10K


    Did you take your losses like a champ, or bottom tick the market with your market close order? The first quarter of 2019 witnessed depressed volumes, volatility, and price. The local lows of late 2018 have not been retested; however the market chop makes me feel like I’m at the Saudi embassy.
     
    The repair of crypto investors balance sheets is not done yet. Losses must be digested, and the unlucky masses must wage cuck a bit longer to get back in the game.
     
    All is not lost; nothing goes up or down in a straight line. 2019 will be boring, but green shoots will appear towards year end. The mighty central bank printing presses paused for a while, but economic sophists could not resist the siren call of free money. They are busy inventing the academic crutches (here’s looking at your MMT), to justify the next global money printing orgy.
     
    Do not despair. CRipple is still worth more than zero. And Justin Sun’s new age religion TRON, paired with the Pope CZ, tells us there are those still willing to eat shitcoins with a smile.

    Electric Cars and Sand Suckers
    While Bitcoin is an innovative technology, the technical merits of the protocol do not exist in a vacuum. The world’s monetary situation is very important. It determines how willing investors are able to suspend disbelief and believe crypto fan boys and girls.
     
    Throughout 2018 the omnipotent Fed began reducing the size of its balance sheet and raising short term interest rates. The world still beats to the tune of the USD. Financial institutions and governments require cheap dollars, and the Fed happily obliged since the 2008 GFC.
     
    Tech VC funds won’t admit it, but cheap dollars are key to their business. How else can you convince LPs to continually fund negative gross margin businesses, until they “scale” and achieve profitability? Everyone wants to become the next Facebook.
     
    When investing in government bonds yields zero or negative, desperate investors will do whatever it takes to obtain yield. Tesla is a perfect example. Lord Elon is a master at creating open-faced pits, and torching his investors’ money in them. Tesla does not belong on the Nasdaq, but rather as a speciality flavour at the New York Bagel Co.
     
    The market disagrees with my Tesla melancholy, investors continue to line up to eat Elon’s sexy Tesla hot shit cakes. Can you blame them, after you are fully invested in the S&P500 where else will you be able to show alpha to your investors?
     
    Another example of this free money folly is the Vision Fund. Top tick the “Value” your investments while still on the Softbank’s books. Find a group of suckers from the sand (That’s where the former Deutsche credit boys come in, “Be Bold”) Sell your mark-to-fantasy private Unicorns into the vehicle populated by your sand schmucks Take your cash and payout to your Japanese investors as dividends.
      These entities thrived while the Fed held rates and 0% and reinvested their treasury and MBS roll off. TSLA hit its all-time high in mid-2017. Since then Elon has struggled to generate enough buzz to keep his stock elevated. I’m sure he isn’t thrilled that bondholders are due close to $1 billion in cash because the stock price failed to scale $360.
     
    The Vision Fund’s sand suckers also got cold feet. They baulked when the fund proposed to invest an additional $20 billion into the We-Broke company. The check size got sliced down to $2 billion.
     
    When dollars get scarce suddenly investors discover value investing all over again.
     
    The height of crypto silliness in December 2017 occurred just before the Fed embarked on its quantitative tightening. The 2018 pain train spared no crypto asset or shitcoin.
     
    But things are a changin’. The Fed couldn’t stomach a 20% correction in the SPX. In the recent Fed minutes, the dot plot now shows now rate increases for the rest of 2019. The Fed will start reinvesting its runoff in the third quarter. We are only a hop, skip, and a jump away from an expanding Fed balance sheet.
     
    Beijing knows China must rebalance its economy away from credit-fueled fixed asset investment. However, Xi must not have the political cojones to push this sort of painful change through. Therefore, the PBOC said “fuck it” to any attempt to reign in credit growth. The two most important central banks are creepin’ back into a super easy credit regime.



     
    Easy money will manifest itself in other higher profile and more liquid dogshit before crypto. 2019 will feature an IPO beauty pageant of some of the best cash destroying businesses. Uber, Lyft, AirBnB, and possibly the We company all are rumoured to IPO this year.
     
    Lyft is apparently oversubscribed for its upcoming IPO. Oh baby, this is going to be a fun year.
     
    If these beauties can price at the top of the range, and trade above the IPO price, we know that party time is back. Crypto will be the last asset class to feel the love. Too many people lost too much money, in too short a time period, to immediately Fomo back into the markets. Get Excited
    Green shoots will begin to appear in early Q4. Free money and collective amnesia are powerful drugs. Also after two years of wage cucking, punters should have a few sheckles to rub together.
     
    The 2019 chop will be intense, but the markets will claw back to $10,000. That is a very significant psychological barrier. It’s a nice round sexy number. $20,000 is the ultimate recovery. However, it took 11 months from $1,000 to $10,000, but less than one month from $10,000 to $20,000 back to $10,000.
     
    Melissa Lee peep this. $10,000 is my number, and I’m stickin’ to it. Risk Disclaimer
    BitMEX is not a licensed financial advisor. The information presented in this newsletter is an opinion, and is not purported to be fact. Bitcoin is a volatile instrument and can move quickly in any direction. BitMEX is not responsible for any trading loss incurred by following this advice. Contact Us | Subscribe | Unsubscribe
  21. Like
    admin got a reaction from vamp111 in [hash] Заплащане с криптовалути на музикални фестивали   
    Вече няма голям музикален фестивал, на който да отидете и да можете да си купите напитки, храна или тениска с кеш. Всички фестивали, особено международните, използват карти или NFC гривни. Създаването на тези гривни и разработването на подобна технология има много позитиви. Не само за организаторите, но и за най-важните хора за един фестивал – участниците. Плюсовете за организаторите са ясни – всяка поръчка се регистрира в база данни. По този начин е изключително трудно да не се отчитат средства от барманите, тоест, да се крадат пари. Участниците от своя страна се нуждаят от кеш само до момента на зареждане на устройството. След това могат да се насладят на партито, без да се притесняват дали не са загубили парите си, особено след няколко алкохолни напитки. Най-големите негативи са, че повечето хора зареждат картите си малко преди началото на фестивала в един и същ момент, което създава опашки и поставя негативно начало на купона. Същото се случва и в края на събитието, когато всички чакат да получат останалите средства от гривните...
    The post Заплащане с криптовалути на музикални фестивали appeared first on Hash.bg.
    View the full article
  22. Like
    admin got a reaction from metaflute1 in [hash] Заплащане с криптовалути на музикални фестивали   
    Вече няма голям музикален фестивал, на който да отидете и да можете да си купите напитки, храна или тениска с кеш. Всички фестивали, особено международните, използват карти или NFC гривни. Създаването на тези гривни и разработването на подобна технология има много позитиви. Не само за организаторите, но и за най-важните хора за един фестивал – участниците. Плюсовете за организаторите са ясни – всяка поръчка се регистрира в база данни. По този начин е изключително трудно да не се отчитат средства от барманите, тоест, да се крадат пари. Участниците от своя страна се нуждаят от кеш само до момента на зареждане на устройството. След това могат да се насладят на партито, без да се притесняват дали не са загубили парите си, особено след няколко алкохолни напитки. Най-големите негативи са, че повечето хора зареждат картите си малко преди началото на фестивала в един и същ момент, което създава опашки и поставя негативно начало на купона. Същото се случва и в края на събитието, когато всички чакат да получат останалите средства от гривните...
    The post Заплащане с криптовалути на музикални фестивали appeared first on Hash.bg.
    View the full article
  23. Like
    admin got a reaction from vamp111 in [hash] Два обещаващи проекта свързани с блокчейна на Биткойн   
    Майкъл Кейси е старши съветник към екипа на MIT, отговарящ за изследванията свързани с блокчейн технологиите. Блокчейн привържениците се борят с редица риторични предизвикателства. Едно от тях, аз наричам „статизъм„. Това представлява фалшивото предположение на техните критици, че технологията е в застой. Те считат, че тя никога няма да достигне пълния си потенциал. Според тях, в сегашното си състояние, тя е твърде тромава, скъпа или неефективна. Смятам, че това е един от двата недостатъка в широко разпространената анти-блокчейн тирада публикувана от Брус Шнайер. Авторът не споменава непрекъснатата работа на инженери, регулатори и бизнес лидери. Те постоянно подобряват тази нова система за обмен на стойност, така че евентуално да заработи в световен мащаб. (Други недостатък се откроява благодарение на най-наивните и върли защитници на технологията.  Те създават сламен човек, чрез твърдението си, че може да съществува свят без човешки авторитет. Дори и до развитие на система „без необходимост от доверие“, в който „математиката е закон“, винаги ще е необходима поне малка човешка намеса. Но целта на тази статия не е да споря...
    The post Два обещаващи проекта свързани с блокчейна на Биткойн appeared first on Hash.bg.
    View the full article
  24. Thanks
    admin got a reaction from ivan in [hash] Защо Биткойн ще успее – част 4   
    Към Част 1, Част 2 и Част 3 от поредицата „Защо Биткойн ще успее“ Голяма част от поредицата беше свързана с паричния характер на Биткойн.  С получените знания до тук, в четвъртата част на статията „ Защо Биткой ще успее“, ще разгледаме някои от най-често срещаните заблуди относно Биткойн. Биткойн е балон Биткойн, както и всички пазарно-ориентирани парични средства, притежава добавена стойност. Добавената стойност е това, което поражда общата критика, че Биткойн е „балон“. Всички парични стоки обаче имат добавен стойност. Всъщност именно тя е определящата характеристика на всички парични средства. Парадоксално е, че паричната стока може едновременно да е балон и да е подценена, ако е в ранните етапи на своето развитие. Биткойн е твърде волатилен Нестабилността на цената на Биткойн е резултат от неговото възникване. През първите няколко години от съществуването си Биткойн беше като стотинка, а всеки голям  купувач – като близнаците Winklevoss – можеше да предизвика голям скок в цената му. С нарастването на възприемането и ликвидността през годините, волатилността на Биткойн намалява пропорционално. Когато Биткойн достигне...
    The post Защо Биткойн ще успее – част 4 appeared first on Hash.bg.
    View the full article
  25. Like
    admin got a reaction from vamp111 in [hash] Защо Биткойн ще успее – част 4   
    Към Част 1, Част 2 и Част 3 от поредицата „Защо Биткойн ще успее“ Голяма част от поредицата беше свързана с паричния характер на Биткойн.  С получените знания до тук, в четвъртата част на статията „ Защо Биткой ще успее“, ще разгледаме някои от най-често срещаните заблуди относно Биткойн. Биткойн е балон Биткойн, както и всички пазарно-ориентирани парични средства, притежава добавена стойност. Добавената стойност е това, което поражда общата критика, че Биткойн е „балон“. Всички парични стоки обаче имат добавен стойност. Всъщност именно тя е определящата характеристика на всички парични средства. Парадоксално е, че паричната стока може едновременно да е балон и да е подценена, ако е в ранните етапи на своето развитие. Биткойн е твърде волатилен Нестабилността на цената на Биткойн е резултат от неговото възникване. През първите няколко години от съществуването си Биткойн беше като стотинка, а всеки голям  купувач – като близнаците Winklevoss – можеше да предизвика голям скок в цената му. С нарастването на възприемането и ликвидността през годините, волатилността на Биткойн намалява пропорционално. Когато Биткойн достигне...
    The post Защо Биткойн ще успее – част 4 appeared first on Hash.bg.
    View the full article
×
×
  • Създай нов...