admin
Members-
Posts
471 -
Joined
-
Last visited
-
Days Won
21
Everything posted by admin
-
Ако данните на Chainalysis са достоверни, даркнет пазарите са по-силни от всякога. В последния си Crypto Crime Report, публикуван през изминалата седмица, фирмата за блокчейн анализи Chainlysis твърди, че активността на даркнет пазарите почти се е удвоила през 2018. След резкия спад в края на 2017 и началото на 2018, поради затварянето на два от главните онлайн пазари за незаконна дейност – AlphaBay и Hansa, обемът на търговия се е възстановил почти напълно, надвишавайки 600 милиона долара в биткойни за изминалата година и доближавайки се до най-високите нива от началото на 2017. „Правоприлагащите органи работят здраво, за да спрат незаконната дейност на даркнет пазарите и вече имат няколко забележителни успеха като затварянето на AlphaBay” отбелязва репортът. „Като цяло обаче, тези пазари продължават да се развиват, като участниците просто местят своя бизнес към други платформи и технологии“ Whack-a-mole Даркнет пазарите – онлайн пазари за незаконни стоки и услуги, които работят скришно и използват биткойн (понякога и алткойни като лайткойн и монеро) за разплащания, съществуват в сегашната си форма и работят активно от... The post Активността в Дарк-Нет се е удвоила през 2018 appeared first on Hash.bg. View the full article
-
Ако данните на Chainalysis са достоверни, даркнет пазарите са по-силни от всякога. В последния си Crypto Crime Report, публикуван през изминалата седмица, фирмата за блокчейн анализи Chainlysis твърди, че активността на даркнет пазарите почти се е удвоила през 2018. След резкия спад в края на 2017 и началото на 2018,... The post Активността в Дарк-Нет се е удвоила през 2018 appeared first on Hash.bg. View the full article
-
Ако данните на Chainalysis са достоверни, даркнет пазарите са по-силни от всякога. В последния си Crypto Crime Report, публикуван през изминалата седмица, фирмата за блокчейн анализи Chainlysis твърди, че активността на даркнет пазарите почти се е удвоила през 2018. След резкия спад в края на 2017 и началото на 2018,... View the full article
-
Прочетете Част 1 и Част 2, за да се запознаете с предисторията на тази глава от поредицата „Защо Биткойн ще успее“ :) Съществува мания в модерната парична политика относно използването на парите като обменно средство. През 20-ти век държавите са извършват монопол върху печатането на пари и водят политика на продължително подкопаване на функцията на парите като средство за съхранение на стойност, създавайки грешното разбиране, че парите трябва да се използват главно като обменно средство. Мнозина критикуват Биткойн и го определят като неподходящ да замени парите, защото цената на Биткойн е прекалено променлива, за да бъде използван като обменно средство. Това обаче поставя колесницата пред коня. Парите винаги са еволюирали поетапно, като ролята на парите като средство за съхранение на стойност предхожда тази да се използват като средство за обмен. Един от бащите на маргиналистичната икономика, Стенли Джевонс, обяснява следното: Исторически погледнато… изглежда, че златото е служело първо като ценна стока за декорация; второ, за съхранение на богатство; трето, като средство за обмен; и последно, като средство за измерване на стойност.... The post Защо Биткойн ще успее – част 3 appeared first on Hash.bg. View the full article
-
Прочетете Част 1 и Част 2, за да се запознаете с предисторията на тази глава от поредицата „Защо Биткойн ще успее“ :) Съществува мания в модерната парична политика относно използването на парите като обменно средство. През 20-ти век държавите са извършват монопол върху печатането на пари и водят политика на продължително... The post Защо Биткойн ще успее – част 3 appeared first on Hash.bg. View the full article
-
Прочетете Част 1 и Част 2, за да се запознаете с предисторията на тази глава от поредицата „Защо Биткойн ще успее“ :) Съществува мания в модерната парична политика относно използването на парите като обменно средство. През 20-ти век държавите са извършват монопол върху печатането на пари и водят политика на продължително... View the full article
-
Все още в начален стадий, търговията на криптовалути като финансов актив поражда проблеми, които пречат на ефективността на борсите, финансовите институции и инвеститорите. Пример за това е непредсказуемото време за потвърждение на биткойн транзакциите към борсите или между различните борси, което води до намаляване ликвидността на пазара. От своя страна ниската ликвидност може да доведе до момент, в който цената на биткойн е уязвима на манипулации и големи движения. В такива моменти сравнително малки сделки могат значително да повлияят на цената. Blockstream (всеизвестната компания основана от Адам Бак) твърди, че нейната иновация, Liquid, която „оживя“ през есента на 2018, може да направи пазарите на криптовалути по-ефективни, предвидими и печеливши. Според изказване на Blockstream Liquid ще: „свързва борсите, брокерите и институциите по целия свят, позволявайки бърз, конфиденциален и сигурен трансфер на дигитални активи между различните участници“ Времето за потвърждение на биткойн транзакциите е непредсказуемо В момента скоростта на потвърждение на биткойн транзакциите е непредвидима, отбелязва директорът на отдел „Управление на продукти“ в Blockstream, Алън Пишитело. Средната скорост на транзакциите в Биткойн изглежда... The post Liquid – първият Sidechain на Биткойн appeared first on Hash.bg. View the full article
-
Все още в начален стадий, търговията на криптовалути като финансов актив поражда проблеми, които пречат на ефективността на борсите, финансовите институции и инвеститорите. Пример за това е непредсказуемото време за потвърждение на биткойн транзакциите към борсите или между различните борси, което води до намаляване ликвидността на пазара. От своя страна... The post Liquid – първият Sidechain на Биткойн appeared first on Hash.bg. View the full article
-
Все още в начален стадий, търговията на криптовалути като финансов актив поражда проблеми, които пречат на ефективността на борсите, финансовите институции и инвеститорите. Пример за това е непредсказуемото време за потвърждение на биткойн транзакциите към борсите или между различните борси, което води до намаляване ликвидността на пазара. От своя страна... View the full article
-
Samsung създава мобилен крипто портфейл Както вече е известно, корейският технологичен гигант Samsung е позитивно настроен към блокчейн технологиите. Това отново бе доказано със слухът, че компанията работи над интегрирането на мобилен крипто портфейл в най-новия си смартфон – Galaxy S10. Неотдавна изтекли снимки на новото устройство показват приложение, наречено KeyStore. Предполага се, че това наименование е избрано, заради функцията, която ще изпълнява приложението, а именно да съхранява вашите частни ключове (private keys). Предполага се, че приложението ще поддържа множество криптовалути. На появилите се снимки се вижда единствено Ethereum, но въпреки това хората са позитивни, че приложението ще ни дава възможност да работим поне с основните криптовалути – Bitcoin, Litecoin, Bitcoin Cash и др. В допълнение, потребителите ще могат да импортват вече съществуващите си портфейли, както и да създават нови. Samsung и блокчейн технологиите От известно време компанията усилено проучва този вид технологии, като през изминалите години са стартирани множество блокчейн проекти, сред които дори и производството на ASIC чипове за добив на криптовалути. Компанията множество пъти е изказвала убежденията... The post Samsung интегрира Крипто портфейл в своя флагман – Galaxy S10 appeared first on Hash.bg. View the full article
-
Ако все още не сте прочели първата част на „Защо биткойн ще успее“, започнете от тук :) Качествата на добрия предмет за съхранение на стойност Когато предметите служещи за съхранение на стойност се конкурират помежду си, техните специфични качества са това, което ги откроява един от друг и позволява на някои от тях да надделеят, водейки до тяхното увеличено търсене във времето. Докато в миналото много и различни предмети били използвани за съхранение на стойност или „прото-пари“, в един момент хората започнали да търсят определени качества в тези предмети, което позволило на част от тях да надделеят над останалите. Идеалният предмет за съхранение на стойност ще притежава следните качества: Дълготрайност: Предметът не трябва да бъде нетраен или лесно унищожим. Пример за стока, която не отговаря на това качество е пшеницата. Преносимост: Предметът трябва да може да се транспортира и съхранява лесно, което ще го защити от загуба или кражба, но и ще улесни търговията на далечни разстояния. Така кравата е по-лош избор за „пари“ от златна гривна. Заменяемост: Мостра от... The post Защо Биткойн ще успее – част 2 appeared first on Hash.bg. View the full article
-
Какво е Ledger Nano S Ledger Nano S е хардуерен портфейл от ново поколение. Той поддържа Bitcoin, Ethereum и много други криптовалути. Свързва се с компютъра чрез USB кабел и притежава малък дисплей и два бутона, служещи за навигация в менюто и потвърждение на транзакциите. Чрез него можете да съхранявате, получавате и изпращате различни криптовалути, без да излагаме средствата си на риск. Nano S ви дава пълен контрол и достъп до вашите средства във всеки един момент. Nano-то също така поддържа и FIDO® Universal Second Factor standard (еквивалент на Google Authenticator), който може да се използва като допълнителна аутентикация (2 Factor Aithentication) за вход във вашите аакаунти в борси, пощи и др. Високо ниво на сигурност Благодарение на специален smartcard chip, включващ допълнителен защитен елемент, който бива използван в кредитни карти и паспорти за защита на биометрични данни и разработената от Ledger операционна система наречена BOLOS – гъвкава система, която улеснява поддръжката на множество криптовалути, е почти невъзможно Nano S да бъде компрометиран. Физическите бутони също допринасят за сигурността на портфейла, тъй като транзакциите не... The post Ledger Nano S – сигурният крипто портфейл appeared first on Hash.bg. View the full article
-
Тайландската борса планира навлизане в крипто средите Тайландската фондова борса (SET) планира създаването и управлението на борса за криптовалути, която да оперира отделно от дейността на фондовата борса. Д-р Пакорн Пийтатавачай, президент на SET, разкри миналия четвъртък, че борсата се готви за тест на прототип на крипто ексчейндж през втората половина на тази година. Местните медии информират, че борсата има за цел да „отвори нова борса, която да се превърне в оторизиран електронен ексчейндж на дигитални валути още тази година“, добавяйки, че вече се разработват и обсъждат детайли като бек-енда на системата и кой портфейл да се използва за съхранение на криптовалутите. Новината получи коментар от Патера Дилокрунгтирапоп, председател на Асоциацията на дружествата за ценни книжа и заместник-председател на управителния съвет на SET, която коментира следното: Борсата не иска да изпусне възходящия тренд на инвестициите в дигитални активи. SET се надзирава от от тайландската комисия по ценните книжа и фондовите борси (ТSEC) и понастоящем функционира съгласно правната рамка, установена в „Закона за ценните книжа и борсите, B.E. 2535 от 1992г. Членовете на... The post Тайландската стокова борса ще търгува криптовалути appeared first on Hash.bg. View the full article
-
Екипът на hash.bg реши да преведе една от най-добрите Биткойн статии за изминалата 2018 година – The Bullish Case for Bitcoin, написана от Вижай Бояпати. Заемаме се с тази задача с цел да представим идеите на автора на българската аудитория. Някои от изразите нямат еквивалент на български език и са обяснени по различен начин, но оригиналните мисли са запазени. The post Защо Биткойн ще успее – част 1 appeared first on Hash.bg. View the full article
-
Binance изпълни обещанието си за навлизане на крипто-фиатния пазар, след като вчера стартира новия си европейски проект – Binance Jersey. Клиенти от цяла Европа ще могат да търгуват BTC и ETH срещу британски лири (GBP) и евро (EUR) на платформата, работеща под юрисдикцията на остров Джърси, намиращ се близо до бреговете на Англия и Франция. Повече пътища между фиат и крипто във времена на валутна несигурност. Още през декември 2018 г., в изявление за Bitsonline, главният финансов директор Уей Джоу каза, че стратегията на Binance е да създаде възможно най-много “мостове” между криптовалутите и фиатната системата. Това е и причината в края на 2018 г. да се появи първата им фиатна борса – Binance Uganda, а сега и Binance Jersey. Работи се и по създаването на такава и в Азия. Във вчерашното си съобщение Джоу повтори твърдението си, че желанието за популяризирането и използването на криптовалути е основната движеща сила за компанията. С повишеното финансово объркване по отношение на оттеглянето на Великобритания от Европейския съюз (т.н. „Brexit“), се открива възможност... The post Jersey – втората crypto-fiat борса на Binance. appeared first on Hash.bg. View the full article
-
Bitcoin Core version 0.17.1 is now available from: https://bitcoincore.org/bin/bitcoin-core-0.17.1/ This is a new minor version release, with various bugfixes 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). If your node has a txindex, the txindex db will be migrated the first time you run 0.17.0 or newer, which may take up to a few hours. Your node will not be functional until this migration completes. 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. Upgrading directly from 0.7.x and earlier without redownloading the blockchain is not supported. However, as usual, old wallet versions are still supported. Downgrading warning The chainstate database for this release is not compatible with previous releases, so if you run 0.15 and then decide to switch back to any older version, you will need to run the old release with the -reindex-chainstate option to rebuild the chainstate data structures in the old format. If your node has pruning enabled, this will entail re-downloading and processing the entire blockchain. Compatibility Bitcoin Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and newer (Windows XP is not supported). Bitcoin Core should also work on most other Unix-like systems but is not 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. Notable changes listtransactions label support The listtransactions RPC account parameter which was deprecated in 0.17.0 and renamed to dummy has been un-deprecated and renamed again to label. When bitcoin is configured with the -deprecatedrpc=accounts setting, specifying a label/account/dummy argument will return both outgoing and incoming transactions. Without the -deprecatedrpc=accounts setting, it will only return incoming transactions (because it used to be possible to create transactions spending from specific accounts, but this is no longer possible with labels). When -deprecatedrpc=accounts is set, it’s possible to pass the empty string “” to list transactions that don’t have any label. Without -deprecatedrpc=accounts, passing the empty string is an error because returning only non-labeled transactions is not generally useful behavior and can cause confusion. 0.17.1 change log P2P protocol and network code #14685 9406502 Fix a deserialization overflow edge case (kazcw) #14728 b901578 Fix uninitialized read when stringifying an addrLocal (kazcw) Wallet #14441 5150acc Restore ability to list incoming transactions by label (jnewbery) #13546 91fa15a Fix use of uninitialized value bnb_used in CWallet::CreateTransaction(…) (practicalswift) #14310 bb90695 Ensure wallet is unlocked before signing (gustavonalle) #14690 5782fdc Throw error if CPubKey is invalid during PSBT keypath serialization (instagibbs) #14852 2528443 backport: [tests] Add wallet_balance.py (MarcoFalke) #14196 3362a95 psbt: always drop the unnecessary utxo and convert non-witness utxo to witness when necessary (achow101) #14588 70ee1f8 Refactor PSBT signing logic to enforce invariant and fix signing bug (gwillen) #14424 89a9a9d Stop requiring imported pubkey to sign non-PKH schemes (sipa, MeshCollider) RPC and other APIs #14417 fb9ad04 Fix listreceivedbyaddress not taking address as a string (etscrivner) #14596 de5e48a Bugfix: RPC: Add address_type named param for createmultisig (luke-jr) #14618 9666dba Make HTTP RPC debug logging more informative (practicalswift) #14197 7bee414 [psbt] Convert non-witness UTXOs to witness if witness sig created (achow101) #14377 a3fe125 Check that a separator is found for psbt inputs, outputs, and global map (achow101) #14356 7a590d8 Fix converttopsbt permitsigdata arg, add basic test (instagibbs) #14453 75b5d8c Fix wallet unload during walletpassphrase timeout (promag) GUI #14403 0242b5a Revert “Force TLS1.0+ for SSL connections” (real-or-random) #14593 df5131b Explicitly disable “Dark Mode” appearance on macOS (fanquake) Build system #14647 7edebed Remove illegal spacing in darwin.mk (ch4ot1c) #14698 ec71f06 Add bitcoin-tx.exe into Windows installer (ken2812221) Tests and QA #13965 29899ec Fix extended functional tests fail (ken2812221) #14011 9461f98 Disable wallet and address book Qt tests on macOS minimal platform (ryanofsky) #14180 86fadee Run all tests even if wallet is not compiled (MarcoFalke) #14122 8bc1bad Test rpc_help.py failed: Check whether ZMQ is enabled or not (Kvaciral) #14101 96dc936 Use named args in validation acceptance tests (MarcoFalke) #14020 24d796a Add tests for RPC help (promag) #14052 7ff32a6 Add some actual witness in rpc_rawtransaction (MarcoFalke) #14215 b72fbab Use correct python index slices in example test (sdaftuar) #14024 06544fa Add TestNode::assert_debug_log (MarcoFalke) #14658 60f7a97 Add test to ensure node can generate all rpc help texts at runtime (MarcoFalke) #14632 96f15e8 Fix a comment (fridokus) #14700 f9db08e Avoid race in p2p_invalid_block by waiting for the block request (MarcoFalke) #14845 67225e2 Add wallet_balance.py (jnewbery) Documentation #14161 5f51fd6 doc/descriptors.md tweaks (ryanofsky) #14276 85aacc4 Add autogen.sh in ARM Cross-compilation (walterwhite81) Credits Thanks to everyone who directly contributed to this release: Andrew Chow Chun Kuan Lee David A. Harding Eric Scrivner fanquake fridokus Glenn Willen Gregory Sanders gustavonalle John Newbery Jon Layton Jonas Schnelli João Barbosa Kaz Wesley Kvaciral Luke Dashjr MarcoFalke MeshCollider Pieter Wuille practicalswift Russell Yanofsky Sjors Provoost Suhas Daftuar Tim Ruffing Walter Wladimir J. van der Laan As well as everyone that helped translating on Transifex. View the full article
-
style="margin: 0;color: black;"> View this email in a browser BitMEX Crypto Trader Digest Nov 21, 2018 From the desk of Arthur Hayes Co-founder & CEO, BitMEX From The BitMEX Research Desk BitMEX Research Sponsors Fork Monitoring Website Abstract: We are proud to announce the launch of ForkMonitor.info, a new website sponsored by BitMEX Research. The website is connected to several different nodes, both Bitcoin and Bitcoin Cash implementations. It displays various pieces of information regarding the chains followed. This website can be useful for monitoring the situation during network upgrades (softforks or hardforks), as well as being potentially useful in helping to detect unintentional consensus bugs. Thanks to Sjors Provoost for helping develop the site. Decentralise Zero I was staring at my plush toy cactus, and I thought has anyone tried to decentralise zero? Later, I was messaging Meltem and through our conversation, the following ideas manifested themselves about the absurdity of 2018. I dedicate this newsletter to the concept of zero. I have seen the future, and many crypto investors will become familiar with this round number, although they might not know it yet. The Confession Overheard in St. Patrick’s Cathedral in New York City. Judas is an Ethereum developer; he’s had some bad luck. He is now at Church giving a confession. Father is the Bishop. Judas - Forgive me Father, for I have sinned. It has been one year since my last confession. Father - Welcome my son, please tell me how you have sinned. Judas - Well as you know, I am an Ethereum developer. But I believe I have given false witness to another god. Father - Who would that be, the Devil, Satan himself? Judas - No Father, my faith strayed. I believed in Decentralisation. Father - Huh? Not sure I follow. Please explain. Judas - I am an Ethereum developer. You know, the world’s virtual computer. I believed that using the Ethereum protocol I could decentralise anything. And I was specifically interested in the trading of financial assets, like stocks. Father - Ok, but what would a decentralised stock market look like? Judas - Well, anyone, anywhere could exchange stocks. You wouldn’t need to get approval from any government or a traditional exchange like the New York Stock Exchange or Nasdaq. It would also allow anyone to sell equity in their project to anyone in the world. In short, true financial freedom for everyone, everywhere. Father - Heresy. You planned to usurp the Angels, the NYSE, and Nasdaq. Did you not consult the good book about our Lord’s relationship with those organisations? Judas - I did, but I thought because I used the decentralised world computer, Ethereum, that our Lord and Saviour would not mind. Father - Son, you did not read the Gospels close enough. Specifically, the Gospel according to Howie. Judas - Well, I thought my lawyers were well versed in the Gospels. They told me that because it was decentralised, the Gospel according to Howie did not apply. Father - [Shakes his head in sorrow] In my last sermon, I preached that the Lord’s children must be vigilant against false prophets. Specifically those wearing Brioni suits, and white Church’s shoes. These white shoe lawyers, care not for your soul, but only for their pockets. Judas - Oh, I missed that one. I was too hungover after a night at the Box. We were celebrating our ICO. Father - Ah, the ICO. I also lead a vigil against that tool of the Devil. But son, how is your project decentralised, if you personally launched an ICO, and profited from it? Surely, a truly decentralised project has no identifiable leader, and no one entity profits from its operation? Judas - I realised the errors of my ways now. Father - How has the Lord made you repent? Judas - The Lord decreed that I must pay a large sum of money to absolve my sins. Father - Better that, than the Lord sending you to Sodom and Gomorrah, a.k.a. Rikers. Judas - I know, I am forever grateful to the mercy of our Lord. Father - I am glad you have learned son. Our Lord is merciful. But he will strike rath down upon those who threaten his kingdom. Father - Let us pray to our Lord and Saviour. In nomine patris et filii spiritus sancti JAY CLAYTON. Polly Pocket Has Liquidity Issues Overheard at the recent Polly Pocket Investor Day. Polly Pocket is the managing partner of Polly Pocket Capital. The fund invests solely in tokens. Schmuck is an investor in the fund. Polly - Welcome everyone to our Investor Day. 2018 has been a challenging year for our fund but we are fully confident in our ability, over the long run, to deliver superior returns. Schmuck - Speaking of performance, can I get some more colour on what your fund actually holds? Polly - Great question. As you know, we don’t disclose exactly what we own, but I can give you a taste. Our fund is divided into listed and unlisted tokens. Schmuck - Ok, what do you mean by listed and unlisted? I thought the mandate only allowed the fund to invest in tokens that are already traded on a secondary market. Polly - Well, that is true. But we saw some great deals, so we created a side pocket. The side pocket contains all the pre-ICO deals that we invested in. Schmuck - Hmm…So you basically can invest in whatever you like, regardless of the fund mandate? Polly - In a nutshell, yes. Schmuck - Greeeeaaat. How do you mark these illiquid, unlisted tokens? Polly - As you know, due to our amazing connections, we get in on deals well before the unwashed masses. Typically we get a 70% - 90% discount to the last round where most of the plebes purchase these tokens. We then mark the value of the token to the last round price. Schmuck - So if you invest a price of $1,and the last round which could be a very small amount of the total float, is sold at $10, you record a 10x gain? Polly - Yes. Schmuck - Does that also mean that I get charged management fees on the 10x value? Polly - Yes. Schmuck - Your liquid token portfolio got molly whopped this year, correct? Polly - Yes. Schmuck - So the AUM will get bled at an accelerated rate due to the marking of the side pocket? I’m am paying 2% on a 10x marked up illiquid token with no secondary market, and there is no visibility as to when it will actually list? Polly - I mean that sounds worse than it is, but you are essentially correct. Schmuck - Do you apply a haircut to this valuation because there is no liquidity, and an indefinite time to listing? Polly - No. We believe there is extreme value, and this is reflected in the last round price. Our team of token experts really knows how to value these things. Schmuck - Maybe, but the management fees paid on these side pocket investments could consume the entire value of the investors’ capital. What happens if I would like to redeem? Polly - We would sell our liquid tokens first. Once that pool of capital is exhausted, we would be unable to meet your redemption request. Schmuck - Is there no way to sell your interest in these projects? Have you ever tried? Polly - Legally we can’t. The SAFT term sheet does not allow us to transfer our interest before the token lists. Schmuck - So basically you are telling me, I’m up shit creek without a paddle? Polly - I wouldn’t put it that way. Sometimes we suffer liquidity issues. REAL TALK The BitMEX Research team has compiled a list of tokens that raised over US$50 million that have yet to list. These deals have massive valuations, and many of the most venerated token funds took down large chunks. It is unclear when, if ever, these deals will ever list on the secondary market. Given the large amount of token supply out there, who will buy this shit? Can you really mark these investments to the last round price? There are anecdotal reports of funds attempting to sell their SAFT interest, and the prices offered were way below the last round price. 2019 is going to be the year of reckoning for many funds. You can mark something to an absurd level in year 1. But the meter starts again on January 1st. If these things come to market, there will be no accounting tricks to hide the gargantuan losses that these funds will post. BlockMEX STO Remember BlockMEX? Well the firm has limped along for several years. They have tried various business models. None have made any money. But that doesn’t matter, VC firms continue to shower the company with cash, and its valuation continues to rise. The CEO now has a great new idea. Let’s listen in on the recent board meeting. Billy - Billy is the CEO of the company. He just joined as the previous dude got ousted. The VC firm The Blind Fund, who supplies most of the cash, ousted the previous CEO in favour of Billy who they thought would play ball better. Kaiser Soze - One of the general partners at The Blind Fund. Kaiser Soze - So Billy, what are we going to do to get some traction? It’s been over four years, and BlockMEX still makes zero revenue. You guys need to do something new. Billy - Well, I have a new idea. ICOs are toxic. The projects are trash, and the regulators hate them. What about STOs, Securities Token Offerings? Kaiser Soze - Tell me more. Billy - Ok, so imagine you want to buy a fraction of a piece of real estate. And then you could trade your fractional ownership, which is represented by a token. Kaiser Soze - Call me old fashioned, but isn’t that just a Real Estate Investment Trust (REIT)? Most stock markets around the world already have those. Billy - But do REIT’s ride on a Blockchain? Do they use Distributed Ledger Technology to hold the record of the title? Kaiser Soze - No, but they trade billions of dollars a day already, and you can easily trade them with your local broker almost everywhere in the world. Billy - You don’t get it. If the token rides on a Blockchain, like the Ethereum protocol, then they reach help anyone anywhere. Like those poor investors in North Korea who have nowhere to put their savings. Now they can own a token. Kaiser Soze - Anyone, really?!! It’s pretty clear these are securities, right? Billy - Yes. Kaiser Soze - So that means they are regulated, and in most places the exchange needs some sort of license. Billy - Yes, that’s correct. Kaiser Soze - The same license the incumbent exchanges already possess? Billy - Correct. Kaiser Soze - And the technology stack that operates the matching engine must also be approved by the regulator, right? Billy - Correct. Kaiser Soze - So you are replicating the same technology, getting the same license, to go after the same client base? Billy - Correct. Kaiser Soze - Ok, sounds like a winner. We can keep pumping money in, and make it up on volume. [The Blind Fund never saw a negative gross margin business they didn’t like.] Billy - Exactly what I was thinking. Everyone is talking about STOs and how they are the future. Another type of STO is an equity offering of a startup. Kaiser Soze - So how would that be different than doing an IPO? Billy - Well many companies these days are staying private, the cost of doing an IPO and all the regulatory and compliance costs, are daunting—-especially for smaller companies. There should be a way for smaller technology companies to raise funds by selling some type of equity. Kaiser Soze - Would these companies pay dividends? I’m assuming these are unprofitable companies. Billy - Not only would they not pay dividends, there would be no audited accounts, or any duty to really explain anything to their investors. Kaiser Soze - Wow, that’s amazing. How would this STO thing fit in on the balance sheet? Billy - Not sure on that one yet. Kaiser Soze - Traditional financial theory would suggest that this token is worthless because there is no cash flow. Billy - Come’on Kaiser. We have been through this before. Traditional finance is dead. We are in a new paradigm. Don’t be a luddite. Kaiser Soze - I know, I know. But if you are selling equity like securities, wouldn’t that need to be registered with a national regulator? Billy - Shhhhhh.. Don’t tell anyone. We are just going to shoe horn this one in. Because we use a Blockchain and or Distributed Ledger Technology, those rules don’t apply. The best part is, we can absolve ourselves of any legal liability by basically telling investors when they buy these things they actually have zero rights. ROFL. Kaiser Soze - Man, this Blockchain shit is LIT! You can do anything. Billy - I know, right? Maybe the only thing we can’t do is become revenue positive. Kaiser Soze - Don’t worry about that. I know some people in the desert, who have more cash than brains. They won’t let us down. 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
-
style="margin: 0;color: black;"> View this email in a browser BitMEX Crypto Trader Digest Nov 2, 2018 From the desk of Arthur Hayes Co-founder & CEO, BitMEX From The BitMEX Research Desk Ethereum holdings in the ICO treasury accounts Abstract: Following on from our first piece on ICOs in September 2017, which focused on the team members and advisors, in this report we work with TokenAnalyst to track the Ethereum balances of the ICO projects over time. We look at the amount of Ethereum raised and the US$ value of the gains and losses caused by changes in the Ethereum price, for each project. We conclude that rather than suffering because of the recent fall in the value of Ethereum, at the macro level, the projects appear to have already sold almost as much Ethereum as they raised (in US$ terms). Of the Ethereum still held by the projects, even at the current c$230 price, projects are still sitting on unrealised gains, rather than losses. Unboxing Bitmain’s IPO Abstract: In this piece we review and analyse Bitmain’s financial data, which was made available (or leaked) as part of the pre-IPO process. The figures indicate Bitmain was highly profitable and cash generative in 2017, but may currently be loss making. Bitmain also spent the majority of its operating cash flow acquiring Bitcoin Cash and may have suffered mark to market losses of US$328 million as a result. We conclude that the IPO itself may go well, however going forwards the allocation of investor capital will be key and management may need to improve in this area. Additional research pieces in this issue: Unboxing Bitmain’s IPO (Part 2) Does Satoshi Have a Million Bitcoin? Tether – Q2 Puerto Rico Data & Noble Bank Looking for a Buyer SegWit vs Bitcoin Cash Transaction Volume Update & Bitcoin Cash investor Flow Update Competing with Bitcoin Core Stablecoins: Sophistry At Its Best After 10 years, Bitcoin lives on, but the ecosystem still suffers from a critical weakness. Obtaining and maintaining a bank account that can process and clear USD is very difficult for any crypto-related business. The outcrop of this weakness is the industry's clamour for all things Stablecoin. Stablecoins fall into two camps. One subsect, of which Tether is the leader, are thinly- disguised USD money market funds. The other subsect are “coins” (Maker / Dai, Haven, Basecoin, etc.) that attempt to do an end runaround holding actual USD by using fancy math and pseudo behavioural economics. USD Banking The ongoing Tether melodrama highlights the difficulties of obtaining and maintaining USD banking facilities. Traders want to trade Bitcoin and other shitcoins vs. the USD. The crypto- to-crypto pairs are liquid at times, but we all still think in dollar terms. Therefore, exchanges that can offer these pairs will outperform their peers who cannot. Tether is novel because it is a USD money market token transferred across the Bitcoin and Ethereum blockchain. The Tether organisation supposedly holds sufficient USD such that 1 Tether = 1 USD for those who can create and redeem Tether. Exchanges that previously only offered crypto-to-crypto pairs could offer a Coin to USD pair and externalise the hassle of dealing with banks onto Tether. The demand was there, but the hard part is where to stash the cash. Tether acquired and lost banking relationships in a variety of jurisdictions. Others looking in at the Tether saga, concluded that using their connections they could offer a better alternative. Now we have Tether clones offered by various exchanges such as Gemini, Circle, and itBit. Money Market Funds In All But Name Money market funds are extremely important to a well functioning banking system. Individuals and institutions park their excess cash on a short-term basis and pick up yield. The money market funds invest in highly-liquid debt instruments. Short-dated government bonds, commercial paper issued by creditworthy corporates and short-dated bank loans, are some of the securities that a money market fund will hold. Money market funds aim to be very low risk. Their most important aspect is they maintain a par value at all times, such that 1 unit = 1 USD. During the 2008 GFC, some money market funds were at risk of “breaking the buck.” Low risk debt became high risk; liquidity dried up, and investors rushed for the exits. Today, Tether and clones thereof promise there is 1 USD for one coin in a bank somewhere. Some promoters are able to name their banking partners, some are not. The level of transparency pales in comparison to traditional money market funds. The other key difference in the crypto sphere is these Stablecoins do not pay interest. The real profit driver of money market Stablecoins is their net interest margin. Why go through all the hassle of hosting USD banking for the crypto ecosystem if there wasn’t a massive future profit potential? As interest rates rise, that becomes pure profit to the Stablecoin operator. Unscrupulous operators will claim to hold USD cash, while investing in riskier debt instruments. The worst scallywags will pull a Jon Corzine, lever up, and purchase the dodgiest credits to be had. If you hold any of these money market Stablecoins, you must ask the following: Who is the banking partner? What types of debt instruments, if any, is the fund allowed to hold? Can you as an ordinary individual create and redeem at par, and how long does that process take? Wannabe Central Bankers Another group of promoters asked the question, can you create a coin pegged to the dollar without holding any dollars as a backstop? The substitute for physical dollars is math, behavioural economics, and cryptocurrencies. The reason why these projects need a shit-ton of non-dilutive suckers' cash is because when shit hits the fan and their shitcoin trades less than par, the promoter must spend hard dollars, Bitcoin, or Ether to restore the peg. Many of these projects wish to create a rules-based digital central banker; however, all they have done is obfusticate the need for physical cash by using complicated and boring whitepapers. The central fact is that they are raising funds to act as the buyer of last resort. Otherwise, there is no need for hundreds of millions of dollars worth of investor money into any of these projects. If the math and behavioral modeling goes to plan, the coin should slowly accrue AUM and over time the peg should hold. I challenge any project to return all the money they raised, and launch their coin purely based on its mathematical merits. I highly doubt I will have any takers. I bet there are crypto George Soros imitators licking their lips at the chance to break the peg of these coins at the opportune moment. It will be glorious to watch. Gresham’s law will hold. Money market Stablecoins with honest and transparent operators will accrue the vast majority of the AUM. Their wannabe central banker cousins will flounder under the weight of pseudoscience and hubris. Bear Market Blues The trend is your friend until it ain’t. Humans are very bad forecasters. We take yesterday's returns and extrapolate them linear and non-linearly into the future. We believe the world works in perfectly-fitted curves. When the market reverses, as it always does, a coterie of sad pandas are left in its wake. 2017 was the year of jubilation; 2018 is the year of melancholy. The worst part is knowing your 2018 bonus, should you receive one, will barely buy you a Swatch. We crypto traders should know better by now, but we never learn. The market may be down 70% from the $20,000 high, but from the mood of traders, Bitcoin might as well be worth bupkis. When traders lose money, they lash out. They lash out on Twitter, Telegram, Reddit, and other social media platforms. The smallest perceived slight, triggers them worse than a Hillary supporter after the Trump coronation. This is the Bear Market Blues. We Have Been Here Before The talented individuals at BitMEX Research did some analysis of the previous Bitcoin bull and bear markets. They made a distinction between two measurements: 1. The peak-to-trough decline: A peak-to-trough decline is measured by taking the low of a bear market and dividing it by the high of a previous bull market. 2. The intra-market phase increase/decrease: This is calculated by taking the high (low) of the bull (bear) market and dividing it by the price at the start of that market phase. They conclude that we have more to go in this current bear market. Due to the collapse in Bitcoin price volatility, I agree with this sentiment. The Double Whammy Wham, bam, thank you ma’am. Bitcoin volatility and price collapsed this year. Traders hate sideways markets. Traders can go long and short, not sideways. The chop will eat you alive in a sideways market. Contrary to popular belief, Bitcoin requires volatility if it is ever to gain mainstream adoption. The price of Bitcoin is the best and most transparent way to communicate the health of the ecosystem. It advertises to the world that something is happening--whether that is positive or negative is irrelevant. The Bitcoin price volatility is the gateway drug into the ecosystem. The media writes about things that move; therefore no movement, no coverage. The diehard traders and engineers will always hear about a new asset class or technology in advance of popular media outlet coverage. However, their efforts will only be amplified if many more people discover El Dorado. That requires the lazy mainstream financial press to write. If volatility stays at these depressed levels, the price will slowly leak lower. For those of us who lived through the 2014-2015 bear market, we all await that nasty ass candle that breaks the soul of the bulls. Then, and only then, will volatility and the price ratchet higher. Limbo Time How low can we go? A 75% fall from $9,152 takes us close to $2,000. $2,000 to $3,000 is my new sweet spot but don’t tell Michelle Lee just yet. The key consideration to “calling the bottom” is the price action around the last gasp of the bears. You will know it when you see it. And the best part is, you probably will be too chicken to click that oh so scary Buy button. Is The ETHUSD Swap Fairly Priced The Perpetual Swap derivative structure is a beautiful thing. Trading is simple, as it mimics the action of margin trading. Most retail traders are familiar with how to trade on margin. Using this wrapper, we can allow anyone to trade exotic derivatives. “A quanto is a type of derivative in which the underlying is denominated in one currency, but the instrument itself is settled in another currency at some rate. Such products are attractive for speculators and investors who wish to have exposure to a foreign asset, but without the corresponding exchange rate risk.” - Wikipedia The ETHUSD swap has become the most liquid ETH/USD trading instrument globally. It allows speculators to trade ETH/USD risk, without ever touching Ether or USD. Like all BitMEX contracts, the margin and settlement currency for ETHUSD is Bitcoin. This keeps things simple from a trading perspective. When the ETHUSD product listed, I walked readers through the mechanics of a quanto derivative. Please read Why Quanto and Hedging a Perpetual Swap for a refresher. Subsequent to the launch of ETHUSD, the price of Ether took a digger. In such a bear market, many traders expected the funding rate to stay negative. Logically that makes sense. The market is falling, so the pressure on the margin should be on the sell side. However, the cumulative funding rate from launch till the present is positive. A positive funding rate means longs pay shorts. My hypothesis was that the positive funding rate represents the quanto risk premium. I then tasked one of the BitMEX Research analysts to conduct a test: Step 1 Starting on the 9th of August and ending on the 22nd of October, to capture the funding income, you sold ETHUSD (100 XBT notional), and hedged by purchasing Ether with USD. Step 2 Every hour, you recalculated your net Bitcoin PnL, hedging that exposure into USD. Step 3 Compute the net returns in USD terms on your portfolio for the period. Step 4 Add net total funding you received (paid) from being short the ETHUSD swap over the period. Results Absent the positive funding, you would have lost $46,779.73 hedging your Bitcoin PnL. This is expected because you are short correlation. Over the past few months, the XBTUSD and ETHUSD correlation has risen. When the net funding payments received, $46,010.85, are added, your trade essentially breaks even. Along the way you bought 31.94 ETH to delta hedge and accumulated a 43.83 XBT short position to PnL hedge. The conclusion is that even though the funding rate has stayed positive, this funding compensates for the quanto risk premium. Correlation is rising, therefore traders will bid up the ETHUSD swap over the spot price to profit from the quanto PnL. A positive funding rate results, and brings the market into equilibrium. This is true over a long holding period. There were times where your net PnL was positive or negative. The chart above provides a time series of the cumulative PnL from this trade. As we can see, the market does misprice this swap occasionally. It is quite amazing that in under six months, the ETHUSD swap has been priced to perfection. However, the volatility of both Bitcoin and Ether has fallen. When we return to a normal level of volatility, I expect fearful and greedy traders to push the ETHUSD swap away from the quanto adjusted fair price. 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
-
Bitcoin Core version 0.17.0.1 is now available from: https://bitcoincore.org/bin/bitcoin-core-0.17.0.1/ or through BitTorrent: magnet:?xt=urn:btih:70749cf2cf2922a21208b4ae760c9f2f9d1e7f11&dn=bitcoin-core-0.17.0.1&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fexplodie.org%3A6969 This is a new major version release, including new features, various bugfixes 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/ Notable changes An issue was solved with OSX dmg generation, affecting macOS 10.12 to 10.14, which could cause Finder to crash on install. There are no significant changes for other operating systems. 0.17.0.1 change log Build system #14416 eb2cc84 Fix OSX dmg issue (10.12 to 10.14) (jonasschnelli) Documentation #14509 1b5af2c [0.17] doc: use SegWit in getblocktemplate example (Sjors) Credits Thanks to everyone who directly contributed to this release: Jonas Schnelli Pieter Wuille Sjors Provoost Wladimir J. van der Laan View the full article
-
Bitcoin Core version 0.16.3 is now available from: https://bitcoincore.org/bin/bitcoin-core-0.16.3/ This is a new minor version release, with various bugfixes. 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 higher. Upgrading directly from 0.7.x and earlier without re-downloading the blockchain is not supported. However, as usual, old wallet versions are still supported. Downgrading warning Wallets created in 0.16 and later are not compatible with versions prior to 0.16 and will not work if you try to use newly created wallets in older versions. Existing wallets that were created with older versions are not affected by this. Compatibility Bitcoin Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. Bitcoin Core should also work on most other Unix-like systems but is not frequently tested on them. Notable changes Denial-of-Service vulnerability A denial-of-service vulnerability (CVE-2018-17144) exploitable by miners has been discovered in Bitcoin Core versions 0.14.0 up to 0.16.2. It is recommended to upgrade any of the vulnerable versions to 0.16.3 as soon as possible. 0.16.3 change log Consensus #14249 696b936 Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar) RPC and other APIs #13547 212ef1f Make signrawtransaction* give an error when amount is needed but missing (ajtowns) Miscellaneous #13655 1cdbea7 bitcoinconsensus: invalid flags error should be set to bitcoinconsensus_err (afk11) Documentation #13844 11b9dbb correct the help output for -prune (hebasto) Credits Thanks to everyone who directly contributed to this release: Anthony Towns Hennadii Stepanov Matt Corallo Suhas Daftuar Thomas Kerin Wladimir J. van der Laan And to those that reported security issues: (anonymous reporter) View the full article
-
Bitcoin Core version 0.17.0 is now available from: https://bitcoincore.org/bin/bitcoin-core-0.17.0/ or through BitTorrent: magnet:?xt=urn:btih:1c72f17bc1667a2ce81860b75135e491f6637d05&dn=bitcoin-core-0.17.0&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fexplodie.org%3A6969 This is a new major version release, including new features, various bugfixes 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). If your node has a txindex, the txindex db will be migrated the first time you run 0.17.0 or newer, which may take up to a few hours. Your node will not be functional until this migration completes. 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. Upgrading directly from 0.7.x and earlier without redownloading the blockchain is not supported. However, as usual, old wallet versions are still supported. Downgrading warning The chainstate database for this release is not compatible with previous releases, so if you run 0.15 and then decide to switch back to any older version, you will need to run the old release with the -reindex-chainstate option to rebuild the chainstate data structures in the old format. If your node has pruning enabled, this will entail re-downloading and processing the entire blockchain. Compatibility Bitcoin Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and newer (Windows XP is not supported). Bitcoin Core should also work on most other Unix-like systems but is not 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. Known issues Upgrading from 0.13.0 or older currently results in memory blow-up during the roll-back of blocks to the SegWit activation point. In these cases, a full -reindex is necessary. The GUI suffers from visual glitches in the new MacOS dark mode. This has to do with our Qt theme handling and is not a new problem in 0.17.0, but is expected to be resolved in 0.17.1. Notable changes Changed configuration options -includeconf=<file> can be used to include additional configuration files. Only works inside the bitcoin.conf file, not inside included files or from command-line. Multiple files may be included. Can be disabled from command- line via -noincludeconf. Note that multi-argument commands like -includeconf will override preceding -noincludeconf, i.e. noincludeconf=1 includeconf=relative.conf as bitcoin.conf will still include relative.conf. GUI changes Block storage can be limited under Preferences, in the Main tab. Undoing this setting requires downloading the full blockchain again. This mode is incompatible with -txindex and -rescan. External wallet files The -wallet=<path> option now accepts full paths instead of requiring wallets to be located in the -walletdir directory. Newly created wallet format If -wallet=<path> is specified with a path that does not exist, it will now create a wallet directory at the specified location (containing a wallet.dat data file, a db.log file, and database/log.?????????? files) instead of just creating a data file at the path and storing log files in the parent directory. This should make backing up wallets more straightforward than before because the specified wallet path can just be directly archived without having to look in the parent directory for transaction log files. For backwards compatibility, wallet paths that are names of existing data files in the -walletdir directory will continue to be accepted and interpreted the same as before. Dynamic loading and creation of wallets Previously, wallets could only be loaded or created at startup, by specifying -wallet parameters on the command line or in the bitcoin.conf file. It is now possible to load, create and unload wallets dynamically at runtime: Existing wallets can be loaded by calling the loadwallet RPC. The wallet can be specified as file/directory basename (which must be located in the walletdir directory), or as an absolute path to a file/directory. New wallets can be created (and loaded) by calling the createwallet RPC. The provided name must not match a wallet file in the walletdir directory or the name of a wallet that is currently loaded. Loaded wallets can be unloaded by calling the unloadwallet RPC. This feature is currently only available through the RPC interface. Coin selection Partial spend avoidance When an address is paid multiple times the coins from those separate payments can be spent separately which hurts privacy due to linking otherwise separate addresses. A new -avoidpartialspends flag has been added (default=false). If enabled, the wallet will always spend existing UTXO to the same address together even if it results in higher fees. If someone were to send coins to an address after it was used, those coins will still be included in future coin selections. Configuration sections for testnet and regtest It is now possible for a single configuration file to set different options for different networks. This is done by using sections or by prefixing the option with the network, such as: main.uacomment=bitcoin test.uacomment=bitcoin-testnet regtest.uacomment=regtest [main] mempoolsize=300 [test] mempoolsize=100 [regtest] mempoolsize=20 If the following options are not in a section, they will only apply to mainnet: addnode=, connect=, port=, bind=, rpcport=, rpcbind= and wallet=. The options to choose a network (regtest= and testnet=) must be specified outside of sections. ‘label’ and ‘account’ APIs for wallet A new ‘label’ API has been introduced for the wallet. This is intended as a replacement for the deprecated ‘account’ API. The ‘account’ can continue to be used in V0.17 by starting bitcoind with the ‘-deprecatedrpc=accounts’ argument, and will be fully removed in V0.18. The label RPC methods mirror the account functionality, with the following functional differences: Labels can be set on any address, not just receiving addresses. This functionality was previously only available through the GUI. Labels can be deleted by reassigning all addresses using the setlabel RPC method. There isn’t support for sending transactions from a label, or for determining which label a transaction was sent from. Labels do not have a balance. Here are the changes to RPC methods: Deprecated Method New Method Notes getaccount getaddressinfo getaddressinfo returns a json object with address information instead of just the name of the account as a string. getaccountaddress n/a There is no replacement for getaccountaddress since labels do not have an associated receive address. getaddressesbyaccount getaddressesbylabel getaddressesbylabel returns a json object with the addresses as keys, instead of a list of strings. getreceivedbyaccount getreceivedbylabel no change in behavior listaccounts listlabels listlabels does not return a balance or accept minconf and watchonly arguments. listreceivedbyaccount listreceivedbylabel Both methods return new label fields, along with account fields for backward compatibility. move n/a no replacement sendfrom n/a no replacement setaccount setlabel Both methods now: <ul><li>allow assigning labels to any address, instead of raising an error if the address is not receiving address.<li>delete the previous label associated with an address when the final address using that label is reassigned to a different label, instead of making an implicit getaccountaddress call to ensure the previous label still has a receiving address. Changed Method Notes addmultisigaddress Renamed account named parameter to label. Still accepts account for backward compatibility if running with ‘-deprecatedrpc=accounts’. getnewaddress Renamed account named parameter to label. Still accepts account for backward compatibility. if running with ‘-deprecatedrpc=accounts’ listunspent Returns new label fields. account field will be returned for backward compatibility if running with ‘-deprecatedrpc=accounts’ sendmany The account named parameter has been renamed to dummy. If provided, the dummy parameter must be set to the empty string, unless running with the -deprecatedrpc=accounts argument (in which case functionality is unchanged). listtransactions The account named parameter has been renamed to dummy. If provided, the dummy parameter must be set to the string *, unless running with the -deprecatedrpc=accounts argument (in which case functionality is unchanged). getbalance account, minconf and include_watchonly parameters are deprecated, and can only be used if running with ‘-deprecatedrpc=accounts’ BIP 174 Partially Signed Bitcoin Transactions support BIP 174 PSBT is an interchange format for Bitcoin transactions that are not fully signed yet, together with relevant metadata to help entities work towards signing it. It is intended to simplify workflows where multiple parties need to cooperate to produce a transaction. Examples include hardware wallets, multisig setups, and CoinJoin transactions. Overall workflow Overall, the construction of a fully signed Bitcoin transaction goes through the following steps: A Creator proposes a particular transaction to be created. He constructs a PSBT that contains certain inputs and outputs, but no additional metadata. For each input, an Updater adds information about the UTXOs being spent by the transaction to the PSBT. A potentially other Updater adds information about the scripts and public keys involved in each of the inputs (and possibly outputs) of the PSBT. Signers inspect the transaction and its metadata to decide whether they agree with the transaction. They can use amount information from the UTXOs to assess the values and fees involved. If they agree, they produce a partial signature for the inputs for which they have relevant key(s). A Finalizer is run for each input to convert the partial signatures and possibly script information into a final scriptSig and/or scriptWitness. An Extractor produces a valid Bitcoin transaction (in network format) from a PSBT for which all inputs are finalized. Generally, each of the above (excluding Creator and Extractor) will simply add more and more data to a particular PSBT. In a naive workflow, they all have to operate sequentially, passing the PSBT from one to the next, until the Extractor can convert it to a real transaction. In order to permit parallel operation, Combiners can be employed which merge metadata from different PSBTs for the same unsigned transaction. The names above in bold are the names of the roles defined in BIP174. They’re useful in understanding the underlying steps, but in practice, software and hardware implementations will typically implement multiple roles simultaneously. RPCs converttopsbt (Creator) is a utility RPC that converts an unsigned raw transaction to PSBT format. It ignores existing signatures. createpsbt (Creator) is a utility RPC that takes a list of inputs and outputs and converts them to a PSBT with no additional information. It is equivalent to calling createrawtransaction followed by converttopsbt. walletcreatefundedpsbt (Creator, Updater) is a wallet RPC that creates a PSBT with the specified inputs and outputs, adds additional inputs and change to it to balance it out, and adds relevant metadata. In particular, for inputs that the wallet knows about (counting towards its normal or watch-only balance), UTXO information will be added. For outputs and inputs with UTXO information present, key and script information will be added which the wallet knows about. It is equivalent to running createrawtransaction, followed by fundrawtransaction, and converttopsbt. walletprocesspsbt (Updater, Signer, Finalizer) is a wallet RPC that takes as input a PSBT, adds UTXO, key, and script data to inputs and outputs that miss it, and optionally signs inputs. Where possible it also finalizes the partial signatures. finalizepsbt (Finalizer, Extractor) is a utility RPC that finalizes any partial signatures, and if all inputs are finalized, converts the result to a fully signed transaction which can be broadcast with sendrawtransaction. combinepsbt (Combiner) is a utility RPC that implements a Combiner. It can be used at any point in the workflow to merge information added to different versions of the same PSBT. In particular it is useful to combine the output of multiple Updaters or Signers. decodepsbt is a diagnostic utility RPC which will show all information in a PSBT in human-readable form, as well as compute its eventual fee if known. Upgrading non-HD wallets to HD wallets Since Bitcoin Core 0.13.0, creating new BIP 32 Hierarchical Deterministic wallets has been supported by Bitcoin Core but old non-HD wallets could not be upgraded to HD. Now non-HD wallets can be upgraded to HD using the -upgradewallet command line option. This upgrade will result in the all keys in the keypool being marked as used and a new keypool generated. A new backup must be made when this upgrade is performed. Additionally, -upgradewallet can be used to upgraded from a non-split HD chain (all keys generated with m/0'/0'/i') to a split HD chain (receiving keys generated with 'm/0'/0'/i' and change keys generated with m'/0'/1'/i'). When this upgrade occurs, all keys already in the keypool will remain in the keypool to be used until all keys from before the upgrade are exhausted. This is to avoid issues with backups and downgrades when some keys may come from the change key keypool. Users can begin using the new split HD chain keypools by using the newkeypool RPC to mark all keys in the keypool as used and begin using a new keypool generated from the split HD chain. HD Master key rotation A new RPC, sethdseed, has been introduced which allows users to set a new HD seed or set their own HD seed. This allows for a new HD seed to be used. A new backup must be made when a new HD seed is set. Low-level RPC changes The new RPC scantxoutset can be used to scan the UTXO set for entries that match certain output descriptors. Refer to the output descriptors reference documentation for more details. This call is similar to listunspent but does not use a wallet, meaning that the wallet can be disabled at compile or run time. This call is experimental, as such, is subject to changes or removal in future releases. The createrawtransaction RPC will now accept an array or dictionary (kept for compatibility) for the outputs parameter. This means the order of transaction outputs can be specified by the client. The fundrawtransaction RPC will reject the previously deprecated reserveChangeKey option. sendmany now shuffles outputs to improve privacy, so any previously expected behavior with regards to output ordering can no longer be relied upon. The new RPC testmempoolaccept can be used to test acceptance of a transaction to the mempool without adding it. JSON transaction decomposition now includes a weight field which provides the transaction’s exact weight. This is included in REST /rest/tx/ and /rest/block/ endpoints when in json mode. This is also included in getblock (with verbosity=2), listsinceblock, listtransactions, and getrawtransaction RPC commands. New fees field introduced in getrawmempool, getmempoolancestors, getmempooldescendants and getmempoolentry when verbosity is set to true with sub-fields ancestor, base, modified and descendant denominated in BTC. This new field deprecates previous fee fields, such as fee, modifiedfee, ancestorfee and descendantfee. The new RPC getzmqnotifications returns information about active ZMQ notifications. When bitcoin is not started with any -wallet=<path> options, the name of the default wallet returned by getwalletinfo and listwallets RPCs is now the empty string "" instead of "wallet.dat". If bitcoin is started with any -wallet=<path> options, there is no change in behavior, and the name of any wallet is just its <path> string. Passing an empty string ("") as the address_type parameter to getnewaddress, getrawchangeaddress, addmultisigaddress, fundrawtransaction RPCs is now an error. Previously, this would fall back to using the default address type. It is still possible to pass null or leave the parameter unset to use the default address type. Bare multisig outputs to our keys are no longer automatically treated as incoming payments. As this feature was only available for multisig outputs for which you had all private keys in your wallet, there was generally no use for them compared to single-key schemes. Furthermore, no address format for such outputs is defined, and wallet software can’t easily send to it. These outputs will no longer show up in listtransactions, listunspent, or contribute to your balance, unless they are explicitly watched (using importaddress or importmulti with hex script argument). signrawtransaction* also still works for them. The getwalletinfo RPC method now returns an hdseedid value, which is always the same as the incorrectly-named hdmasterkeyid value. hdmasterkeyid will be removed in V0.18. The getaddressinfo RPC method now returns an hdseedid value, which is always the same as the incorrectly-named hdmasterkeyid value. hdmasterkeyid will be removed in V0.18. Parts of the validateaddress RPC method have been deprecated and moved to getaddressinfo. Clients must transition to using getaddressinfo to access this information before upgrading to v0.18. The following deprecated fields have moved to getaddressinfo and will only be shown with -deprecatedrpc=validateaddress: ismine, iswatchonly, script, hex, pubkeys, sigsrequired, pubkey, addresses, embedded, iscompressed, account, timestamp, hdkeypath, hdmasterkeyid. signrawtransaction is deprecated and will be fully removed in v0.18. To use signrawtransaction in v0.17, restart bitcoind with -deprecatedrpc=signrawtransaction. Projects should transition to using signrawtransactionwithkey and signrawtransactionwithwallet before upgrading to v0.18. Other API changes The inactivehdmaster property in the dumpwallet output has been corrected to inactivehdseed Logging The log timestamp format is now ISO 8601 (e.g. “2018-02-28T12:34:56Z”). When running bitcoind with -debug but without -daemon, logging to stdout is now the default behavior. Setting -printtoconsole=1 no longer implicitly disables logging to debug.log. Instead, logging to file can be explicitly disabled by setting -debuglogfile=0. Transaction index changes The transaction index is now built separately from the main node procedure, meaning the -txindex flag can be toggled without a full reindex. If bitcoind is run with -txindex on a node that is already partially or fully synced without one, the transaction index will be built in the background and become available once caught up. When switching from running -txindex to running without the flag, the transaction index database will not be deleted automatically, meaning it could be turned back on at a later time without a full resync. Miner block size removed The -blockmaxsize option for miners to limit their blocks’ sizes was deprecated in V0.15.1, and has now been removed. Miners should use the -blockmaxweight option if they want to limit the weight of their blocks. Python Support Support for Python 2 has been discontinued for all test files and tools. 0.17.0 change log Consensus #12204 3fa24bb Fix overly eager BIP30 bypass (morcos) Policy #12568 ed6ae80 Allow dustrelayfee to be set to zero (luke-jr) #13120 ca2a233 Treat segwit as always active (MarcoFalke) #13096 062738c Fix MAX_STANDARD_TX_WEIGHT check (jl2012) Mining #12693 df529dc Remove unused variable in SortForBlock (drewx2) #12448 84efa9a Interrupt block generation on shutdown request (promag) Block and transaction handling #12225 67447ba Mempool cleanups (sdaftuar) #12356 fd65937 Fix ‘mempool min fee not met’ debug output (Empact) #12287 bf3353d Optimise lock behaviour for GuessVerificationProgress() (jonasschnelli) #11889 47a7666 Drop extra script variable in ProduceSignature (ryanofsky) #11880 d59b8d6 Stop special-casing phashBlock handling in validation for TBV (TheBlueMatt) #12431 947c25e Only call NotifyBlockTip when chainActive changes (jamesob) #12653 534b8fa Allow to optional specify the directory for the blocks storage (jonasschnelli) #12172 3b62a91 Bugfix: RPC: savemempool: Don’t save until LoadMempool() is finished (jtimon) #12167 88430cb Make segwit failure due to CLEANSTACK violation return a SCRIPT_ERR_CLEANSTACK error code (maaku) #12561 24133b1 Check for block corruption in ConnectBlock() (sdaftuar) #11617 1b5723e Avoid lock: Call FlushStateToDisk(…) regardless of fCheckForPruning (practicalswift) #11739 0a8b7b4 Enforce SCRIPT_VERIFY_P2SH and SCRIPT_VERIFY_WITNESS from genesis (sdaftuar) #12885 a49381d Reduce implementation code inside CScript (sipa) #13032 34dd1a6 Output values for “min relay fee not met” error (kristapsk) #13033 a07e8ca Build txindex in parallel with validation (jimpo) #13080 66cc47b Add compile time checking for ::mempool.cs runtime locking assertions (practicalswift) #13185 08c1caf Bugfix: the end of a reorged chain is invalid when connect fails (sipa) #11689 0264836 Fix missing locking in CTxMemPool::check(…) and CTxMemPool::setSanityCheck(…) (practicalswift) #13011 3c2a41a Cache witness hash in CTransaction (MarcoFalke) #13191 0de7cc8 Specialized double-SHA256 with 64 byte inputs with SSE4.1 and AVX2 (sipa) #13243 ea263e1 Make reusable base class for auxiliary indices (jimpo) #13393 a607d23 Enable double-SHA256-for-64-byte code on 32-bit x86 (sipa) #13428 caabdea validation: check the specified number of blocks (off-by-one) (kallewoof) #13438 450055b Improve coverage of SHA256 SelfTest code (sipa) #13431 954f4a9 validation: count blocks correctly for check level < 3 (kallewoof) #13386 3a3eabe SHA256 implementations based on Intel SHA Extensions (sipa) #11658 9a1ad2c During IBD, when doing pruning, prune 10% extra to avoid pruning again soon after (luke-jr) #13794 8ce55df chainparams: Update with data from assumed valid chain (MarcoFalke) #13527 e7ea858 Remove promiscuousmempoolflags (MarcoFalke) P2P protocol and network code #12342 eaeaa2d Extend #11583 (“Do not make it trivial for inbound peers to generate log entries”) to include “version handshake timeout” message (clemtaylor) #12218 9a32114 Move misbehaving logging to net logging category (laanwj) #10387 5c2aff8 Eventually connect to NODE_NETWORK_LIMITED peers (jonasschnelli) #9037 a36834f Add test-before-evict discipline to addrman (EthanHeilman) #12622 e1d6e2a Correct addrman logging (laanwj) #11962 0a01843 add seed.bitcoin.sprovoost.nl to DNS seeds (Sjors) #12569 23e7fe8 Increase signal-to-noise ratio in debug.log by adjusting log level when logging failed non-manual connect():s (practicalswift) #12855 c199869 Minor accumulated cleanups (tjps) #13153 ef46c99 Add missing newlines to debug logging (laanwj) #13162 a174702 Don’t incorrectly log that REJECT messages are unknown (jnewbery) #13151 7f4db9a Serve blocks directly from disk when possible (laanwj) #13134 70d3541 Add option -enablebip61 to configure sending of BIP61 notifications (laanwj) #13532 7209fec Log warning when deprecated network name ‘tor’ is used (wodry) #13615 172f984 Remove unused interrupt from SendMessages (fanquake) #13417 1e90862 Tighten scope in net_processing (skeees) #13298 f8d470e Bucketing INV delays (1 bucket) for incoming connections to hide tx time (naumenkogs) #13672 0d8d6be Modified in_addr6 cast in CConman class to work with msvc (sipsorcery) #11637 c575260 Remove dead service bits code (MarcoFalke) #13212 a6f00ce Fixed a race condition when disabling the network (lmanners) #13656 1211b15 Remove the boost/algorithm/string/predicate.hpp dependency (251Labs) #13423 f58674a Thread safety annotations in net_processing (skeees) #13776 7d36237 Add missing verification of IPv6 address in CNetAddr::GetIn6Addr(…) (practicalswift) #13907 48bf8ff Introduce a maximum size for locators (gmaxwell) #13951 8a9ffec Hardcoded seeds update pre-0.17 branch (laanwj) Wallet #12330 2a30e67 Reduce scope of cs_main and cs_wallet locks in listtransactions (promag) #12298 a1ffddb Refactor HaveKeys to early return on false result (promag) #12282 663911e Disallow abandon of conflicted txes (MarcoFalke) #12333 d405bee Make CWallet::ListCoins atomic (promag) #12296 8e6f9f4 Only fee-bump non-conflicted/non-confirmed txes (MarcoFalke) #11866 6bb9c13 Do not un-mark fInMempool on wallet txn if ATMP fails (TheBlueMatt) #11882 987a809 Disable default fallbackfee on mainnet (jonasschnelli) #9991 4ca7c1e listreceivedbyaddress Filter Address (NicolasDorier) #11687 98bc27f External wallet files (ryanofsky) #12658 af88094 Sanitize some wallet serialization (sipa) #9680 6acd870 Unify CWalletTx construction (ryanofsky) #10637 e057589 Coin Selection with Murch’s algorithm (achow101, Xekyo) #12408 c39dd2e Change output type globals to members (MarcoFalke) #12694 9552dfb Actually disable BnB when there are preset inputs (achow101) #11536 cead84b Rename account to label where appropriate (ryanofsky) #12709 02b7e83 shuffle sendmany recipients ordering (instagibbs) #12699 c948dc8 Shuffle transaction inputs before signing (instagibbs) #10762 6d53663 Remove Wallet dependencies from init.cpp (jnewbery) #12857 821980c Avoid travis lint-include-guards error (ken2812221) #12702 dab0d68 importprivkey: hint about importmulti (kallewoof) #12836 9abdb7c Make WalletInitInterface and DummyWalletInit private, fix nullptr deref (promag) #12785 215158a Initialize m_last_block_processed to nullptr (practicalswift) #12932 8d651ae Remove redundant lambda function arg in handleTransactionChanged (laanwj) #12749 a84b056 feebumper: discard change outputs below discard rate (instagibbs) #12892 9b3370d introduce ‘label’ API for wallet (jnewbery) #12925 6d3de17 Logprint the start of a rescan (jonasschnelli) #12888 39439e5 debug log number of unknown wallet records on load (instagibbs) #12977 434150a Refactor g_wallet_init_interface to const reference (promag) #13017 65d7083 Add wallets management functions (promag) #12953 d1d54ae Deprecate accounts (jnewbery) #12909 476cb35 Make fee settings to be non-static members (MarcoFalke) #13002 487dcbe Do not treat bare multisig outputs as IsMine unless watched (sipa) #13028 783bb64 Make vpwallets usage thread safe (promag) #12507 2afdc29 Interrupt rescan on shutdown request (promag) #12729 979150b Get rid of ambiguous OutputType::NONE value (ryanofsky) #13079 5778d44 Fix rescanblockchain rpc to properly report progress (Empact) #12560 e03c0db Upgrade path for non-HD wallets to HD (achow101) #13161 7cc1bd3 Reset BerkeleyDB handle after connection fails (real-or-random) #13081 0dec5b5 Add compile time checking for cs_wallet runtime locking assertions (practicalswift) #13127 19a3a9e Add Clang thread safety annotations for variables guarded by cs_db (practicalswift) #10740 4cfe17c loadwallet RPC - load wallet at runtime (jnewbery) #12924 6738813 Fix hdmaster-key / seed-key confusion (scripted diff) (jnewbery) #13297 d82c5d1 Fix incorrect comment for DeriveNewSeed (jnewbery) #13063 6378eef Use shared pointer to retain wallet instance (promag) #13142 56fe3dc Separate IsMine from solvability (sipa) #13194 fd96d54 Remove template matching and pseudo opcodes (sipa) #13252 c4cc8d9 Refactor ReserveKeyFromKeyPool for safety (Empact) #13058 343d4e4 createwallet RPC - create new wallet at runtime (jnewbery) #13351 2140f6c Prevent segfault when sending to unspendable witness (MarcoFalke) #13060 3f0f394 Remove getlabeladdress RPC (jnewbery) #13111 000abbb Add unloadwallet RPC (promag) #13160 868cf43 Unlock spent outputs (promag) #13498 f54f373 Fixups from account API deprecation (jnewbery) #13491 61a044a Improve handling of INVALID in IsMine (sipa) #13425 028b0d9 Moving final scriptSig construction from CombineSignatures to ProduceSignature (PSBT signer logic) (achow101) #13564 88a15eb loadwallet shouldn’t create new wallets (jnewbery) #12944 619cd29 ScanforWalletTransactions should mark input txns as dirty (instagibbs) #13630 d6b2235 Drop unused pindexRet arg to CMerkleTx::GetDepthInMainChain (Empact) #13566 ad552a5 Fix get balance (jnewbery) #13500 4a3e8c5 Decouple wallet version from client version (achow101) #13712 aba2e66 Fix non-determinism in ParseHDKeypath(…). Avoid using an uninitialized variable in path calculation (practicalswift) #9662 6b6e854 Add createwallet “disableprivatekeys” option: a sane mode for watchonly-wallets (jonasschnelli) #13683 e8c7434 Introduce assertion to document the assumption that cache and cache_used are always set in tandem (practicalswift) #12257 5f7575e Use destination groups instead of coins in coin select (kallewoof) #13773 89a116d Fix accidental use of the comma operator (practicalswift) #13805 c88529a Correctly limit output group size (sdaftuar) #12992 26f59f5 Add wallet name to log messages (PierreRochard) #13667 b81a8a5 Fix backupwallet for multiwallets (domob1812) #13657 51c693d assert to ensure accuracy of CMerkleTx::GetBlocksToMaturity (Empact) #13812 9d86aad sum ancestors rather than taking max in output groups (kallewoof) #13876 8eb9870 Catch filesystem_error and raise InitError (MarcoFalke) #13808 13d51a2 shuffle coins before grouping, where warranted (kallewoof) #13666 2115cba Always create signatures with Low R values (achow101) #13917 0333914 Additional safety checks in PSBT signer (sipa) #13968 65e7a8b couple of walletcreatefundedpsbt fixes (instagibbs) #14055 2307a6e fix walletcreatefundedpsbt deriv paths, add test (instagibbs) RPC and other APIs #12336 3843780 Remove deprecated rpc options (jnewbery) #12193 5dc00f6 Consistently use UniValue.pushKV instead of push_back(Pair()) (karel-3d) (MarcoFalke) #12409 0cc45ed Reject deprecated reserveChangeKey in fundrawtransaction (MarcoFalke) #10583 8a98dfe Split part of validateaddress into getaddressinfo (achow101) #10579 ffc6e48 Split signrawtransaction into wallet and non-wallet RPC command (achow101) #12494 e4ffcac Declare CMutableTransaction a struct in rawtransaction.h (Empact) #12503 0e26591 createmultisig no longer takes addresses (instagibbs) #12083 228b086 Improve getchaintxstats test coverage (promag) #12479 cd5e438 Add child transactions to getrawmempool verbose output (conscott) #11872 702e8b7 createrawtransaction: Accept sorted outputs (MarcoFalke) #12700 ebdf84c Document RPC method aliasing (ryanofsky) #12727 8ee5c7b Remove unreachable help conditions in rpcwallet.cpp (lutangar) #12778 b648974 Add username and ip logging for RPC method requests (GabrielDav) #12717 ac898b6 rest: Handle utxo retrieval when ignoring the mempool (romanz) #12787 cd99e5b Adjust ifdef to avoid unreachable code (practicalswift) #11742 18815b4 Add testmempoolaccept (MarcoFalke) #12942 fefb817 Drop redundant testing of signrawtransaction prevtxs args (Empact) #11200 5f2a399 Allow for aborting rescans in the GUI (achow101) #12791 3a8a4dc Expose a transaction’s weight via RPC (TheBlueMatt) #12436 6e67754 Adds a functional test to validate the transaction version number in the RPC output (251Labs) #12240 6f8b345 Introduced a new fees structure that aggregates all sub-field fee types denominated in BTC (mryandao) #12321 eac067a p2wsh and p2sh-p2wsh address in decodescript (fivepiece) #13090 17266a1 Remove Safe mode (achow101, laanwj) #12639 7eb7076 Reduce cs_main lock in listunspent (promag) #10267 7b966d9 New -includeconf argument for including external configuration files (kallewoof) #10757 b9551d3 Introduce getblockstats to plot things (jtimon) #13288 a589f53 Remove the need to include rpc/blockchain.cpp in order to put GetDifficulty under test (Empact) #13394 e1f8dce cli: Ignore libevent warnings (theuni) #13439 3f398d7 Avoid “duplicate” return value for invalid submitblock (TheBlueMatt) #13570 a247594 Add new “getzmqnotifications” method (domob1812) #13072 b25a4c2 Update createmultisig RPC to support segwit (ajtowns) #12196 8fceae0 Add scantxoutset RPC method (jonasschnelli) #13557 b654723 BIP 174 PSBT Serializations and RPCs (achow101) #13697 f030410 Support output descriptors in scantxoutset (sipa) #13927 bced8ea Use pushKV in some new PSBT RPCs (domob1812) #13918 a9c56b6 Replace median fee rate with feerate percentiles in getblockstats (marcinja) #13721 9f23c16 Bugfixes for BIP 174 combining and deserialization (achow101) #13960 517010e Fix PSBT deserialization of 0-input transactions (achow101) GUI #12416 c997f88 Fix Windows build errors introduced in #10498 (practicalswift) #11733 e782099 Remove redundant locks (practicalswift) #12426 bfa3911 Initialize members in WalletModel (MarcoFalke) #12489 e117cfe Bugfix: respect user defined configuration file (-conf) in QT settings (jonasschnelli) #12421 be263fa navigate to transaction history page after send (Sjors) #12580 ce56fdd Show a transaction’s virtual size in its details dialog (dooglus) #12501 c8ea91a Improved “custom fee” explanation in tooltip (randolf) #12616 cff95a6 Set modal overlay hide button as default (promag) #12620 8a43bdc Remove TransactionTableModel::TxIDRole (promag) #12080 56cc022 Add support to search the address book (promag) #12621 2bac3e4 Avoid querying unnecessary model data when filtering transactions (promag) #12721 e476826 remove “new” button during receive-mode in addressbook (jonasschnelli) #12723 310dc61 Qt5: Warning users about invalid-BIP21 URI bitcoin:// (krab) #12610 25cf18f Multiwallet for the GUI (jonasschnelli) #12779 f4353da Remove unused method setupAmountWidget(…) (practicalswift) #12795 68484d6 do not truncate .dat extension for wallets in gui (instagibbs) #12870 1d54004 make clean removes src/qt/moc_ files (Sjors) #13055 bdda14d Don’t log to console by default (laanwj) #13141 57c57df fixes broken link on readme (marcoagner) #12928 ef006d9 Initialize non-static class members that were previously neither initialized where defined nor in constructor (practicalswift) #13158 81c533c Improve sendcoinsdialog readability (marcoagner) #11491 40c34a0 Add proxy icon in statusbar (mess110) #13264 2a7c53b Satoshi unit (GreatSock) #13097 e545503 Support wallets loaded dynamically (promag) #13284 f8be434 fix visual “overflow” of amount input (brandonrninefive) #13275 a315b79 use [default wallet] as name for wallet with no name (jonasschnelli) #13273 3fd0c23 Qt/Bugfix: fix handling default wallet with no name (jonasschnelli) #13341 25d2df2 Stop translating command line options (laanwj) #13043 6e249e4 OptionsDialog: add prune setting (Sjors) #13506 6579d80 load wallet in UI after possible init aborts (jonasschnelli) #13458 dc53f7f Drop qt4 support (laanwj) #13528 b877c39 Move BitcoinGUI initializers to class, fix initializer order warning (laanwj) #13536 baf3a3a coincontrol: Remove unused qt4 workaround (MarcoFalke) #13537 10ffca7 Peer table: Visualize inbound/outbound state for every row (wodry) #13791 2c14c1f Reject dialogs if key escape is pressed (promag) Build system #12371 c9ca4f6 Add gitian PGP key: akx20000 (ghost) #11966 f4f4f51 clientversion: Use full commit hash for commit-based version descriptions (luke-jr) #12417 ae0fbf0 Upgrade mac_alias to 2.0.7 (droark) #12444 1f055ef gitian: Bump descriptors for (0.)17 (theuni) #12402 59e032b expat 2.2.5, ccache 3.4.1, miniupnpc 2.0.20180203 (fanquake) #12029 daa84b3 Add a makefile target for Doxygen documentation (Ov3rlo4d) #12466 6645eaf Only use D_DARWIN_C_SOURCE when building miniupnpc on darwin (fanquake) #11986 765a3eb zeromq 4.2.3 (fanquake) #12373 f13d756 Add build support for profiling (murrayn) #12631 a312e20 gitian: Alphabetize signing keys & add kallewoof key (kallewoof) #12607 29fad97 Remove ccache (fanquake) #12625 c4219ff biplist 1.0.3 (fanquake) #12666 05042d3 configure: UniValue 1.0.4 is required for pushKV(, bool) (luke-jr) #12678 6324c68 Fix a few compilation issues with Clang 7 and -Werror (vasild) #12692 de6bdfd Add configure options for various -fsanitize flags (eklitzke) #12901 7e23972 Show enabled sanitizers in configure output (practicalswift) #12899 3076993 macOS: Prevent Xcode 9.3 build warnings (AkioNak) #12715 8fd6243 Add ‘make clean’ rule (hkjn) #13133 a024a18 Remove python2 from configure.ac (ken2812221) #13005 cb088b1 Make –enable-debug to pick better options (practicalswift) #13254 092b366 Remove improper qt/moc_* cleaning glob from the general Makefile (Empact) #13306 f5a7733 split warnings out of CXXFLAGS (theuni) #13385 7c7508c Guard against accidental introduction of new Boost dependencies (practicalswift) #13041 5779dc4 Add linter checking for accidental introduction of locale dependence (practicalswift) #13408 70a03c6 crypto: cleanup sha256 build (theuni) #13435 cf7ca60 When build fails due to lib missing, indicate which one (Empact) #13445 8eb76f3 Reset default -g -O2 flags when enable debug (ken2812221) #13465 81069a7 Avoid concurrency issue when make multiple target (ken2812221) #13454 45c00f8 Make sure LC_ALL=C is set in all shell scripts (practicalswift) #13480 31145a3 Avoid copies in range-for loops and add a warning to detect them (theuni) #13486 66e1a08 Move rpc/util.cpp from libbitcoin-util to libbitcoin-server (ken2812221) #13580 40334c7 Detect if char equals int8_t (ken2812221) #12788 287e4ed Tune wildcards for LIBSECP256K1 target (kallewoof) #13611 b55f0c3 bugfix: Use __cpuid_count for gnu C to avoid gitian build fail (ken2812221) #12971 a6d14b1 Upgrade Qt to 5.9.6 (TheCharlatan) #13543 6c6a300 Add RISC-V support (laanwj) #13177 dcb154e GCC-7 and glibc-2.27 back compat code (ken2812221) #13659 90b1c7e add missing leveldb defines (theuni) #13368 c0f1569 Update gitian-build.sh for docker (achow101) #13171 19d8ca5 Change gitian-descriptors to use bionic instead (ken2812221) #13604 75bea05 Add depends 32-bit arm support for bitcoin-qt (TheCharlatan) #13623 9cdb19f Migrate gitian-build.sh to python (ken2812221) #13689 8c36432 disable Werror when building zmq (greenaddress) #13617 cf7f9ae release: Require macos 10.10+ (fanquake) #13750 c883653 use MacOS friendly sed syntax in qt.mk (Sjors) #13095 415f2bf update ax_boost_chrono/unit_test_framework (fanquake) #13732 e8ffec6 Fix Qt’s rcc determinism (Fuzzbawls) #13782 8284f1d Fix osslsigncode compile issue in gitian-build (ken2812221) #13696 2ab7208 Add aarch64 qt depends support for cross compiling bitcoin-qt (TheCharlatan) #13705 b413ba0 Add format string linter (practicalswift) #14000 48c8459 fix qt determinism (theuni) #14018 3e4829a Bugfix: NSIS: Exclude Makefile* from docs (luke-jr) #12906 048ac83 Avoid interface keyword to fix windows gitian build (ryanofsky) #13314 a9b6957 Fix FreeBSD build by including utilstrencodings.h (laanwj) Tests and QA #12252 8d57319 Require all tests to follow naming convention (ajtowns) #12295 935eb8d Enable flake8 warnings for all currently non-violated rules (practicalswift) #11858 b4d8549 Prepare tests for Windows (MarcoFalke) #11771 2dbc4a4 Change invalidtxrequest to use BitcoinTestFramework (jnewbery) #12200 d09968f Bind functional test nodes to 127.0.0.1 (Sjors) #12425 26dc2da Add some script tests (richardkiss) #12455 23481fa Fix bip68 sequence test to reflect updated rpc error message (Empact) #12477 acd1e61 Plug memory leaks and stack-use-after-scope (MarcoFalke) #12443 07090c5 Move common args to bitcoin.conf (MarcoFalke) #12570 39dcac2 Add test cases for HexStr (std::reverse_iterator and corner cases) (kostaz) #12582 6012f1c Fix ListCoins test failure due to unset g_wallet_allow_fallback_fee (ryanofsky) #12516 7f99964 Avoid unintentional unsigned integer wraparounds in tests (practicalswift) #12512 955fd23 Don’t test against the mempool min fee information in mempool_limit.py (Empact) #12600 29088b1 Add a test for large tx output scripts with segwit input (richardkiss) #12627 791c3ea Fix some tests to work on native windows (MarcoFalke) #12405 0f58d7f travis: Full clone for git subtree check (MarcoFalke) #11772 0630974 Change invalidblockrequest to use BitcoinTestFramework (jnewbery) #12681 1846296 Fix ComputeTimeSmart test failure with -DDEBUG_LOCKORDER (ryanofsky) #12682 9f04c8e travis: Clone depth 1 unless $check_doc (MarcoFalke) #12710 00d1680 Append scripts to new test_list array to fix bad assignment (jeffrade) #12720 872c921 Avoiding ‘file’ function name from python2 (jeffrade) #12728 4ba3d4f rename TestNode to TestP2PConn in tests (jnewbery) #12746 2405ce1 Remove unused argument max_invalid from check_estimates(…) (practicalswift) #12718 185d484 Require exact match in assert_start_raises_init_eror (jnewbery, MarcoFalke) #12076 6d36f59 Use node.datadir instead of tmpdir in test framework (MarcoFalke) #12772 b43aba8 ci: Bump travis timeout for make check to 50m (jnewbery) #12806 18606eb Fix function names in feature_blocksdir (MarcoFalke) #12811 0d8fc8d Make summary row bold-red if any test failed and show failed tests at end of table (laanwj) #12790 490644d Use blockmaxweight where tests previously had blockmaxsize (conscott) #11773 f0f9732 Change feature_block.py to use BitcoinTestFramework (jnewbery) #12839 40f4baf Remove travis checkout depth (laanwj) #11817 2a09a78 Change feature_csv_activation.py to use BitcoinTestFramework (jnewbery) #12284 fa5825d Remove assigned but never used local variables. Enable Travis checking for unused local variables (practicalswift) #12719 9beded5 Add note about test suite naming convention in developer-notes.md (practicalswift) #12861 c564424 Stop feature_block.py from blowing up memory (jnewbery) #12851 648252e travis: Run verify-commits only on cron jobs (MarcoFalke) #12853 2106c4c Match full plain text by default (MarcoFalke) #11818 9a2db3b I accidentally (deliberately) killed it (the ComparisonTestFramework) (jnewbery) #12766 69310a3 Tidy up REST interface functional tests (romanz) #12849 83c7533 Add logging in loops in p2p_sendhears.py (ccdle12) #12895 d6f10b2 Add note about test suite name uniqueness requirement to developer notes (practicalswift) #12856 27278df Add Metaclass for BitcoinTestFramework (WillAyd) #12918 6fc5a05 Assert on correct variable (kallewoof) #11878 a04440f Add Travis check for duplicate includes (practicalswift) #12917 cf8073f Windows fixups for functional tests (MarcoFalke) #12926 dd1ca9e Run unit tests in parallel (sipa) #12920 b1fdfc1 Fix sign for expected values (kallewoof) #12947 979f598 Wallet hd functional test speedup and clarification (instagibbs) #12993 0d69921 Remove compatibility code not needed now when we’re on Python 3 (practicalswift) #12996 6a278e0 Remove redundant bytes(…) calls (practicalswift) #12949 6b46288 Avoid copies of CTransaction (MarcoFalke) #13007 0d12570 Fix dangling wallet pointer in vpwallets (promag) #13048 cac6d11 Fix feature_block flakiness (jnewbery) #12510 d5b2e98 Add rpc_bind test to default-run tests (laanwj) #13022 896a9d0 Attach node index to test_node AssertionError and print messages (jamesob) #13024 018c7e5 Add rpcauth pair that generated by rpcauth.py (ken2812221) #13013 a0079d4 bench: Amend mempool_eviction test for witness txs (MarcoFalke) #13051 e074097 Normalize executable location (MarcoFalke) #13056 106d929 Make rpcauth.py testable and add unit tests (nixbox) #13073 a785bc3 add rpcauth-test to AC_CONFIG_LINKS to fix out-of-tree make check (laanwj) #12830 25ad2f7 Clarify address book error messages, add tests (jamesob) #13082 24106a8 don’t test against min relay fee information in mining_prioritisetransaction.py (kristapsk) #13003 8d045a0 Add test for orphan handling (MarcoFalke) #13105 9e9b48d Add –failfast option to functional test runner (jamesob) #13130 3186ad4 Fix race in rpc_deprecated.py (jnewbery) #13136 baf6b4e Fix flake8 warnings in several wallet functional tests (jnewbery) #13094 bf9b03d Add test for 64-bit Windows PE, modify 32-bit test results (ken2812221) #13183 9458b05 travis: New travis job for check_docs steps (glaksmono) #12265 1834d4d fundrawtransaction: lock watch-only shared address (kallewoof) #13188 4a50ec0 Remove unused option –srcdir (MarcoFalke) #12755 612ba35 Better stderr testing (jnewbery) #13198 196c5a9 Avoid printing to console during cache creation (sdaftuar) #13075 cb9bbf7 Remove ‘account’ API from wallet functional tests (jnewbery) #13221 ffa86af travis: Rename the build stage check_doc to lint (practicalswift) #13205 3cbd25f Remove spurious error log in p2p_segwit.py (jnewbery) #13291 536120e Don’t include torcontrol.cpp into the test file (Empact) #13281 2ac6315 Move linters to test/lint, add readme (MarcoFalke) #13215 f8a29ca travis: Build tests on ubuntu 18.04 with docker (ken2812221) #13349 24f7011 bench: Don’t return a bool from main (laanwj) #13347 87a9d03 travis: Skip cache for lint stage (MarcoFalke) #13355 0b1c0c4 Fix “gmake check” under OpenBSD 6.3 (probably *BSD): Avoid using GNU grep specific regexp handling (practicalswift) #13353 d4f6dac Fixup setting of PATH env var (MarcoFalke) #13352 e24bf1c Avoid checking reject code for now (MarcoFalke) #13383 2722a1f bench: Use non-throwing parsedouble(…) instead of throwing boost::lexical_cast<double>(…) (practicalswift) #13367 264efdc Increase includeconf test coverage (MarcoFalke) #13404 3d3d8ae speed up of tx_validationcache_tests by reusing of CTransaction (lucash-dev) #13421 531a033 Remove portseed_offset from test runner (MarcoFalke) #13440 5315660 Log as utf-8 (MarcoFalke) #13066 fa4b906 Migrate verify-commits script to python, run in travis (ken2812221) #13447 4b1edd3 travis: Increase travis_wait time while verifying commits (ken2812221) #13350 f532d52 Add logging to provide anchor points when debugging p2p_sendheaders (lmanners) #13406 4382f19 travis: Change mac goal to all deploy (ken2812221) #13457 b222138 Drop variadic macro (MarcoFalke) #13512 3a45493 mininode: Expose connection state through is_connected (MarcoFalke) #13496 9ab4c2a Harden lint-filenames.sh (wodry) #13219 08516e0 bench: Add block assemble benchmark (MarcoFalke) #13530 b1dc39d bench: Add missing pow.h header (laanwj) #12686 2643fa5 Add -ftrapv to CFLAGS and CXXFLAGS when –enable-debug is used. Enable -ftrapv in Travis (practicalswift) #12882 d96bdd7 Make test_bitcoin pass under ThreadSanitzer (clang). Fix lock-order-inversion (potential deadlock) (practicalswift) #13535 2328039 wallet_basic: Specify minimum required amount for listunspent (MarcoFalke) #13551 c93c360 Fix incorrect documentation for test case cuckoocache_hit_rate_ok (practicalswift) #13563 b330f3f bench: Simplify coinselection (promag) #13517 a6ed99a Remove need to handle the network thread in tests (MarcoFalke) #13522 686e97a Fix p2p_sendheaders race (jnewbery) #13467 3dc2dcf Make p2p_segwit easier to debug (jnewbery) #13598 0212187 bench: Fix incorrect behaviour in prevector.cpp (AkioNak) #13565 b05ded1 Fix AreInputsStandard test to reference the proper scriptPubKey (Empact) #13145 d3dae3d Use common getPath method to create temp directory in tests (winder) #13645 2ea7eb6 skip rpc_zmq functional test as necessary (jamesob) #13626 8f1106d Fix some TODOs in p2p_segwit (MarcoFalke) #13138 8803c91 Remove accounts from wallet_importprunedfunds.py (jnewbery) #13663 cbc9b50 Avoid read/write to default datadir (MarcoFalke) #13682 f8a32a3 bench: Remove unused variable (practicalswift) #13638 6fcdb5e Use MAX_SCRIPT_ELEMENT_SIZE from script.py (domob1812) #13687 9d26b69 travis: Check that ~/.bitcoin is never created (MarcoFalke) #13715 e1260a7 fixes mininode’s P2PConnection sending messages on closing transport (marcoagner) #13729 aa9429a travis: Avoid unnecessarily setting env variables on the lint build (Empact) #13747 ab28b5b Skip P2PConnection’s is_closing() check when not available (domob1812) #13650 7a9bca6 travis: Don’t store debug info if –enable-debug is set (ken2812221) #13711 f98d1e0 bench: Add benchmark for unserialize prevector (AkioNak) #13771 365384f travis: Retry to fetch docker image (MarcoFalke) #13806 4d550ff Fix bench/block_assemble assert failure (jamesob) #13779 d25079a travis: Improve readability of travis.yml and log outputs (scravy) #13822 0fb9c87 bench: Make coinselection output groups pass eligibility filter (achow101) #13247 e83d82a Add tests to SingleThreadedSchedulerClient() and document the memory model (skeees) #13811 660abc1 travis: Run bench_bitcoin once (MarcoFalke) #13837 990e182 Extract rpc_timewait as test param (MarcoFalke) #13851 9c4324d fix locale for lint-shell (scravy) #13823 489b51b quote path in authproxy for external multiwallets (MarcoFalke) #13849 2b67354 travis: Use only travis jobs: instead of mix of jobs+matrix (scravy) #13859 2384323 Add emojis to test_runner path and wallet filename (MarcoFalke) #13916 8ac7125 wait_for_verack by default (MarcoFalke) #13669 f66e1c7 Cleanup create_transaction implementations (conscott) #13924 09ada21 Simplify comparison in rpc_blockchain.py (domob1812) #13913 a08533c Remove redundant checkmempool/checkblockindex extra_args (MarcoFalke) #13915 a04888a Add test for max number of entries in locator (MarcoFalke) #13867 1b04b55 Make extended tests pass on native Windows (MarcoFalke) #13944 0df7a6c Port usage of deprecated optparse module to argparse module (Kvaciral) #13928 b8eb0df blocktools enforce named args for amount (MarcoFalke) #13054 bffb35f Enable automatic detection of undefined names in Python tests scripts. Remove wildcard imports (practicalswift) #14069 cf3d7f9 Use assert not BOOST_CHECK_* from multithreaded tests (skeees) #14071 fab0fbe Stop txindex thread before calling destructor (MarcoFalke) Miscellaneous #11909 8897135 contrib: Replace developer keys with list of pgp fingerprints (MarcoFalke) #12394 fe53d5f gitian-builder.sh: fix –setup doc, since lxc is default (Sjors) #12468 294a766 Add missing newline in init.cpp log message (Aesti) #12308 dcfe218 contrib: Add support for out-of-tree builds in gen-manpages.sh (laanwj) #12451 aae64a2 Bump leveldb subtree (MarcoFalke) #12527 d77b4a7 gitian-build.sh: fix signProg being recognized as two parameters (ken2812221) #12588 d74b01d utils: Remove deprecated pyzmq call from python zmq example (kosciej) #10271 bc67982 Use std::thread::hardware_concurrency, instead of Boost, to determine available cores (fanquake) #12097 14475e2 scripts: Lint-whitespace: use perl instead of grep -p (Sjors) #12098 17c44b2 scripts: Lint-whitespace: add param to check last n commits (Sjors) #11900 842f61a script: Simplify checkminimalpush checks, add safety assert (instagibbs) #12567 bb98aec util: Print timestamp strings in logs using iso 8601 formatting (practicalswift) #12572 d8d9162 script: Lint-whitespace: find errors more easily (AkioNak) #10694 ae5bcc7 Remove redundant code in MutateTxSign(CMutableTransaction&, const std::string&) (practicalswift) #12659 3d16f58 Improve Fatal LevelDB Log Messages (eklitzke) #12643 0f0229d util: Remove unused sync_chain (MarcoFalke) #12102 7fb8fb4 Apply hardening measures in bitcoind systemd service file (Flowdalic) #12652 55f490a bitcoin-cli: Provide a better error message when bitcoind is not running (practicalswift) #12630 c290508 Provide useful error message if datadir is not writable (murrayn) #11881 624bee9 Remove Python2 support (jnewbery) #12821 082e26c contrib: Remove unused import string (MarcoFalke) #12829 252c1b0 Python3 fixup (jnewbery) #12822 ff48f62 Revert 7deba93bdc76616011a9f493cbc203d60084416f and fix expired-key-sigs properly (TheBlueMatt) #12820 5e53b80 contrib: Fix check-doc script regexes (MarcoFalke) #12713 4490871 Track negated options in the option parser (eklitzke) #12708 b2e5fe8 Make verify-commits.sh test that merges are clean (sipa) #12891 3190785 logging: Add lint-logs.sh to check for newline termination (jnewbery) #12923 a7cbe38 util: Pass pthread_self() to pthread_setschedparam instead of 0 (laanwj) #12871 fb17fae Add shell script linting: Check for shellcheck warnings in shell scripts (practicalswift) #12970 5df84de logging: Bypass timestamp formatting when not logging (theuni) #12987 fe8fa22 tests/tools: Enable additional Python flake8 rules for automatic linting via Travis (practicalswift) #12972 0782508 Add python3 script shebang lint (ken2812221) #13004 58bbc55 Print to console by default when not run with -daemon (practicalswift) #13039 8b4081a Add logging and error handling for file syncing (laanwj) #13020 4741ca5 Consistently log CValidationState on call failure (Empact) #13031 826acc9 Fix for utiltime to compile with msvc (sipsorcery) #13119 81743b5 Remove script to clean up datadirs (MarcoFalke) #12954 5a66642 util: Refactor logging code into a global object (jimpo) #12769 35eb9d6 Add systemd service to bitcoind in debian package (ghost) #13146 0bc980b rpcauth: Make it possible to provide a custom password (laanwj) #13148 b62b437 logging: Fix potential use-after-free in logprintstr(…) (practicalswift) #13214 0612d96 Enable Travis checking for two Python linting rules we are currently not violating (practicalswift) #13197 6826989 util: Warn about ignored recursive -includeconf calls (kallewoof) #13176 d9ebb63 Improve CRollingBloomFilter performance: replace modulus with FastMod (martinus) #13228 d792e47 Add script to detect circular dependencies between source modules (sipa) #13320 e08c130 Ensure gitian-build.sh uses bash (jhfrontz) #13301 e4082d5 lint: Add linter to error on #include <*.cpp> (Empact) #13374 56f6936 utils and libraries: checking for bitcoin address in translations (kaplanmaxe) #13230 7c32b41 Simplify include analysis by enforcing the developer guide’s include syntax (practicalswift) #13450 32bf4c6 Add linter: Enforce the source code file naming convention described in the developer notes (practicalswift) #13479 fa2ea37 contrib: Fix cve-2018-12356 by hardening the regex (loganaden) #13448 a90ca40 Add linter: Make sure we explicitly open all text files using UTF-8 encoding in Python (practicalswift) #13494 d67eff8 Follow-up to #13454: Fix broken build by exporting LC_ALL=C (practicalswift) #13510 03f3925 Scripts and tools: Obsolete #!/bin/bash shebang (DesWurstes) #13577 c9eb8d1 logging: Avoid nstart may be used uninitialized in appinitmain warning (mruddy) #13603 453ae5e bitcoin-tx: Stricter check for valid integers (domob1812) #13118 c05c93c RPCAuth Detection in Logs (Linrono) #13647 4027ec1 Scripts and tools: Fix BIND_NOW check in security-check.py (conradoplg) #13692 f5d166a contrib: Clone core repo in gitian-build (MarcoFalke) #13699 4c6d1b9 contrib: Correct version check (kallewoof) #13695 dcc0cff lint: Add linter for circular dependencies (Empact) #13733 0d1ebf4 utils: Refactor argsmanager a little (AtsukiTak) #13714 29b4ee6 contrib: Add lxc network setup for bionic host (ken2812221) #13764 f8685f4 contrib: Fix test-security-check fail in ubuntu 18.04 (ken2812221) #13809 77168f7 contrib: Remove debian and rpm subfolder (MarcoFalke) #13799 230652c Ignore unknown config file options; warn instead of error (sipa) #13894 df9f712 shutdown: Stop threads before resetting ptrs (MarcoFalke) #13925 71dec5c Merge leveldb subtree (MarcoFalke) #13939 ef86f26 lint: Make format string linter understand basic template parameter syntax (practicalswift) #14105 eb202ea util: Report parse errors in configuration file (laanwj) #12604 9903537 Add DynamicMemoryUsage() to CDBWrapper to estimate LevelDB memory use (eklitzke) #12495 047865e Increase LevelDB max_open_files (eklitzke) #12784 e80716d Fix bug in memory usage calculation (unintended integer division) (practicalswift) #12618 becd8dd Set SCHED_BATCH priority on the loadblk thread (eklitzke) #12854 5ca1509 Add P2P, Network, and Qt categories to the desktop icon (luke-jr) #11862 4366f61 Network specific conf sections (ajtowns) #13441 4a7e64f Prevent shared conf files from failing with different available options in different binaries (achow101) #13471 5eca4e8 For AVX2 code, also check for AVX, XSAVE, and OS support (sipa) #13503 c655b2c Document FreeBSD quirk. Fix FreeBSD build: Use std::min<int>(…) to allow for compilation under certain FreeBSD versions (practicalswift) #13725 07ce278 Fix bitcoin-cli –version (Empact) Documentation #12306 216f9a4 Improvements to UNIX documentation (axvr) #12309 895fbd7 Explain how to update chainTxData in release process (laanwj) #12317 85123be Document method for reviewers to verify chainTxData (jnewbery) #12331 d32528e Properly alphabetize output of CLI –help option (murrayn) #12322 c345148 Remove step making cloned repository world-writable for Windows build (murrayn) #12354 b264528 add gpg key for fivepiece (fivepiece) #11761 89005dd initial QT documentation (Sjors) #12232 fdc2188 Improve “Turn Windows Features On or Off” step (MCFX2) #12487 4528f74 init: Remove translation for -blockmaxsize option help (laanwj) #12546 a4a5fc7 Minor improvements to Compatibility Notes (randolf) #12434 21e2670 dev-notes: Members should be initialized (MarcoFalke) #12452 71f56da clarified systemd installation instructions in init.md for Ubuntu users (DaveFromBinary) #12615 1f93491 allow for SIGNER containing spaces (ken2812221) #12603 85424d7 PeerLogicValidation interface (jamesob) #12581 12ac2f0 Mention configure without wallet in FreeBSD instructions (dbolser) #12619 8a709fb Give hint about gitian not able to download (kallewoof) #12668 de2fcaa do update before fetching packages in WSL build guide (nvercamm) #12586 e7721e6 Update osx brew install instruction (fanquake) #12760 7466a26 Improve documentation on standard communication channels (jimpo) #12797 0415b1e init: Fix help message for checkblockindex (MarcoFalke) #12800 2d97611 Add note about our preference for scoped enumerations (“enum class”) (practicalswift) #12798 174d016 Refer to witness reserved value as spec. in the BIP (MarcoFalke) #12759 d3908e2 Improve formatting of developer notes (eklitzke) #12877 2b54155 Use bitcoind in Tor documentation (knoxcard) #12896 b15485e Fix conflicting statements about initialization in developer notes (practicalswift) #12850 319991d add qrencode to brew install instructions (buddilla) #12007 cd8e45b Clarify the meaning of fee delta not being a fee rate in prioritisetransaction RPC (honzik666) #12927 06ead15 fixed link, replaced QT with Qt (trulex) #12852 ebd786b devtools: Setup ots git integration (MarcoFalke) #12933 3cf76c2 Refine header include policy (MarcoFalke) #12951 6df0c6c Fix comment in FindForkInGlobalIndex (jamesob) #12982 a63b4e3 Fix inconsistent namespace formatting guidelines (ryanofsky) #13026 9b3a67e Fix include comment in src/interfaces/wallet.h (promag) #13012 d1e3c5e Add comments for chainparams.h, validation.cpp (jamesob) #13064 569e381 List support for BIP173 in bips.md (sipa) #12997 646b7f6 build-windows: Switch to Artful, since Zesty is EOL (MarcoFalke) #12384 c5f7efe Add version footnote to tor.md (Willtech) #13165 627c376 Mention good first issue list in CONTRIBUTING.md (fanquake) #13295 fb77310 Update OpenBSD build instructions for OpenBSD 6.3 (practicalswift) #13340 3a8e3f4 remove leftover check-doc documentation (fanquake) #13346 60f0358 update bitcoin-dot-org links in release-process.md (fanquake) #13372 f014933 split FreeBSD build instructions out of build-unix.md (steverusso) #13366 861de3b Rename “OS X” to the newer “macOS” convention (giulio92) #13369 f8bcef3 update transifex doc link (mess110) #13312 b22115d Add a note about the source code filename naming convention (practicalswift) #13460 1939536 Remove note to install all boost dev packages (MarcoFalke) #13476 9501938 Fix incorrect shell quoting in FreeBSD build instructions (murrayn) #13402 43fa355 Document validationinterace callback blocking deadlock potential (TheBlueMatt) #13488 d6cf4bd Improve readability of “Squashing commits” (wodry) #13531 ee02deb Clarify that mempool txiter is const_iterator (MarcoFalke) #13418 01f9098 More precise explanation of parameter onlynet (wodry) #13592 1756cb4 Modify policy to not translate command-line help (ken2812221) #13588 b77c38e Improve doc of options addnode, connect, seednode (wodry) #13614 17e9106 Update command line help for -printtoconsole and -debuglogfile (satwo, fanquake) #13605 8cc048e corrected text to reflect new(er) process of specifying fingerprints (jhfrontz) #13481 b641f60 Rewrite some validation docs as lock annotations (MarcoFalke) #13680 30640f8 Remove outdated comment about miner ignoring CPFP (jamesob) #13625 7146672 Add release notes for -printtoconsole and -debuglogfile changes (satwo) #13718 f7f574d Specify preferred Python string formatting technique (masonicboom) #12764 10b9a81 Remove field in getblocktemplate help that has never been used (conscott) #13742 d2186b3 Adjust bitcoincore.org links (MarcoFalke) #13706 94dd89e Minor improvements to release-process.md (MitchellCash) #13775 ef4fac0 Remove newlines from error message (practicalswift) #13803 feb7dd9 add note to contributor docs about warranted PR’s (kallewoof) #13814 67af7ef Add BIP174 to list of implemented BIPs (sipa) #13835 c1cba35 Fix memory consistency model in comment (skeees) #13824 aa30e4b Remove outdated net comment (MarcoFalke) #13853 317477a correct versions in dependencies.md (fanquake) #13872 37ab117 Reformat -help output for help2man (real-or-random) #13717 8c3c402 Link to python style guidelines from developer notes (masonicboom) #13895 1cd5f2c fix GetWarnings docs to reflect behavior (Empact) #13911 3e3a50a Revert translated string change, clarify wallet log messages (PierreRochard) #13908 d6faea4 upgrade rescan time warning from minutes to >1 hour (masonicboom) #13905 73a09b4 fixed bitcoin-cli -help output for help2man (hebasto) #14100 2936dbc Change documentation for =0 for non-boolean options (laanwj) #14096 465a583 Add reference documentation for descriptors language (sipa) #12757 0c5f67b Clarify include guard naming convention (practicalswift) #13844 d3325b0 Correct the help output for -prune (hebasto) Credits Thanks to everyone who directly contributed to this release: 251 532479301 Aaron Clauson Akio Nakamura Akira Takizawa Alex Morcos Alex Vear Alexey Ivanov Alin Rus Andrea Comand Andrew Chow Anthony Towns AtsukiTak Ben Woosley Bernhard M. Wiedemann Brandon Ruggles buddilla ccdle12 Chris Moore Chun Kuan Lee Clem Taylor Conor Scott Conrado Gouvea Cory Fields Cristian Mircea Messel ctp-tsteenholdt Damian Williamson Dan Bolser Daniel Kraft Darko Janković DaveFromBinary David A. Harding DesWurstes Dimitris Apostolou donaloconnor Douglas Roark DrahtBot Drew Rasmussen e0 Ernest Hemingway Ethan Heilman Evan Klitzke fanquake Felix Wolfsteller fivepiece Florian Schmaus Fuzzbawls Gabriel Davidian Giulio Lombardo Gleb Grady Laksmono GreatSock Gregory Maxwell Gregory Sanders Hennadii Stepanov Henrik Jonsson Indospace.io James O’Beirne Jan Čapek Jeff Frontz Jeff Rade Jeremy Rubin JeremyRand Jesse Cohen Jim Posen joemphilips John Bampton John Newbery johnlow95 Johnson Lau Jonas Nick Jonas Schnelli João Barbosa Jorge Timón Josh Hartshorn Julian Fleischer kallewoof Karel Bilek Karl-Johan Alm Ken Lee Kevin Pan Kosta Zertsekel Kristaps Kaupe Kvaciral Lawrence Nahum Linrono lmanners Loganaden Velvindron Lowell Manners lucash.dev@gmail.com Luke Dashjr lutangar Marcin Jachymiak marcoagner MarcoFalke Mark Erhardt Mark Friedenbach Martin Ankerl Mason Simon Matt Corallo Matteo Sumberaz Max Kaplan MeshCollider Michał Zabielski Mitchell Cash mruddy mryandao murrayn Nick Vercammen Nicolas Dorier Nikolay Mitev okayplanet Pierre Rochard Pieter Wuille practicalswift Qasim Javed Randolf Richardson Richard Kiss Roman Zeyde Russell Yanofsky Samuel B. Atwood Sebastian Kung Sjors Provoost Steve Lee steverusso Suhas Daftuar Tamas Blummer TheCharlatan Thomas Kerin Thomas Snider Tim Ruffing Varunram Vasil Dimov Will Ayd William Robinson winder Wladimir J. van der Laan wodry And to those that reported security issues: awemany (for CVE-2018-17144, previously credited as “anonymous reporter”) As well as everyone that helped translating on Transifex. View the full article
-
Bitcoin Core version 0.14.3 is now available from: https://bitcoin.org/bin/bitcoin-core-0.14.3/ This is a new minor version release, including various bugfixes and performance improvements. 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/ Compatibility Bitcoin Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows Vista and later. Microsoft ended support for Windows XP on April 8th, 2014, No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker. Bitcoin Core should also work on most other Unix-like systems but is not frequently tested on them. Notable changes Denial-of-Service vulnerability CVE-2018-17144 ——————————- A denial-of-service vulnerability exploitable by miners has been discovered in Bitcoin Core versions 0.14.0 up to 0.16.2. It is recommended to upgrade any of the vulnerable versions to 0.14.3, 0.15.2 or 0.16.3 as soon as possible. Known Bugs Since 0.14.0 the approximate transaction fee shown in Bitcoin-Qt when using coin control and smart fee estimation does not reflect any change in target from the smart fee slider. It will only present an approximate fee calculated using the default target. The fee calculated using the correct target is still applied to the transaction and shown in the final send confirmation dialog. 0.14.3 Change log Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. Consensus #14247 52965fb Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar) RPC and other APIs #10445 87a21d5 Fix: make CCoinsViewDbCursor::Seek work for missing keys (Pieter Wuille, Gregory Maxwell) #9853 Return correct error codes in setban(), fundrawtransaction(), removeprunedfunds(), bumpfee(), blockchain.cpp (John Newbery) P2P protocol and network code #10234 d289b56 [net] listbanned RPC and QT should show correct banned subnets (John Newbery) Build system Miscellaneous #10451 3612219 contrib/init/bitcoind.openrcconf: Don’t disable wallet by default (Luke Dashjr) #10250 e23cef0 Fix some empty vector references (Pieter Wuille) #10196 d28d583 PrioritiseTransaction updates the mempool tx counter (Suhas Daftuar) #9497 e207342 Fix CCheckQueue IsIdle (potential) race condition and remove dangerous constructors. (Jeremy Rubin) GUI #9481 7abe7bb Give fallback fee a reasonable indent (Luke Dashjr) #9481 3e4d7bf Qt/Send: Figure a decent warning colour from theme (Luke Dashjr) #9481 e207342 Show more significant warning if we fall back to the default fee (Jonas Schnelli) Wallet #10308 28b8b8b Securely erase potentially sensitive keys/values (tjps) #10265 ff13f59 Make sure pindex is non-null before possibly referencing in LogPrintf call. (Karl-Johan Alm) Credits Thanks to everyone who directly contributed to this release: Cory Fields CryptAxe fanquake Jeremy Rubin John Newbery Jonas Schnelli Gregory Maxwell Karl-Johan Alm Luke Dashjr MarcoFalke Matt Corallo Mikerah Pieter Wuille practicalswift Suhas Daftuar Thomas Snider Tjps Wladimir J. van der Laan And to those that reported security issues: awemany (for CVE-2018-17144, previously credited as “anonymous reporter”) View the full article
-
Bitcoin Core version 0.15.2 is now available from: https://bitcoincore.org/bin/bitcoin-core-0.15.2/ This is a new minor version release, including various bugfixes 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 higher, 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. The file format of fee_estimates.dat changed in version 0.15.0. Hence, a downgrade from version 0.15 or upgrade to version 0.15 will cause all fee estimates to be discarded. 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. Upgrading directly from 0.7.x and earlier without redownloading the blockchain is not supported. However, as usual, old wallet versions are still supported. Downgrading warning The chainstate database for this release is not compatible with previous releases, so if you run 0.15 and then decide to switch back to any older version, you will need to run the old release with the -reindex-chainstate option to rebuild the chainstate data structures in the old format. If your node has pruning enabled, this will entail re-downloading and processing the entire blockchain. Compatibility Bitcoin Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. Bitcoin Core should also work on most other Unix-like systems but is not frequently tested on them. Notable changes Denial-of-Service vulnerability CVE-2018-17144 A denial-of-service vulnerability exploitable by miners has been discovered in Bitcoin Core versions 0.14.0 up to 0.16.2. It is recommended to upgrade any of the vulnerable versions to 0.15.2 or 0.16.3 as soon as possible. 0.15.2 Change log Build system #11995 9bb1a16 depends: Fix Qt build with XCode 9.2(fanquake) #12946 93b9a61 depends: Fix Qt build with XCode 9.3(fanquake) #13544 9fd3e00 depends: Update Qt download url (fanquake) #11847 cb7ef31 Make boost::multi_index comparators const (sdaftuar) Consensus #14247 4b8a3f5 Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar) RPC #11676 7af2457 contrib/init: Update openrc-run filename (Luke Dashjr) #11277 7026845 Fix uninitialized URI in batch RPC requests (Russell Yanofsky) Wallet #11289 3f1db56 Wrap dumpwallet warning and note scripts aren’t dumped (MeshCollider) #11289 42ea47d Add wallet backup text to import, add and dumpwallet RPCs (MeshCollider) #11590 6372a75 [Wallet] always show help-line of wallet encryption calls (Jonas Schnelli) bitcoin-tx #11554 a69cc07 Sanity-check script sizes in bitcoin-tx (TheBlueMatt) Tests #11277 3a6cdd4 Add test for multiwallet batch RPC calls (Russell Yanofsky) #11647 1c8c7f8 Add missing batch rpc calls to python coverage logs (Russell Yanofsky) #11277 1036c43 Add missing multiwallet rpc calls to python coverage logs (Russell Yanofsky) #11277 305f768 Limit AuthServiceProxyWrapper.__getattr__ wrapping (Russell Yanofsky) #11277 2eea279 Make AuthServiceProxy._batch method usable (Russell Yanofsky) Credits Thanks to everyone who directly contributed to this release: fanquake Jonas Schnelli Luke Dashjr Matt Corallo MeshCollider Russell Yanofsky Suhas Daftuar Wladimir J. van der Laan And to those that reported security issues: awemany (for CVE-2018-17144, previously credited as “anonymous reporter”) View the full article
-
style="margin: 0;color: black;"> View this email in a browser BitMEX Crypto Trader Digest Aug 14, 2018 From the desk of Arthur Hayes Co-founder & CEO, BitMEX ETHUSD Perpetual Swap Two Week Update One of our strengths at BitMEX is financial innovation. We created the XBTUSD perpetual swap, a truly unique product to any financial market. XBTUSD is now the most liquid crypto instrument globally by a factor of 10 and has been emulated by a half dozen crypto markets. On the back of that success, BitMEX has created a way to replicate the same Bitcoin-margined perpetual swap but on Ether / USD via a quanto pricing model. This product is the ETHUSD perpetual swap. In just under two weeks, this product has become the most liquid Ether / USD (or USD equivalent) pair globally, and has proven to be a vital instrument in speculating or hedging on the ETH/USD price pair. In the last 24 hours, BitMEX's ETHUSD swap has traded the equivalent of 800,000 ETH. The next most liquid ETH/USD and ETH/USDT markets, Bitfinex and Binance, traded just under 500,000 ETH each in the same period. If you are still unsure on the pricing or trading of this instrument, please take a look back at our newsletter from last week where we run through multiple worked examples on hedging and speculating. To aid in your understanding, we have also created a downloadable spreadsheet to work through the math. Ether, A Double Digit Shitcoin It all started in Feb 2017 on a beach in southern Thailand. Thailand's king passed a few months prior, so the party atmosphere was subdued. Accompanied by a good friend of mine and one of the best shitcoin traders in the game, we headed down the beach in search of a party. One of his big shitcoin positions at the time was Pepe Cash. This was the precursor to Crypto Kitties. For those not in the know, PepeCash is "rare pepe" memes hashed onto a blockchain. The next killer app to be sure. Pepe Cash was on a mini run, and my boy constantly monitored the market. We didn’t find a poppin' party, but we did find special shakes. The bartender didn’t think we were sideways enough so he went in the back to get the real stuff. Over the next few hours we walked for miles, met interesting tourists and locals, and waxed philosophical about shitcoins. On our ride back to our hotel, I noticed something strange. Our Tuk Tuk driver was wearing a trucker hat with a Pepe the Frog logo on it. Not trusting my eyes, I nudged my friend to confirm what I saw. He concurred that our driver was sporting a Pepe hat. My friend immediately whipped out his phone to check the market. Perhaps they saw what we did. Pepe Cash was pumping and he bought some more. We both looked at each other and knew it was a sign that something special would happen in 2017. What actually happened was far beyond what we could have ever imagined. The real profit in 2017 was made by Ether holders, shitcoin projects, and promoters. The seed capital for many of the venerated crypto hedge funds emanated from outsized returns on holdings of Ether and token projects. Jealous traditional VCs transformed portions of their funds into poorly designed hedge funds so that they too could punt shitcoins. Everyone piled info the same deals, all thinking they “got it”. That worked well all of 2017. Today, Ether slides towards $200. At best, many token projects are down 50% from 2017. At worst, they are slightly above than zero. This begs the questions: Did any funds actually realise any of their outstanding 2016 profits? Can VC-turned-hedge-fund-punters psychologically handle mark-to-market losses? How many token projects actually sold a large or hedged portion of the Ether they raised? Big Door In, Small Door Out One of the first things you learn as an Asia Pacific trader: how you exit a position is more important than how you enter. My first trading book was the Vietnam certificates book. Our desk issued USD denominated certificates on a basket of Vietnamese stocks. Calling the Vietnamese stock market "Mickey Mouse" would have been a compliment in 2009. You could only go one way per trading day on a particular stock. If you bought, you could only continue buying intraday, you could not sell. There was a 5% limit up and down each day; any stock in the news would hit either of those limits immediately in the morning auction. That meant you had to fax your orders into the broker and make sure you got in the queue as early as possible. Unfortunately, sometimes your broker front ran you because they knew you had size to trade in a particular stock. My boss encouraged me to take a view on the market. Given the structure of the market, if I took a position, I was stuck with it for a while. And when I wished to exit, I would have to sell into strength or buy weakness to get out of a long or short position respectively. When I became an ETF market maker, I routinely traded other "Mickey Mouse" markets like India, Indonesia, and China just to name a few. These markets were and still are marked by snap decisions (often overnight) by regulators which adversely affect traders who aren't politically connected. I became obsessed with how to get out of any position: a trait which serves me well in the crypto markets. My first boss taught me that everything was my fault as the trader. Obviously there are many things outside of your control, but if you approach your profession with that mentality you attempt to quantify and mitigate all of the risks within your control. The point of my sermon is that most VC investors do not approach their investments with this mentality. Due to the illiquidity of their investments, they can mark to fantasy, show amazing returns on paper, and get paid. The only secondary market validation of their investments is the next round of fundraising, which can easily always go up if you get your boys to go in along with you. You pump my bags, I’ll pump yours. VC investors loved ICOs in the bull market because they could point to an objective and liquid secondary market valuation. They used these eye-popping returns to raise bigger shitcoin funds in 2017, and early 2018. However, objectivity and transparency is undesirable when your shitcoin portfolio is down by a minimum of 50%. Depending on the vintage of the fund, it might be up, however, most money was raised and invested in 2H2017 to 2H2018. That means the suckers who invested recently are most likely down. The VC investor who has never suffered the vagaries of the market is as green as the noob who thinks he or she can go from 1 to 100 Bitcoin in a few trading days. They don’t have the mental strength to cut positions to limit further losses, or backup the truck and buy opportune dips even though they are down. More importantly, LPs can now see an objective last price for a particular token, and can’t be hoodwinked. They will attempt to be a Monday morning quarterback, and that only adds to the VC investors’ anxiety. At a certain point, they go "fuck it", and dump everything they can. It is this moment, that Ether goes from a 3-digit to a 2-digit shitcoin. Concentration Risk Before the SAFT and other private token placement monstrosities, the majority of money was raised from retail token punters. Now that projects are scared of federal pound-me-in-the-ass prison, they mostly only accept accredited investors. Accredited investors always had a way into new technology projects due to their wealth and access. This pool of investors is also highly concentrated. The number of funds that can spray $1 to $5 million into every vapourware project that agrees with their sector thesis is limited. However, these gatekeepers control a vast ocean of institutional money. Softbank’s Vision Fund is $100 billion. So instead of a more dispersed pool of investors, the number of token holders of projects raising serious money decreased dramatically starting in mid-2017. The liquidation preferences went from dispersed along a price curve, to very concentrated. VCs all compete with each other for the same pools of capital. These pools of capital all employ professionals from the same schools, and who passed the same financial certification tests. Therefore they will buy together and sell together. The biggest risk in the money management game is career risk. Better to lose money with everyone else, than lose money alone. The latter will cost you your job. And there ain’t no other profession that pays as well as financial services relative to the skills needed to be a practitioner. I remember one of my besties trying to argue he had skills because he could calculate the NAV of an ETF using the sumproduct() function on his excel sheet. #Delusional. The herd of token VC punters will all decide to sell at the same time. If you don’t sell, and the market continues falling, you lose your job. So everyone sells simultaneously but who can eat all that shit? Retail cannot because the deals would never have gotten so large without institutional money. So we gap lower, first on tokens, then on the mothership Ether. I don’t know what that tipping point will be, but in hindsight, it will be obvious when the capitulation occurs. There are those who believe that a sustainable token economy can exist. But they won’t be buying at these levels. Sub-$100 takes us back to Spring 2017 levels. At those depressed prices, the carrion is ripe for ingestion. $5,000 Bitcoin, A Local Bottom Bitcoin is now down close to 70% from the $20,000 all time high. The bear market is here. What level is the bottom, and when? My hunch tells me that similar to the 2015 bear market, the price at which the average miner turns off their ASICs will be the local bottom. During the last bear market that range was $200 - $250. While the price languished, various high profile miners went under. KnC and Spondoolies were two casualties. Most surprisingly, in March of 2015 the difficulty actually dropped. That was 7 months before the price ticked up, but it illustrates the amount of pain that miners faced. Now assuming there is no positive catalyst, like an SEC approved ETF to save us, at what price do we bottom? I believe the key consideration will be when miners begin to shut off their machines; and hence the question, what is the marginal cost of a Bitcoin? A few days ago I chatted with one of the largest mining facility operators globally. He told me that the average electricity cost of Chinese miners all-in is 6 to 7 cents kWh. At that level, he estimated that at a price of roughly $5,000 is when miners would begin altering operations and look to move machines to cheaper areas. At $3,000 to $4,000, these miners would begin to shut off machines completely. However, these rough anecdotes assume that miners using 7nm chips either do not work efficiently well, or will not be sold until 2019. Bitmain, Dragonmint, and GMO are all racing to build such miners. The firm that successfully brings a 7nm miner to market, will absolutely lower the marginal cost of the average mining farm, and decimate the older generation mining rigs. Price leads the hashrate and the final confirmation of the breakeven level will be whether difficulty actually drops. That would require a sustained period of price weakness to shutter enough miners for the hashrate to fall. When in Doubt, IPO Everyone is talking about the Bitmain IPO. Running a public company once you get past the initial ego boost is sub-optimal. One of the main reasons why companies IPO is for long-term investors, employees, and management to cash out at a high multiple. Companies also IPO to raise large amounts of capital to fund expansion efforts. As a public company, the scrutiny on operations is never ending. Say the wrong thing and you could be in court for years. Do you think Mark Zuckerberg likes being publicly lambasted by know-nothing congressmen and women? If Tesla didn’t need to raise so much money by selling equity in the public markets, I’m sure Elon would have kept it private. Bitmain is crypto’s most valuable and most profitable company. If the figures publicised are taken as gospel, then they generated over US$2 billion of profit in 2017. Unlike many manufacturers, Bitmain’s clients pre-pay their orders. The only pre-sale outlay is their down payment for chips with their main foundry. Bitmain has a cash cow business but now wants to IPO. The company does not need capital to fund or expand its business. They have plenty of free cash flow to direct towards R&D. They don’t need to acquire distribution channels by slashing prices since they hold the largest market share. The only conclusion is that they believe the medium-term profitability of mining will decline sharply. While Bitmain attempts to sell the market on their AI chip growth strategy, the truth is they are a crypto company through and through. Crypto companies trade at massive price to earnings discounts against similar companies in comparable industries. I speculate that the crypto exchanges that sold this year, Poloniex and Bitstamp, traded at 4x to 6x P/E. [The Bitstamp sale has not been confirmed, but various crypto news outlets reported that a sale likely happened in early 2018]. Public exchanges like ICE and the CME, trade 20x to 30x P/E. During a massive crypto bull market like in 4Q2017, the public markets might pay up, but not when Bitcoin is down 70%. I further speculate that Bitmain is attempting to top-tick the market before mining profitability slides dramatically. Management takes the view that the price will likely continue down towards $5,000, and possibly below. At these prices sales of their flagship S9 miner will plummet. An IPO allows them to crystallise gains now, and become cash-rich during a bear market. With this war chest, they can acquire some of their less financially well-endowed competitors. When the market turns, they will be in pole position with no challengers in sight. Upside Risks - SEC Approved ETF In late September, the SEC will rule on a number of ETF applications. Will they cave to popular pressure? Crypto, even while down 70%, is way more exciting than any other asset class. The exchanges, asset managers, and white-shoe investment banks all want in. The only inhibiting factor is regulators. With enough K-street lobbyists, you can convince a US member of congress that the world is flat and the earth is the center of the universe. If the crypto lobby prevails on the SEC, and an ETF is approved, watch out for the mother of all short squeezes. 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
-
style="margin: 0;color: black;"> View this email in a browser BitMEX Crypto Trader Digest Aug 10, 2018 From the desk of Arthur Hayes Co-founder & CEO, BitMEX From The BitMEX Research Desk Tether: Puerto Rico financial data quarterly update Abstract: Following our earlier research pieces on Tether, financial information from Q1 2018 has been released by the financial regulators in Puerto Rico, providing more evidence of the impact of Tether. In addition to this, a source close to Tether has confirmed to us that the speculation in our initial report is correct. After our earlier speculation that Noble Bank in Puetro Rico was Tether’s primary reserve bank, a few months later in May 2018 Bloomberg released an article further substantiating our claims. As Bloomberg put it: "According to three people with knowledge of the matter, Noble Bank International, based in San Juan, Puerto Rico, took over banking duties for Bitfinex last year." In addition to the above, BitMEX Research has also now spoken to people close to Tether, who have also confirmed the reliability of most of the claims in our February 2018 report. Our initial discovery was based on the disclosure of data from the financial regulator in Puerto Rico, who have recently provided the latest update, for the quarter ended March 2018. In our view, the data continues to support our initial speculation. The bitcoin flash crash to $0.01 in June 2011 Abstract: We look at the events surrounding the bitcoin price rally in June 2011 to $32 and the following temporary flash crash down to $0.01, on the MtGox exchange. We look at the incompetence of MtGox and examine the causes of the crash. We then look at the political battle and uncertainty which occurred in the aftermath of the crash. Bitcoin price from May 2011 to 18 June 2011 (Source: YouTube, MtGox, BitMEX Research) Why Quanto? The USD is the biggest shitcoin out there. However, all assets are priced against it. Crypto is not immune. The Bitcoin / USD price is the most important cross in the crypto asset universe. Moving into the altcoin space, the most active crosses are against the USD as well. To replicate our inverse style derivatives on an altcoin / USD cross requires us to accept the altcoin in question as collateral. The next natural altcoin BitMEX could accept is Ether. However, to fit into our multi-sig security process, it requires us to use/code an Ethereum multi-sig smart contract. Unfortunately, due to various exploits of popular Ethereum multi-sig smart contracts, we never felt comfortable custodying Ether. Rule 1, to infinity minus 1, of operating a crypto trading platform, is don’t lose the crypto. Anything we can do to limit our risk surface area we must do. Therefore, taking Ether as collateral given the current state of the protocol is a non-starter. Given these constraints, we cannot launch an Ether margined inverse ETHUSD contract. An inverse style contract is one where the margin and PNL currency is denominated in the home currency (ETH), the quote currency is denominated in the foreign currency (USD), and the contract value is a nominal amount of the foreign currency (USD). Inverse Contract Example: XBTUSD Swap Margin Currency: XBT (Bitcoin) Quote Currency: USD Contract Value: $1 In order to offer risk on ETH/USD where Bitcoin is used as the margin and PNL currency, the quanto derivative type is necessary. From Wikipedia: A quanto is a type of derivative in which the underlying is denominated in one currency, but the instrument itself is settled in another currency at some rate. Such products are attractive for speculators and investors who wish to have exposure to a foreign asset, but without the corresponding exchange rate risk. Quantos are exotic derivatives that can move non-linearly with respect to the underlying. However, they are very beneficial for speculators and hedgers in search of liquidity, where they can post margin in a currency in which they feel comfortable. In my time as a delta one trader, we routinely traded USD quanto derivatives to get exposure to local currency futures contracts in countries that restricted the trading ability of foreigners (e.g. India and Taiwan). The recently launched BitMEX ETHUSD Perpetual Swap is a quanto derivative. The contract pays out 0.000001 XBT per 1 USD. This means that the Bitcoin multiplier is constant regardless of the nominal USD price of ETH. This is great for speculators, the Bitcoin return varies linearly with respect to the ETHUSD price. For those using this contract to hedge the ETH/USD cross or market makers, it gets a bit trickier. I will get into the mechanics of hedging and market-making later in this newsletter. Quanto Worked Example Spreadsheet We have created a spreadsheet for users to download and work through some of the below use cases that can be accessed here. Quanto for Speculators Speculators care about obtaining exposure to risk. How they get that exposure if they can get in and out cheaply is secondary. If BitMEX is able to create a liquid market for Bitcoin quanto’ed derivatives, speculators will flock to them. As I previously explained in “Why Quanto?”, in order for BitMEX to offer ETH/USD risk, we had to quanto into Bitcoin. This post will explore the concepts speculators care about. For all the below examples we will use the following assumptions: Contract: ETHUSD Multiplier: 0.000001 XBT per 1 USD Contracts: 10,000 Contract Value The most important aspect to a speculator is the contract’s payoff function. Since we are speculating on the ETH/USD price, ideally the contract’s Bitcoin value should increase and decrease in a linear fashion with respect to the ETH/USD price. I assume the speculator denominates their profit in Bitcoin (XBT) terms. Therefore the value of Bitcoin in USD terms at a particular ETH/USD price is irrelevant. Put simply, the speculator wants to use Bitcoin as a margin to earn more Bitcoin. The above chart illustrates that at different ETHUSD values, the XBT value of the position changes linearly. That is exactly what the speculator desires. XBT Value = ETHUSD Price * Multiplier * # Contracts Calculating Margin How is the amount of Bitcoin margin calculated? The initial margin for the ETHUSD contract is 2%, or 50x leverage. Initial Margin (IM) = 2% * XBT Value If you enter the trade at an ETHUSD Price of $500, this is your initial margin requirement: IM = 2% * $500 * 0.000001 XBT * 10,000 = 0.10 XBT The next important consideration is what is your liquidation price. That is determined by the maintenance margin. The maintenance margin for the ETHUSD contract is 1%. If the underlying ETH/USD spot price declines by 1%, you will be liquidated. Calculating Profit and Loss (PNL) The PNL is denominated in Bitcoin. In Bitcoin terms, the PNL changes linearly with the ETHUSD price. If the contract goes up 1%, your Bitcoin PNL also goes up 1%. The chart above illustrates that. XBT PNL = (ETHUSD Exit Price - ETHUSD Entry Price) * Multiplier * # Contracts In the above example, if the ETHUSD price moves from $500 to $600, this is the XBT PNL: XBT PNL = ($600 - $500) * 0.000001 XBT * 10,000 = 1 XBT Number of Contracts To get a certain amount of Bitcoin exposure requires a little math. The following describes how to calculate how many contracts it takes to equal a desired Bitcoin notional. Contracts = XBT Notional / [ ETHUSD Price * Multiplier ] If you want 100 XBT of risk, how many contracts of ETHUSD must you trade: Contracts = 100 XBT / [ $500 * 0.000001 XBT ] = 200,000 Contracts The quanto structure satisfies the desires of a Bitcoin-based speculator. The major components that speculators care about all vary linearly with respect to the ETH/USD price. The relative rich or cheapness of the contract vs. the underlying is not a major concern if the contract is liquid. The factors that govern whether the contract will be at a premium or discount will be explored in the subsequent piece. These considerations heavily depend on how to hedge a quanto derivative from first principles. The hedging of the contract is where the non-linear effects matter. Hedging a Quanto Perpetual Swap Hedging a quanto perpetual swap is not straightforward. The added component of correlation risk between two crypto assets complicates things. I will take things from first principles, then provide a more general formula. Assumptions: Symbol: ETHUSD Multiplier: 0.000001 XBT ETHUSD Price: $500 .BETH (ETH/USD Spot Index): $500 .BXBT (XBT/USD Spot Index): $10,000 Scenario 1 - Short ETHUSD and Hedge You are lifted for 100,000 contracts of ETHUSD. First let’s compute your currency exposures: XBT Value = $500 * 0.000001 XBT * -100,000 = -50 XBT ETH Value = XBT Value / [ .BETH / .BXBT ] = -1,000 ETH Next you hedge your ETH/USD exposure by purchasing 1,000 ETH at the spot price. Assume you can match the current .BETH Index price on your purchase. You have hedged your underlying currency exposure. At this point your exposure is perfectly hedged. However, as the price of ETHUSD changes, your PNL on ETHUSD will be in XBT, while the PNL on your ETH hedge will be in USD. Let’s look at two extreme examples. Example 1: .BETH Rises and .BXBT Falls .BETH and ETHUSD rises to $750 .BXBT falls to $5,000 ETHUSD PNL = (ETHUSD Exit Price - ETHUSD Entry Price) * Multiplier * # Contracts = -25 XBT, USD Value -$125,000 ETH Spot USD PNL = (.BETH Exit Price - .BETH Entry Price) * # ETH = $250,000 Net USD PNL = ETHUSD XBT PNL in USD + ETH Spot USD PNL = +$125,000 In this example the correlation between the USD value of XBT and ETH is -1. They moved in a perfectly negatively correlated fashion, and you made money. Example 2: .BETH Rises and .BXBT Rises .BETH and ETHUSD rises to $750 .BXBT rises to $15,000 ETHUSD PNL = -25 XBT, USD Value -$375,000 ETH Spot USD PNL = $250,000 Net USD PNL = -$125,000 In this example the correlation between the USD value of XBT and ETH is +1. They moved in a perfectly positively correlated fashion, and you lost money. The short ETHUSD position + Hedge profited when correlation fell, and lost when the correlation rose. Due to the flat ETHUSD vs. .BETH basis, the entry price assumed a correlation of zero between the two cryptos. Scenario 2: Long ETHUSD and Hedge You are lifted for 100,000 contracts ofETHUSD. First let’s compute your currency exposures: XBT Value = $500 * 0.000001 XBT * 100,000 = 50 XBT ETH Value = XBT Value / [ .BETH / .BXBT ] = 1,000 ETH Next you hedge your ETH/USD exposure by shorting 1,000 ETH at the spot price. Assume you can match the current .BETH Index price on your purchase, and there is no cost to borrow ETH for this short sell. You have hedged your underlying currency exposure. At this point your exposure is perfectly hedged. However, as the price of ETHUSD changes, your PNL on ETHUSD will be in XBT, while the PNL on your ETH hedge will be in USD. Let’s look at two extreme examples. Example 1: .BETH Rises and .BXBT Falls .BETH and ETHUSD rises to $750 .BXBT falls to $5,000 ETHUSD PNL = 25 XBT, USD Value $125,000 ETH Spot USD PNL = -$250,000 Net USD PNL = -$125,000 In this example the correlation between the USD value of XBT and ETH is -1. They moved in a perfectly negatively correlated fashion, and you lost money. Example 2: .BETH Rises and .BXBT Rises .BETH and ETHUSD rises to $750 .BXBT rises to $15,000 ETHUSD PNL = 25 XBT, USD Value $375,000 ETH Spot USD PNL = -$250,000 Net USD PNL = $125,000 In this example the correlation between the USD value of XBT and ETH is +1. They moved in a perfectly positively correlated fashion, and you made money. The short ETHUSD position + Hedge profited when correlation rose, and lost when the correlation fell. Due to the flat ETHUSD vs. .BETH basis, the entry price assumed a correlation of zero between the two cryptos. The below table summaries the two scenarios: Time Horizon The correlation between XBT and ETH is not static. The longer you hold a hedged swap position, the more chance that the correlation regime you expect based on the recent past, will change. Unlike a futures contract, the ETHUSD swap has no expiration date. Therefore your quanto risk is specific to your time horizon. For market makers who are in and out quickly, the quanto effect is negligible. For cash and carry market makers who hold a position for an extended period of time to capture funding, the quanto effect can destroy one’s PNL. Covariance Many market makers will not be satisfied leaving their correlation risk unhedged. They will constantly hedge their PNL on the BitMEX and spot leg of their portfolio. Depending on the XBT and ETH volatility, and their correlation, the covariance will determine whether the hedging of PNL positively or negatively impacts your overall profits. If both assets are highly volatile and the correlation is moving in or out of your favour, your gains or losses from hedging the PNL are amplified. We are in uncharted territory. In a few month’s time, I will observe the past data and attempt to calculate what portion of the funding is attributed to market makers pricing in a quanto risk, and what portion is due to the interest rate differentials between ETH and USD. 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