These 64 commits are when the Protocol Buffers files have changed:
Commit: | 3dd6d75 | |
---|---|---|
Author: | Ross Nicoll | |
Committer: | Ross Nicoll |
Bump dependency versions to match bitcoinj 0.16
The documentation is generated from this commit.
Commit: | 89598b5 | |
---|---|---|
Author: | Ross Nicoll | |
Committer: | GitHub |
Update to bitcoinj 0.16 (#60)
The documentation is generated from this commit.
Commit: | 982af3f | |
---|---|---|
Author: | Ross Nicoll | |
Committer: | GitHub |
Update to bitcoinj 0.15.7 (#44)
Commit: | bacc348 | |
---|---|---|
Author: | Ross Nicoll |
Restructure libdohj around Maven modules
Commit: | 049fa77 | |
---|---|---|
Author: | Ross Nicoll | |
Committer: | Ross Nicoll |
Add Dogecoin payment protocol support Add Dogecoin payment protocol support, and remove unused proto definition files.
Commit: | 5c973f6 | |
---|---|---|
Author: | Ross Nicoll | |
Committer: | Ross Nicoll |
Remove existing build pom.xml Added genesis block construction for Dogecoin network. Added difficulty calculations for Dogecoin network. Completed difficulty calculation code for Dogecoin. Added code for parsing Dogecoin blocks, and unit tests for same.
Commit: | 905629a | |
---|---|---|
Author: | langerhans |
Merge branch 'master' of https://github.com/bitcoinj/bitcoinj into rebase Conflicts: README.md core/pom.xml core/src/main/java/com/dogecoin/dogecoinj/core/DownloadListener.java core/src/main/java/com/dogecoin/dogecoinj/core/MemoryPool.java core/src/main/java/com/dogecoin/dogecoinj/core/NetworkParameters.java core/src/main/java/com/dogecoin/dogecoinj/core/PeerFilterProvider.java core/src/main/java/com/dogecoin/dogecoinj/core/PeerGroup.java core/src/main/java/com/dogecoin/dogecoinj/core/StoredTransactionOutput.java core/src/main/java/com/dogecoin/dogecoinj/core/Wallet.java core/src/main/java/com/dogecoin/dogecoinj/crypto/EncryptedPrivateKey.java core/src/main/java/com/dogecoin/dogecoinj/crypto/KeyCrypterScrypt.java core/src/main/java/com/dogecoin/dogecoinj/jni/NativeTransactionConfidenceListener.java core/src/main/java/com/dogecoin/dogecoinj/kits/WalletAppKit.java core/src/main/java/com/dogecoin/dogecoinj/net/FilterMerger.java core/src/main/java/com/dogecoin/dogecoinj/protocols/channels/IPaymentChannelClient.java core/src/main/java/com/dogecoin/dogecoinj/protocols/channels/PaymentChannelClient.java core/src/main/java/com/dogecoin/dogecoinj/protocols/channels/PaymentChannelClientConnection.java core/src/main/java/com/dogecoin/dogecoinj/protocols/channels/PaymentChannelClientState.java core/src/main/java/com/dogecoin/dogecoinj/store/BlockStore.java core/src/main/java/com/dogecoin/dogecoinj/store/FullPrunedBlockStore.java core/src/main/java/com/dogecoin/dogecoinj/store/H2FullPrunedBlockStore.java core/src/main/java/com/dogecoin/dogecoinj/store/PostgresFullPrunedBlockStore.java core/src/main/java/com/dogecoin/dogecoinj/testing/FakeTxBuilder.java core/src/main/java/com/dogecoin/dogecoinj/testing/TestWithPeerGroup.java core/src/main/java/com/dogecoin/dogecoinj/wallet/KeyChainGroup.java core/src/main/java/org/bitcoinj/core/DownloadListener.java core/src/main/java/org/bitcoinj/core/DownloadProgressTracker.java core/src/main/java/org/bitcoinj/core/MemoryPool.java core/src/main/java/org/bitcoinj/core/StoredTransactionOutput.java core/src/main/java/org/bitcoinj/core/TxConfidenceTable.java core/src/main/java/org/bitcoinj/core/UTXO.java core/src/main/java/org/bitcoinj/params/MainNetParams.java core/src/test/java/com/dogecoin/dogecoinj/core/AbstractFullPrunedBlockChainTest.java core/src/test/java/com/dogecoin/dogecoinj/core/BitcoindComparisonTool.java core/src/test/java/com/dogecoin/dogecoinj/core/FilteredBlockAndPartialMerkleTreeTests.java core/src/test/java/com/dogecoin/dogecoinj/core/FullBlockTestGenerator.java core/src/test/java/com/dogecoin/dogecoinj/core/PostgresFullPrunedBlockChainTest.java core/src/test/java/com/dogecoin/dogecoinj/core/WalletTest.java core/src/test/java/com/dogecoin/dogecoinj/crypto/ChildKeyDerivationTest.java core/src/test/java/com/dogecoin/dogecoinj/store/WalletProtobufSerializerTest.java core/src/test/java/com/dogecoin/dogecoinj/wallet/DefaultRiskAnalysisTest.java core/src/test/java/com/dogecoin/dogecoinj/wallet/DeterministicKeyChainTest.java tools/src/main/java/com/dogecoin/dogecoinj/tools/WalletTool.java wallettemplate/pom.xml wallettemplate/src/main/java/wallettemplate/Main.java wallettemplate/src/main/java/wallettemplate/MainController.java wallettemplate/src/main/java/wallettemplate/SendMoneyController.java
Commit: | 2b6db0d | |
---|---|---|
Author: | Mike Hearn |
Add an experimental HTTP based peer discovery engine that uses signed gzipped protocol buffers.
Commit: | df00b1e | |
---|---|---|
Author: | Jarl Fransson | |
Committer: | ollekullberg |
PaymentChannelClient support encrypted wallets. Store will upgrade forward gracefully.
Commit: | 53688cd | |
---|---|---|
Author: | Andreas Schildbach | |
Committer: | Andreas Schildbach |
Replace duplicated "current wallet version" constant by code that looks it up from the .proto itself.
Commit: | 3aac4b0 | |
---|---|---|
Author: | Andreas Schildbach | |
Committer: | Andreas Schildbach |
Rewrite most references to prodnet to mainnet in the comments. Does not change any actual code.
Commit: | cda772d | |
---|---|---|
Author: | langerhans |
Step 2: Move and refactor packages
Commit: | 22f0600 | |
---|---|---|
Author: | Devrandom | |
Committer: | Mike Hearn |
Refactor married keychains * move handling of following keychains into the leading keychain * move multisig threshold into the leading keychain * extract MarriedKeyChain from DeterministicKeyChain
Commit: | 0a6f901 | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Renamespace to org.bitcoinj away from com.google.bitcoin, as bitcoinj is no longer a Google project and being namespaced under com.google causes issues with Sonatype/Maven Central. To fixinate your code: find . -name '*.java' | xargs sed -i .bak 's/import com.google.bitcoin./import org.bitcoinj./g;s/import static com.google.bitcoin./import static org.bitcoinj./g'
Commit: | 03bacf4 | |
---|---|---|
Author: | Devrandom | |
Committer: | Mike Hearn |
Cache deterministic seed
Commit: | 5910a7f | |
---|---|---|
Author: | Kosta Korenkov | |
Committer: | Mike Hearn |
Married wallets: multisig threshold could be specified That allows to create multisigs like 3-of-3. If not specified, majority of keys will be required (2-of-3, 3-of-5 and so on)
Commit: | 63b4b17 | |
---|---|---|
Author: | Martin Zachrison | |
Committer: | Mike Hearn |
Payment channel API. Negotiation af the channel duration. 1. Client requests a time window, in seconds relative to now. 2. Server suggests an expire time, absolute time in seconds 3. Client accepts or rejects the servers proposal. Note that the IPaymentChannelClient.ClinentConnection interface has a new method. This will break old implementations. Let the client request the duration of a payment channel. Server can set allowed time window.
Commit: | 7d93055 | |
---|---|---|
Author: | Andreas Schildbach | |
Committer: | Andreas Schildbach |
Support for recording a memo with transactions. It can be used to record the memo of the payment request that initiated the transaction. Use the new SendRequest.memo register.
Commit: | 5be769d | |
---|---|---|
Author: | Andreas Schildbach | |
Committer: | Mike Hearn |
Support for applications recording exchange rate that was valid when transaction was sent. Use the new SendRequest.exchangeRate register. Includes a test.
Commit: | 4834fe6 | |
---|---|---|
Author: | Andreas Schildbach | |
Committer: | Mike Hearn |
Remove TransactionConfidence.workDone. It doesn't seem useful and was somehow buggy.
Commit: | f6b2fa5 | |
---|---|---|
Author: | Kosta Korenkov | |
Committer: | Mike Hearn |
Pluggable signers: simple local KeyBag signer Introduced pluggable signers notion. Instances of TransactionSigner could be added into the wallet, so that they subsequently applied to transaction to complete it. Existing signing code (Transaction.signInputs) was refactored into LocalTransactionSigner, which is always implicitly added to any wallet. Related pull request: #157
Commit: | eff9ac2 | |
---|---|---|
Author: | cyberzac | |
Committer: | Mike Hearn |
Support for bundling an optional info Protobuf ByteString with a PaymentAck message
Commit: | 1153192 | |
---|---|---|
Author: | cyberzac | |
Committer: | Mike Hearn |
Support for bundling an optional info Protobuf ByteString with an UpdatePayment message.
Commit: | 92544e9 | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Add ASSURANCE_CONTRACT_CLAIM/PLEDGE/STUB to the purpose field.
Commit: | fec6cbc | |
---|---|---|
Author: | Devrandom | |
Committer: | Mike Hearn |
Remove support for mnemonic-less keychains
Commit: | 2fae120 | |
---|---|---|
Author: | Devrandom | |
Committer: | Mike Hearn |
Fix BIP39 implementation
Commit: | 06755ae | |
---|---|---|
Author: | troggy | |
Committer: | Mike Hearn |
Married HD wallets: introduce shadow keychain notion Pull request: #99 Based on design notes: https://groups.google.com/d/msg/bitcoinj/Uxl-z40OLuQ/e2m4mEWR6gMJ
Commit: | a807994 | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Bump wallet version and add missing check (!) to detect wallets from the future. The absence/incompleteness of this feature had not been noticed before, and it means that old apps will fail to read HD wallets due to the new key enum value rather than a more sensible error (but there's still no chance of an old app accepting an HD wallet, so it should still be safe).
Commit: | 5638387 | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
HD wallets alpha preview
Commit: | 780be05 | |
---|---|---|
Author: | Andreas Schildbach | |
Committer: | Mike Hearn |
Save value of inputs when completing transactions and persist it to the wallet protobuf. Determine the fee of a transaction in case we have all the values.
Commit: | 03e8934 | |
---|---|---|
Author: | Andreas Schildbach | |
Committer: | Mike Hearn |
Update note about regenerating protobuf bindings.
Commit: | 268dfe2 | |
---|---|---|
Author: | Mike Hearn |
Add a simple API that lets you tag wallets with arbitrary string->byte[] pairs.
Commit: | 3966875 | |
---|---|---|
Author: | Kevin Greene | |
Committer: | Mike Hearn |
Adding support for processing PaymentRequests.
Commit: | da2e3e6 | |
---|---|---|
Author: | Devrandom | |
Committer: | Mike Hearn |
Support watching of scripts/addresses in wallet
Commit: | fc70f73 | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Payment channels: require a minimum payment to initiate. This is a (backwards incompatible) protocol change that prevents clients or servers getting into a situation where they have opened a channel that they then cannot close because insufficient value has been transferred. The server is allowed to specify the minimum payment it requires in order to open any channel at all, and the client then sanity checks that. Currently the rule is very simple - the min payment must be equal to the hard-coded dust limit. In future it will get more complicated as the dust limit starts to float and a more nuanced risk analysis may become required.
Commit: | 0bc2878 | |
---|---|---|
Author: | Mike Hearn |
Payment channels: rename "close" to "settle". The previous overloading of the term "close" to mean both settlement of the channel (broadcast of the final payment tx) and terminating/cleaning up the underlying network connection was very confusing and made the code harder to work with. The notion of "closing" a protocol that is often embedded inside others isn't really well defined, so there's perhaps more work to do here, but this change makes the code easier to follow and is basically a big pile of no-ops.
Commit: | c33c20f | |
---|---|---|
Author: | Mike Hearn |
Wallet: record the timestamp of the last block seen.
Commit: | aff5f14 | |
---|---|---|
Author: | Mike Hearn |
Payment channels: add payment acks. Add a new PAYMENT_ACK message to the protocol. Make incrementPayment return a future that completes when the server has acknowledge the balance increase. Also, prevent users from overlapping multiple increase payment requests. This resolves race conditions that can occur when the billed-for activity is asynchronous to the protocol in which the micropayment protocol is embedded. In this case, it was previously impossible to know when the async activity could be resumed as it would otherwise race with the process of the server checking the payment signature and updating the balance. Most applications of micropayments will use a single protocol that has been extended with an embedding, and thus this is not an issue. However in some rare applications the payment process may run alongside the existing protocol rather than inside it. In this case, payment acks should be used for synchronization.
Commit: | dfa722c | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Wallet: track relative ordering of transactions within a block. Ensures re-orgs don't replay transactions out of order. Resolves issue 468.
Commit: | 6342af0 | |
---|---|---|
Author: | Mike Hearn |
Payment channels: protocol tweak - when the client sends a CLOSE, the server sends a CLOSE back that contains the final negotiated contract, so it can be inserted into the wallet without needing to wait for a network broadcast (this is useful if the client does not have internet connectivity at that point).
Commit: | 02416c9 | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Payment channels: bug fixes and improved close behaviour. The client now has a new CLOSED state, which is entered once a CLOSE has been sent and the close transaction (final contract) has been broadcast onto the P2P network and entered the wallet. Once received, the hash of the close tx is stored in the wallet - the tx is itself already in the wallets spent pool because it connects to the output of the multisig tx. After seeing three confirmations of the close TX the state is deleted from the client wallet for good. Together these changes resolve a bug/design issue in which if a channel was opened, then closed, then another channel was opened but not closed, then a third attempt to connect to the server was made, the client would try to resume the first closed channel. That would fail because the server already deleted its state object and result in new channels being created even though the second could have been resumed. By tracking the fact that the channel was closed, it can be skipped when considering what channel to resume.
Commit: | 38119b9 | |
---|---|---|
Author: | Mike Hearn |
Payment channels: Better comments and logging.
Commit: | 6dd9076 | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Wallet: support for key rotation. Key rotation allows you to specify a timestamp, and any money controlled by any keys created before that time will be automatically respent to keys created after it.
Commit: | c98badc | |
---|---|---|
Author: | Matt Corallo | |
Committer: | Mike Hearn |
Store states in protobufs instead of using Java Serialization. Saves having to use reflection.
Commit: | 4908c24 | |
---|---|---|
Author: | Matt Corallo | |
Committer: | Matt Corallo |
Implement server-side and client-side payment channel protocols. This implements micropayment payment channels in several parts: * Adds PaymentChannel[Server|Client]State state machines which handle initialization of the payment channel, keep track of basic in-memory state, and check data received from the other side, based on Mike Hearn's initial implementation. * StoredPaymentChannel[Client|Server]States manage channel timeout+broadcasting of relevant transactions at that time, keeping track of state objects which allow for channel resume, and are saved/loaded as a WalletExtension. * Adds PaymentChannel[Client|Server] which manage a connection by getting new protobufs, generating protobufs for the other side, properly stepping the associated State object and ensuring the StoredStates object is properly used to save state in the wallet. * Adds PaymentChannel[ClientConnection|ServerListener] which create TCP sockets to each other and use PaymentChannel[Client|Server] objects to create/use payment channels. The algorithm implemented is the one described at https://en.bitcoin.it/wiki/Contracts#Example_7:_Rapidly-adjusted_.28micro.29payments_to_a_pre-determined_party with a slight tweak to use looser SIGHASH flags so that the Wallet.completeTx code can work its magic by adding more inputs if it saves on fees. Thanks to Mike Hearn for the initial state machine implementations and all his contracts work and Jeremy Spilman for suggesting the protocol modification that works with non-standard nLockTime Transactions.
Commit: | c457269 | |
---|---|---|
Author: | Mike Hearn |
Some fixes to wallet serialization: 1) Switch the outpoint index field to be uint32 and fix isCoinBase() to consider the unsigned versions only. Resolves issue 420. 2) Regenerate the protobuf and fix an out of date definition in WalletProtobufSerializer that it exposed.
Commit: | 5ae00d4 | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Simplifications to the wallet code. Wallet: Remove/deprecate NOT_IN_BEST_CHAIN as a confidence type. TxConfidence: Rename NOT_SEEN_IN_CHAIN -> PENDING which is more precise and consistent. PeerGroup: Fix definition of "mined"
Commit: | 5d0518d | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Merge encrypted wallets functionality by Jim Burton.
Commit: | d309863 | |
---|---|---|
Author: | Mike Hearn |
Save the last seen chain height as well as hash in the wallet.
Commit: | 988641a | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Label transactions with their source (network, wallet, other, etc). This will be used to allow spending of unconfirmed change.
Commit: | 83bb66c | |
---|---|---|
Author: | Mike Hearn |
Serialize the broadcastBy set for each transaction. Resolves issue 237.
Commit: | c6d900e | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Correct stale comment in bitcoin.proto
Commit: | 96e27cf | |
---|---|---|
Author: | Jim Burton | |
Committer: | Mike Hearn |
Renamed TransactionConfidence.OVERRIDDEN_BY_DOUBLE_SPEND to DEAD
Commit: | 80f141c | |
---|---|---|
Author: | Jim Burton | |
Committer: | Mike Hearn |
TransactionConfidence changes (coinbase phase 2) + Mike's feedback
Commit: | a0da0c5 | |
---|---|---|
Author: | Mike Hearn | |
Committer: | Mike Hearn |
Refactor transaction signing code so users can get the signature hash of an arbitrary input. Also add/fix comments in bitcoin.proto and make the Transaction.pool field optional.
Commit: | 0e52c98 | |
---|---|---|
Author: | Mike Hearn |
Use the standard Maven directory layout, rename "lib" to "core". Mavenize submodules.
Commit: | 216deb2 | |
---|---|---|
Author: | Mike Hearn |
Re-organize the source tree so people can depend on bitcoinj without pulling in the examples, tools, or dependencies thereof.
Commit: | 69ee4c7 | |
---|---|---|
Author: | Miron Cuperman | |
Committer: | Miron Cuperman |
Be lenient in parsing tx confidence protobuf, store pubkeys, cleanup
Commit: | 1c28bd3 | |
---|---|---|
Author: | Miron Cuperman | |
Committer: | Miron Cuperman |
Persist TransactionConfidence to protobuf
Commit: | 5d27257 | |
---|---|---|
Author: | Miron Cuperman |
Rationalize protobuf Pool enum
Commit: | 1a2ce7d | |
---|---|---|
Author: | Miron Cuperman | |
Committer: | Miron Cuperman |
Fixes based on input from Mike, fix invariant checking, fix spentBy
Commit: | a8fd0d4 | |
---|---|---|
Author: | Miron Cuperman | |
Committer: | Miron Cuperman |
Wallet protobuf cleanup. * Un-nest protobuf * Add rest of tx fields, ASN.1 private key * Pending-inactive combo * Tests
Commit: | 319c52b | |
---|---|---|
Author: | Miron Cuperman | |
Committer: | Miron Cuperman |
Read Wallet from protobuf stream
Commit: | 6af16c8 | |
---|---|---|
Author: | Miron Cuperman | |
Committer: | Miron Cuperman |
Protobuf serialization for Wallet