3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-13 18:55:52 +00:00

2613 Commits

Author SHA1 Message Date
Ross Nicoll
d3d11df6d7 Add BIP 34 enforcement
This patch primarily enforces block height being present in the coinbase
transaction input, altough it introduces a number of other fixes and
changes to support this.

* VersionTally now returns the number of blocks at or above a version, rather than just at, to enable forward-compatible support (i.e. v3 blocks include all v2 block tests)
* Block version is now explicitely provided in most tests which generate blocks, in order to ensure correct tests are applied
* Block height is now used when generating coinbase transactions
* Added support for the chain parameters to determine which tests apply to a block, so altcoins can override the defaults if needed.
* Added initial checks ahead of full BIP 66 validation checks
2015-08-27 15:12:39 +02:00
Oscar Guindzberg
c5727d12fa Fix AbstractBlockChain comments 2015-08-27 15:08:25 +02:00
Andreas Schildbach
eec6eebc68 MonetaryFormat: add message to non-obvious precondition. 2015-08-27 11:15:12 +02:00
peacekeeper
5dcf643975 A transaction output may have multiple OP_RETURNs. 2015-08-26 12:03:41 +02:00
Oscar Guindzberg
cf980bc68c DeterministicKeyChain.toString(): remove unnecessary check to show the xpub. 2015-08-26 11:58:34 +02:00
ollekullberg
ebc888d282 Name change: ProtobufParser → ProtobufConnection, StreamParser → StreamConnection 2015-08-26 11:07:22 +02:00
Andreas Schildbach
74af6a2c8a Set user agent for HTTP discovery. 2015-08-25 17:50:30 +02:00
Andreas Schildbach
5bd0623a28 Convenience method PeerGroup.setRequiredServices() for connecting only to peers that can serve specific services 2015-08-25 12:44:36 +02:00
Andreas Schildbach
72763f2711 Add MultiplexingDiscovery.forServices() that builds a suitable set of peer discoveries for
(optional) a set of desired services.
2015-08-25 12:44:36 +02:00
Andreas Schildbach
1be65483b4 Adds a services bitmask to PeerDiscovery.getPeers(), so we can query HTTP seeds for specific services.
As this is a breaking change to the API, it removes IrcDiscovery (there is no point in keeping it).
Also updates OkHttp to 2.4.0.
2015-08-25 12:44:35 +02:00
Andreas Schildbach
d4c7ce5c77 wallet-template: Fix warning about missing @Nullable annotation. 2015-08-24 18:54:00 +02:00
Andreas Schildbach
a12ec7f49d Fix Tor support does not use all available HTTP seeds. 2015-08-24 18:54:00 +02:00
Mike Hearn
2c8ffc84ec Peer: Lower log priority of message about not being configured with a block chain.
Using Peer[Group] to download blocks with no block chain is reasonable and printing a message every time a block is received is annoying.
2015-08-24 16:58:11 +02:00
Andreas Schildbach
021b0d76fe Add httpseed.bitcoin.schildbach.de to HTTP seeds. 2015-08-22 15:20:12 +02:00
Oscar Guindzberg
a8edae0475 MarriedKeyChain: Remove redundant check. 2015-08-20 09:42:45 +02:00
Oscar Guindzberg
6c3b545b0c DeterministicKeyChain: Rename "externalKey" and "internalKey" attribute
names to "externalParentKey" and "internalParentKey".
2015-08-20 09:39:24 +02:00
Oscar Guindzberg
fe7b703237 Wallet: Rename attribute "keychain" to "keyChainGroup". 2015-08-20 09:37:30 +02:00
Andreas Schildbach
200f2368c6 AddressFormatException: Make unchecked. Base58 strings are rarely typed manually these days. 2015-08-08 16:33:29 +02:00
Ross Nicoll
ecbd021167 Refactor listener interfaces.
Refactor listener interfaces into their own package.
Split listener interfaces into smaller interfaces.
Make abstract implementations actually abstract.
Rearrange methods for adding listeners to put executor first.
2015-08-08 15:37:46 +02:00
Andreas Schildbach
bd080ac5e4 BuildCheckpoints: Print time of checkpoint blocks. 2015-08-08 15:20:32 +02:00
Andreas Schildbach
7f2645fe16 BuildCheckpoints: Add option for peer to connect to. 2015-08-08 15:20:15 +02:00
Kalpesh Parmar
7a02d2e598 Database (stores MySQL/Postgres/H2) column names/objects lower case consistency fix. 2015-08-08 11:59:07 +02:00
Andreas Schildbach
98b54d78c1 If wallet is watching, mention this in the dump. 2015-08-08 11:23:41 +02:00
Andreas Schildbach
7f8a5ed182 Print human readable time when initializing a new block store with a checkpoint. 2015-08-08 10:51:01 +02:00
Andreas Schildbach
e978ff4997 Add help text to BuildCheckpoints. 2015-08-07 17:20:22 +02:00
Andreas Schildbach
0e7819d1bf Add build-checkpoints shell wrappers. 2015-08-07 17:01:11 +02:00
Andreas Schildbach
16465d9310 Fix licenses for tools and examples. 2015-08-07 16:45:18 +02:00
Devrandom
044c98e096 Support testnet and regtest in BuildCheckpoints tool. 2015-08-07 13:18:53 +02:00
Mike Hearn
5f3d3a7f84 Wallet: optimization for cases where (e.g. due to spam attacks) there are tons of relevant transactions in a block. 2015-08-05 12:42:49 +02:00
Mike Hearn
09f13f7956 Tighten the exception SPVBlockStore throws when the chain file is locked. 2015-07-30 17:31:25 +02:00
Devrandom
041b51f8e6 allow unmarried chains to have P2SH addresses 2015-07-29 12:38:22 +02:00
Andreas Schildbach
fa7af642ee BitcoinSerializerTest: Make more readable. 2015-07-28 22:15:47 +02:00
Andreas Schildbach
7744a00629 Remove lazy parsing of messages.
In particular:

* Message.parse(): is now always called once, in the Message constructor
* Message.parsed: removed
* Message.parseLite(): folded into Message.parse()
* Message.maybeParse(): removed
* Message.ensureParsed(): removed
* Message.isParsed(): removed
* Block.parseHeader(): folded into Block.parse()
* Block.parseTransactions(): folded into Block.parse()
* Block.maybeParseHeader(): removed
* Block.maybeParseTransactions(): removed
* Block.ensureParsedHeader(): removed
* Block.ensureParsedTransactions(): removed
* Block.isParsedHeader(): removed
* Block.isParsedTransasctions(): removed
* MessageSerializer.isParseLazyMode(): removed
* BitcoinSerializer.parseLazy: removed
* BitcoinSerializer.getSerializer(): parseLazy parameter removed
* LazyParseException: removed
* LazyParseByteCacheTest: renamed to ParseByteCacheTest
2015-07-28 22:14:59 +02:00
Mike Hearn
d753d28ba5 Wallet: take key chain lock not only wallet lock in getWatchedOutputs().
Flagged by the IntelliJ Inspector static analysis engine.
2015-07-28 20:59:03 +02:00
Andreas Schildbach
b7c24c6196 Wallet: Fix not removing unspent transaction outputs when clearing transactions.
Adds very basic unit test for resetting wallets.
2015-07-28 20:50:20 +02:00
Andreas Schildbach
bee75f8d36 TestNet3Params: Fix missing assignments for majorityEnforceBlockUpgrade, majorityRejectBlockOutdated and majorityWindow. 2015-07-28 19:07:01 +02:00
Ross Nicoll
6f03669fbd Enforce block version supermajority for BIP 66 onwards. 2015-07-28 12:55:54 +02:00
Mike Hearn
5a9bd2d797 Better README formatting 2015-07-28 12:43:30 +02:00
Mike Hearn
4543be4102 Add IRC button to README
Idea from @bumi
2015-07-28 12:42:30 +02:00
Ross Nicoll
12602650ce Modify data object serialization/deserialization to provide extension hooks
Make headerParsed, transactionParsed, headerBytesValid and transactionBytesValid protected so subclasses in the same package can access them.

Add constructor for use when a block is contained within another object (i.e. AuxPoW header)

Make headerParsed, transactionParsed, headerBytesValid and transactionBytesValid protected so subclasses in the same package can access them.

Add constructor for use when a block is contained within another object (i.e. AuxPoW header)

Add parseTransactions() method which takes in a payload offset, so block parsers can indicate that transactions do not start at byte 80.

Extract common interface from BitcoinSerializer to support alternative serializers, as well as dummy serializer for message classes which do not have their network parameters.

Thread BitcoinSerializer through messages in place of existing parseLazy and parseRetain properties.

Insert dummy serializer into message subclasses when deserialized by Java.

Replace calls to construct Block/Transaction classes from payloads, with calls to MessageSerializer, so alternative formats can be supported elegantly.

Make headerParsed, transactionParsed, headerBytesValid and transactionBytesValid protected so subclasses in the same package can access them.

Add constructor for use when a block is contained within another object (i.e. AuxPoW header)

Add parseTransactions() method which takes in a payload offset, so block
parsers can indicate that transactions do not start at byte 80.
2015-07-28 12:20:32 +02:00
Ross Nicoll
16a5e1d64b Javadoc format corrections 2015-07-28 12:09:32 +02:00
Chris
0f0c7baec9 Update javascript Tor example to reflect simplified handling of .onion addresses 2015-07-24 23:03:21 +02:00
Chris
8a2e742598 Connect bitcoinj to hidden services
This commit adds a few small modifications to PeerAddress to make it easier for
bitcoinj to connect to Tor hidden services when using the Orchid TorClient.
2015-07-24 23:03:15 +02:00
Jameson Lopp
d0416b7f0f Prevent null pointer exception if DNS seeds parameter is null. 2015-07-24 22:58:30 +02:00
Mike Hearn
30d2da2947 Remove BlockChainListener.isTransactionRelevant.
The optimisation this was meant to support ceased to be relevant a long time ago.
2015-07-23 17:28:03 +02:00
Devrandom
43b89f4678 strict mode for Context 2015-07-23 17:04:57 +02:00
Andreas Schildbach
c169325db7 Remove unused Message.checksum. 2015-07-23 16:38:40 +02:00
Andreas Schildbach
783dfc58d1 Remove Java serialization from...
* NetworkParameters,
* the entire Message hierarchy,
* Block,
* StoredBlock,
* StoredUndoableBlock,
* TransactionConfidence,
* UTXO,
* DeterministicHierarchy,
* MemoryFullPrunedBlockStore,
* KeyCrypterScrypt and
* Wallet

It was largely untested, in many cases not working any more and we don't see a reason for supporting it.
2015-07-23 16:27:25 +02:00
Andreas Schildbach
5c2eaf2654 Make Travis not run any tests that involve accessing the network. 2015-07-23 14:26:04 +02:00
Mike Hearn
551d01a625 BlockingClient: make it easier to manually start a read/write loop. 2015-07-22 22:27:19 +02:00