* [NOD-614] Copy bitcoin-core ban score policy
* [NOD-614] Add ban score to disconnects
* [NOD-614] Fix wrong branch of AddBanScore
* [NOD-614] Add ban score on sending too many addresses
* [NOD-614] Add comments
* [NOD-614] Remove redundant reject messages
* [NOD-614] Fix log message
* [NOD-614] Ban every node that sends invalid invs
* [NOD-614] Make constants for ban scores
* [NOD-806] After panic, gracefully stop logs, and then exit immediately
* [NOD-806] Convert non-kaspad applications to use the new spawn
* [NOD-806] Fix disabled log at rpcclient
* [NOD-806] Refactor HandlePanic
* [NOD-806] Cancel Logger interface
* [NOD-806] Remove redundant spawn checks from waitgroup_test.go
* [NOD-806] Use caller subsystem when logging panics
* [NOD-806] Fix go vet errors
* [NOD-719] Added defers to unlocks (#618)
* [NOD-719] Added defers to unlocks
* [NOD-719] Added another defer to another Unlock
* [NOD-719] Added yet another defer to yet another Unlock
* [NOD-747] Change FinalityInterval to be 24 hours, isCurrent to be true if the DAG's time is less than 12 hours than the present, and change MaxInvPerMsg to be 1 << 17 (#625)
* [NOD-769] Add a log for when a reachability reindex occurs.
Co-authored-by: Svarog <feanorr@gmail.com>
Co-authored-by: Ori Newman <orinewman1@gmail.com>
* [NOD-570] Separate genesis variables for different netwroks
* [NOD-570] Make Testnet genesis
* [NOD-570] Make simnet and regtest genesis
* [NOD-570] Remake devnet genesis
* [NOD-570] Rename regNet -> regTest testnet->testNet
* [NOD-570] Change network names to one word instead of camel case
* [NOD-570] Change network names to one word instead of camel case
* [NOD-570] Fix test names
* [NOD-570] Fix TestGHOSTDAG
Co-authored-by: Dan Aharoni <dereeno@protonmail.com>
* [NOD-517] Remove copyright notices from all doc.go.
* [NOD-517] Updated the root doc.go.
* [NOD-517] Remove all cov_report.sh and test_coverage.txt.
* [NOD-517] Make all doc.go use the same style of comment.
* [NOD-517] Update dagconfig doc.go.
* [NOD-517] Update blockdag doc.go.
* [NOD-517] Update doc.go in connmgr.
* [NOD-517] Update doc.go in fullblocktests.
* [NOD-517] Update doc.go in database.
* [NOD-517] Update doc.go in ecc.
* [NOD-517] Update doc.go in rpctest.
* [NOD-517] Removed superfluous license in logs.
* [NOD-517] Update doc.go in mempool.
* [NOD-517] Updated doc.go in peer.
* [NOD-517] Update doc.go in rpcclient.
* [NOD-517] Update doc.go in txscript.
* [NOD-517] Update doc.go in util.
* [NOD-517] Update doc.go in base58.
* [NOD-517] Update doc.go in bech32.
* [NOD-517] Update doc.go in txsort.
* [NOD-517] Update doc.go in wire.
* [NOD-517] Fix indentation.
* [NOD-517] Add a copyright notice to the main doc.go.
* [NOD-517] Add Conformal to the license notices.
* [NOD-517] Remove superfluous language from a doc.
* [NOD-517] Fix bad example.
* [NOD-471] Make AddTx return false for duplicate coinbase, and make pastUTXO return accepted transaction with the accepting block blue score
* [NOD-471] Remove diffFromAcceptanceData
* [NOD-471] Make fetchBlueBlocks return also selected parent
* [NOD-471] Skip adding coinbase transactions on applyBlueBlocks
* [NOD-471] Use tx.IsCoinbase() instead of i == util.CoinbaseTransactionIndex
* [NOD-487] Implement a mechanism to gracefully shut down after a panic.
* [NOD-487] Fixed bad log.
* [NOD-487] Removed unused import.
* [NOD-487] Convert panic handlers from anonymous functions to methods.
* [NOD-386] Extract net parsing functionality to a shared place.
* [NOD-386] Add extract ActiveNetParams to cmdconfig
* [NOD-386] Adding comments so go-vet won't shout at me
* [NOD-386] Rename package name to config
* [NOD-386] Rename commandConfig to configFlags
* [NOD-386] Rename function to ResolveNetwork
* [NOD-386] Fix renaming errors
* [NOD-386] Refactor network config to btcd level so APIserver and btcd could use it
* [NOD-386] Refactor network config to config package
* [NOD-386] Move ActiveNetParams to network section
* [NOD-386] Explictly return nil
* [NOD-386] Reuse activeNetParams from netwrok config
* [NOD-386] Set ActiveNetworkFlags instance to be global
* [NOD-386] Remove redundant newline
* [NOD-386] Init ActiveNetParams in address manager test
* [NOD-386] Add dnsseeder network config
* [NOD-386] Use ActiveConfig() method to access configuration
* [NOD-256] Add error log
* [NOD-256] Add error log
* [NOD-256] Fix typo and comment
* [NOD-256] Remove btclog dir
* [NOD-256] Format project
* [NOD-256] Add error log files
* [NOD-256] Add an option to add a log file to write into to an existing backend logger
* [NOD-256] Get rid of redundant logs initialization
* [NOD-256] rename initLogRotators to initLog
* [NOD-256] Get rid ExampleSignTxOutput and convert ExampleBlockDAG_ProcessBlock to a regular test
* [NOD-256] Show error message if os.Exiting from initLog
* [NOD-114] Added a minimum address amount GetAddrs.
* [NOD-114] Added smallNetwork intervals for when the network is small.
* [NOD-114] Fixed bad minimum address calculation.
* [NOD-82] Added RPC files to the BTCD Docker container.
* [NOD-82] Generated new cert and key files that include *.daglabs.com.
* [NOD-82] Added a dagConfig parameter for accepting unroutable IPs.
* [NOD-77] AddrManager.Good now updates subnetwork in case it was modified
* [NOD-77] Do not update subnetworkID in updateAddr if address already known
* [NOD-77] Restructure case where ka.tried = true for more readable code
* [NOD-77] Some corrections to comments
* [NOD-77] Fixd typo
* [NOD-46] Immediately associate received address to their subnetwork
* [NOD-46] fix comment
* [NOD-46] Disconnect peer if it sends an MsgAddr with no subnetwork
* [NOD-46] Disconnect peer if it sends an MsgAddr with incorrect subnetwork id
* [NOD-46] add parenthesis to condition
* [NOD-46] change order of conditions
* [DEV-363] Added testnet seeders
* [DEV-363] Prepare BTCD to work with DNS seeder
* [DEV-363] Finished BTCD part of DNS seeder
* [DEV-363] Reverted protocol changes
* [DEV-363] Reverted protocol changes
* [DEV-363] Reverted protocol changes and fixed tests
* [DEV-363] Added tests and refactored
* [DEV-363] Small refactoring of p2p changes
* [DEV-363] Update NeedMoreAddresses function to take into account full peers + small refactoring
* [DEV-363] Removed IsDNSSeederPeer flag
* [DEV-363] Fixed comment
* [DEV-376] Changed any instance of %v in format strings with a more specific format token
* [DEV-376] Fixed some more wrong formatting strings + removed redundant
cast
* [DEV-376] Added fmt.Sprintf where it was missing
* [DEV-376] use %s for util.Amount, to invoke .String()
* [DEV-376] Some more fixes in format strings
* [DEV-376] fixed mruinvmap_test to expect the correct behaviour
* [DEV-336] Split addresses in address manager by subnetwork id
* [DEV-336] Load DAG with subnetwork from the config file
* [DEV-336] Remove redundant checks in updateAddrNew and updateAddrTried
* [DEV-134] Implement Continuous Integration
Squashed commit:
[5e41d830] Dev 223 fix txindex (#100)
* [DEV-201] In handleGetBlockDAGInfo calculate difficulty by the tip with the lowest bits
* [DEV-202] Move VirtualBlock.GetUTXOEntry to BlockDAG
* [DEV-203] Move VirtualBlock.SelectedTip() to BlockDAG
* [DEV-203] Move VirtualBlock.SelectedTip() to BlockDAG
* [DEV-204] Unexport VirtualBlock() and add CalcMedianTime method for DAG
* [DEV-204] add explanation about difficulty in CurrentBits() comment
* [DEV-204] unexport VirtualBlock type
* [DEV-223] make applyUTXOChanges return pastUTXOResults
* [DEV-223] add bluestxdata for current block as well
* [DEV-223] re-design tx index
* [DEV-223] edit txindex comments
* [DEV-223] rename BluesTxData -> AcceptedTxData, and return from applyUTXOChanges only transactions that got accepted
* [DEV-223] add unit test for txindex
* [DEV-223] fix comments and unite blueTransaction and AcceptedTxData to one type
* [DEV-223] use bucket cursor for dbFetchFirstTxRegion
* [DEV-223] use the same cursor instance for dbFetchFirstTxRegion
* [DEV-223] write in dbFetchFirstTxRegion's comment that it returns the first block region
* [DEV-223] rename type BlueBlockTransaction to TxWithBlockHash
* [DEV-223] add named returned value for applyUTXOChanges
[4c95e293] [DEV-134] Made golint ignore the vendor directory.
[21736dbc] [DEV-134] Renamed ExampleBlockChain_ProcessBlock to ExampleBlockDAG_ProcessBlock to satisfy go vet.
[beea6486] [DEV-134] Removed pushing the built docker to a remove repository. That's unnecessary at this stage.
[bee911ed] [DEV-134] Made all precompilation checks run on everything instead of only the root dir.
[585f92ae] [DEV-134] Added "github.com/pkg/errors" to dep.
[5f02f570] [DEV-134] -vendor-only is written with only one hyphen.
[3eee7f95] [DEV-134] go vet instead of go tool vet.
[0c2d4343] [DEV-134] Split all the pre-compile checks to separate lines to be able to tell which of them is failing.
[780519c8] [DEV-134] Ran gofmt on everything.
[8247146b] Dev 223 fix txindex (#100)
* [DEV-201] In handleGetBlockDAGInfo calculate difficulty by the tip with the lowest bits
* [DEV-202] Move VirtualBlock.GetUTXOEntry to BlockDAG
* [DEV-203] Move VirtualBlock.SelectedTip() to BlockDAG
* [DEV-203] Move VirtualBlock.SelectedTip() to BlockDAG
* [DEV-204] Unexport VirtualBlock() and add CalcMedianTime method for DAG
* [DEV-204] add explanation about difficulty in CurrentBits() comment
* [DEV-204] unexport VirtualBlock type
* [DEV-223] make applyUTXOChanges return pastUTXOResults
* [DEV-223] add bluestxdata for current block as well
* [DEV-223] re-design tx index
* [DEV-223] edit txindex comments
* [DEV-223] rename BluesTxData -> AcceptedTxData, and return from applyUTXOChanges only transactions that got accepted
* [DEV-223] add unit test for txindex
* [DEV-223] fix comments and unite blueTransaction and AcceptedTxData to one type
* [DEV-223] use bucket cursor for dbFetchFirstTxRegion
* [DEV-223] use the same cursor instance for dbFetchFirstTxRegion
* [DEV-223] write in dbFetchFirstTxRegion's comment that it returns the first block region
* [DEV-223] rename type BlueBlockTransaction to TxWithBlockHash
* [DEV-223] add named returned value for applyUTXOChanges
[bff68aa3] [DEV-134] Gave executable permission to deploy.sh
[638a99d9] [DEV-134] Added jenkinsfile and deploy script.
* [DEV-134] Added a robust testing script.
* [DEV-134] Fixed a bash-ism.
* [DEV-134] Disabled testing with coverage for now.
* [DEV-134] Disabled golint and removed removing debug symbols.
* [DEV-134] Disabled aligncheck.
* [DEV-134] Disabled structcheck and varcheck.
* [DEV-134] Added "don't inline functions" to compiler flags for testing.
* [DEV-134] Made build fail if gofmt prints out anything.
* [DEV-134] Fixed misleading comment.
* [DEV-134] Added comments to test.sh.
* [DEV-134] Renamed tm to measure_runtime and removed do_ prefixes from functions.
* [DEV-134] Fixed gofmt line in build script.
* [DEV-134] Fixed gofmt some more.
* [DEV-134] Fixed gofmt not actually failing due to logical or.
* [DEV-82] break down main to packages
* [DEV-82] separate rpcserver and server
* [DEV-82] Fixed Windows-related code that failed to compile.
* [DEV-82] remove params.go and use only dagconfig.Params
* [DEV-82] fix log.go license
This commit modifies the logic within the block manager and service to
preferentially fetch transactions and blocks which include witness data
from fully upgraded peers.
Once the initial version handshake has completed, the server now tracks
which of the connected peers are witness enabled (they advertise
SFNodeWitness). From then on, if a peer is witness enabled, then btcd
will always request full witness data when fetching
transactions/blocks.
Replace assignments to individual fields of wire.NetAddress with
creating the entire object at once, as one would do if the type was
immutable.
In some places this replaces the creation of a NetAddress with a
high-precision timestamp with a call to a 'constructor' that converts
the timestamp to single second precision. For consistency, the tests
have also been changed to use single-precision timestamps.
Lastly, the number of allocations in readNetAddress have been reduced by
reading the services directly into the NetAddress instead of first into
a temporary variable.
addrmgr.GetAddress() had a parameter `class string` originally intended
to support looking up addresses according to some type of filter such as
IPv4, IPv6, and only those which support specific wire.ServiceFlags
(full nodes, nodes that support bloom filters, nodes that support
segwit, etc). But currently the parameter is unused and also has an
inappropriate type `string`.
If it would ever be used, it's easy to add back and should then get an
appropriate type such as something that allows bitflags to be set so
that the caller could request combinations such as peers that support
IPv6, are full nodes, and support bloom filters.