Community Get LBRY Use LBRY on your computer or phone Frequently Asked Questions Got questions? We probably have answers! News The latest from the LBRY team and community Chat Talk with LBRY fans and team members, right now Blockchain Explorer Lookup transactions and claims on the LBRY blockchain Creators Publish to LBRY Make your content available to everyone using LBRY YouTube Partner Program Sync your content instantly and start earning Creator Questions Frequently asked questions and answers for creators lbry.fund Content Funding Get support for your latest creation Company The Team Meet the people building LBRY and why they're doing it Contact Have a question or want to connect with the LBRY, Inc. team? Credit Reports Quarterly reports on LBRY's funds Developers LBRY.tech Find a technical overview, specification, APIs, and more The Spec Read a formal technical description of how LBRY works GitHub All LBRY code is public and open-source Contributor's Guide Become a contributor to the LBRY project Menu Download

HF1903: A Hard Fork on March 21st, 2019

Alex Grintsvayg • Feb 19 2019

What's Changing

The LBRY blockchain will experience a hard fork (named HF1903) on March 21st to fix the way names are compared and claims are grouped.

When content is published to LBRY, the publisher selects a human-readable name to point to their content. Multiple claims for the same name compete with each other, and the claim with the most credits supporting it determines what content is visible at the name. In order to use the system correctly, publishers need clarity on how the name they choose affects the visibility of their content.

At present, every different combination of letters and symbols constitues a unique name. Unicode supports many different alphabets and there are a lot of symbols that are defined as different but that look very much the same. For example, Amélie and Amélie look like the same word at first glance. But your computer sees the first as having an é (\xc3\xa9 in UTF8) character, while the second has a normal e followed by a combining accent, which is shown as a single accented character (\x65\xcc\x81 in UTF-8). Lower-case and upper-case letters are also treated as distinct, which creates even more gotchas.

To prevent such confusion, the proposed fork will treat similar-looking names as the same when deciding what name a claim is competing for. When checking if two words correspond to the same name, the words will be normalized using standard Unicode string normalization (in NFD mode) and then lowercased using case folding. The original text and casing will still be preserved and used for display purposes, but all comparisons will be done on normalized text.

HF1903 will activate on the mainnet at height 539940, which should take place on March 21st, 2019. The testnet activation will happen today, at block 993380. Regtest activates HF1903 at height 250.

Please note that the block rewards, token distribution, hash algorithms, etc. are all staying the same. Normalization is the only change that affects consensus.

What You Should Do

For most people, nothing needs to be done. The fork will take effect transparently and won't change your experience of LBRY.

If you are running a full node, upgrade to the latest version of lbrycrd as soon as possible. Pre-built binaries are available on the releases page. You will need version 0.12.4 or higher.

If you have published content to LBRY, there is a very small chance that the fork will cause your claims to experience more competition, and they may stop being the highest-amount claims for their names. This affects less than 0.2% of claims (~1000 out of 640,000).

We will post updates about HF1903 to this page. If you want to be notified of news about this fork and future forks, please join the fork mailing list.

Fork Details

The fork has been discussed at length in this pull request, as well as the following issues: 1, 2, 3, 4. Please review the details and the code if you are able to. We pay significant bounties for any bugs found in blockchain code, especially fork-related code. Email brannon@lbry.io if you wish to discuss.

Photo of Alex Grintsvayg
Alex Grintsvayg · · ·

Alex, AKA Grin, drives technology development at LBRY and manages infrastructure growth. Grin has previously designed and managed scalable infrastructure solutions for SaaS firms. Bringing LBRY to mainstream scale is his primary goal. Alex holds degrees in Computer Science and Psychology from Rensselaer Polytechnic Institute.