Giter Site home page Giter Site logo

stittshappening / bitcoinxt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bitcoinxt/bitcoinxt

0.0 2.0 0.0 42.63 MB

License: MIT License

Shell 0.90% QMake 0.04% Python 8.72% Groff 0.40% Makefile 1.33% C++ 75.94% C 11.35% HTML 1.02% CSS 0.02% Objective-C++ 0.15% Protocol Buffer 0.05% Java 0.04% Objective-C 0.04%

bitcoinxt's Introduction

Want to get XT? Download it from https://bitcoinxt.software

Bitcoin XT

Bitcoin XT is a patch set on top of Bitcoin Core. It implements various changes which you can read about on the website:

https://bitcoinxt.software/patches.html

XT uses the same data directories as Core so you can easily switch back and forth. You will keep and continue updating the same block chain.

Bitcoin XT downloads are code signed and are built reproducibly using gitian. If you use it please sign up to the announcement mailing list so you can be reminded of new versions.

Development process

To propose a patch for inclusion or to discuss Bitcoin development in general, you are welcome to use the mailing list.

The repository has a similar structure to upstream, however, because patches are constantly rebased every release has a branch including the minor ones. XT releases use the upstream version with a letter after them. If two releases are done based on the same upstream release, the letter is incremented (0.11.0A, 0.11.0B etc).

We have a manifesto that lays out things we believe are important, which you can read about here:

https://bitcoinxt.software/

About double spend relaying

You can view a dashboard analysing observed double spends that is based on this work. Double spends are relayed by nodes probabilistically to minimise DoS risk: you cannot force the network to use up all its available bandwidth by double spending the same output over and over again due to a rate limiting Bloom filter.

Currently, support in wallets for showing double spends in the UI is inconsistent. We hope that double spend relaying will make it easier for developers to deploy this feature.

Note that double spend relaying does not prevent double spending, as in the case of a network race you cannot know which transaction will make it into the next block. Additionally double spending by being a malicious miner or exploiting one that isn't following the normal network rules is still possible without triggering an alert. However the feature is still useful for quickly detecting certain types of attack and once you know about the attempted double spend, as a seller you can refuse to process the transaction. Other types of double spending attack are either detectable or harder to pull off, so by increasing information available to wallets the bar for engaging in payment fraud is raised.

Double spend relaying was developed by Gavin Andresen and Tom Harding.

About UTXO set queries

Bitcoin XT supports BIP 64, and so it supports looking up entries in the UTXO database given an outpoint (a transaction id and output index pair). This can be useful for contracts based applications. An example follows.

The Bitcoin protocol allows people to collaborate on building transactions in various ways. One of those ways (the SIGHASH_ANYONECANPAY flag) allows people to create partially signed invalid transactions that cannot be redeemed unless they are combined with other similar transactions, allowing for the creation of a decentralised assurance contracts: usually better known as Kickstarter style all-or-nothing crowdfunds. The protocol has been implemented in a specialised GUI wallet application called Lighthouse, which makes creating projects and pledging to them with partial Bitcoin transactions easy.

Because a pledge is an invalid Bitcoin transaction, it cannot be redeemed immediately and the money remains under the control of the pledger. By double spending the pledged outputs,they can revoke their pledge and take back the money. This is useful if it looks like the project isn't going to meet its goal any time soon, or if the pledger suddenly needs the money for something else. Thus people collecting pledges need to know whether a pledge can actually be redeemed or not. If a pledge is double spent after being submitted then this can be detected by watching the block chain, but if the pledge was revoked before the project became aware of it, or was simply never valid to begin with, then that doesn't work. Instead the receiver of the pledge needs to check the ledger directly.

The getutxo p2p protocol message allows clients to request the look up the contents of ledger entries. The data that is found there can then be combined with the submitted pledge to check that the pledge is correctly signed (i.e. not attempting to spend someone elses money).

Possible future features

Ideas for useful protocol upgrades are tracked in the issue tracker.

Bitcoin XT is intended to be compatible with crowd funded development. If you would like to experiment with a (non consensus changing) protocol upgrade, please discuss it on the mailing list first. You should be able to get a clear decision on the concept and design before starting on the implementation.

bitcoinxt's People

Contributors

codeshark avatar cozz avatar dexx7 avatar dgenr8 avatar domob1812 avatar dooglus avatar eniks avatar fanquake avatar gavinandresen avatar gmaxwell avatar jonasschnelli avatar jtimon avatar kdomanski avatar laanwj avatar luke-jr avatar mikehearn avatar morcos avatar muggenhor avatar non-github-bitcoin avatar paveljanik avatar petertodd avatar rebroad avatar sdaftuar avatar sdkfjlsfjlskdfjlsdjflsjf avatar sipa avatar super3 avatar thebluematt avatar theuni avatar wizeman avatar wtogami avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.