Commit graph

2235 commits

Author SHA1 Message Date
Dave Collins
3ae8056fdb Move the benchmarks into the main btcwire package.
The benchmarks are still only compiled when running 'go test' so this has
no effect on regular usage.  This is being done because benchmarks often
need access to internal state.

Normal tests are kept in a separate package since they also serve to
exercise the public API, and by intentionally making it more difficult to
reach into the internals, it helps ensure the public API is sanely usable.

Since the benchmarks can now access the internals directly, this commit
also removes the functions which exposed the internals to the test package
from internal_test.go which were only used by the benchmarks.
2015-01-14 00:19:07 -06:00
Javed Khan
32205c5552 ListAllTransactions - allow nil for account name 2015-01-13 18:46:35 +05:30
Javed Khan
47d862e482 Added CreateNewAccount, RenameAccount commands 2015-01-13 18:46:34 +05:30
Javed Khan
62eb2f2198 Accept nil string for account name 2015-01-12 23:27:37 +05:30
Dave Collins
4589d60212 Don't treat nulldata tx outs as nonstandard dust.
This commit modifies the dust check to exclude transactions with nulldata
outputs so they may be considered standard.
2015-01-11 17:09:11 -06:00
Dave Collins
22c85516e7 Correct sample-btcd.conf RPC listen comment.
The comment for the RPC listen section in the sample-btcd.conf incorrectly
claimed that the default for the RPC server listener is to listen on all
interfaces by default.  In reality, it only listens on localhost for IPv4
and IPv6 by default.

Closes #208.
2015-01-11 17:03:21 -06:00
Josh Rickmar
c257da934e Improve double spend error strings.
The mempool's MaybeAcceptTransaction methods have also been modified
to return a slice of transaction hashes referenced by the transaction
inputs which are unknown (totally spent or never seen).  While this is
currently used to include the first hash in a ProcessTransaction error
message if inserting orphans is not allowed, it may also be used in
the future to request orphan transactions from peers.
2015-01-08 23:54:11 -05:00
Dave Collins
4e41922fe8 Merge branch 'jrick_double_spend_err' of https://github.com/jrick/btcchain into jrick-jrick_double_spend_err 2015-01-08 05:42:40 -06:00
Dave Collins
be91008dc5 Update badges in README.md to SVG.
Also add a license badge while here.
2015-01-08 05:36:41 -06:00
Dave Collins
bf3195e4ae Update TravisCI to goclean script.
- Also update to use the new container-based builds
2015-01-08 05:25:26 -06:00
Dave Collins
d58ea754f3 Add test and infrastructure for block scripts.
This commit adds a test for checking known good block scripts in a block
are valid.  As a part of this, it adds the infastructure needed to load a
saved transaction store from a file which contains all of the input
transactions needed.

It also contains some changes from running goimports as well as some other
cleanup.
2015-01-08 05:10:54 -06:00
Dave Collins
a64ffb820a Correct RPC time handling for getblocktemplate.
This commit modifies the getblocktemplate RPC to correctly handle the
curtime field.

Currently, the RPC server will refuse to serve a block template if the
current time is before the minimum allowed time for a block even though
the real generated block template already accounted for it.

This consists of three changes:
- Remove the unnecessary and incorrect check in the RPC invocation for the
  current time against the min required time since it is already handled
  properly by the block template generation.
- Expose the network time source to the RPC work state and use the
  adjusted time for checking against the maximum allowed time instead of
  the current time.
- Set the returned RPC result curtime field to the time of the generated
  block header.

Fixes #209.
2015-01-08 01:41:50 -06:00
Olaoluwa Osuntokun
b9c8ec92d6 Add searchrawtransaction 2015-01-07 20:05:56 -08:00
Olaoluwa Osuntokun
effe99b4b5 Correct typo: Unmashal -> Unmarshal 2015-01-07 20:05:56 -08:00
Dave Collins
4b727d2035 Ignore error in script disassembly for RPC results.
This commit modifies the creation of RPC results to ignore errors in
script disassembly since they already contain the error string inline and
the RPC results must still be generated regardless.

This was already done in the decodescript RPC, however the same thing was
not being done in the higher level verbose transaction results.  This
applies to both the createrawtransaction and decoderawtransaction RPCs.

Also, since this was the only thing that could error within those
functions, the error returns and caller checking of now non-existent
errors have been removed.

Fixes #210.
2015-01-07 16:23:23 -06:00
Dave Collins
39d758c2c3 Fix TravisCI build for Go release version. 2015-01-06 21:09:16 -06:00
Josh Rickmar
8945620a84 Improve double spend error strings.
The error message now includes both the previous tx hash and output
index, rather than simply the transaction with the already spent
output.
2015-01-06 20:11:42 -05:00
Josh Rickmar
0d01bb9cb9 Optimize NewShaHashFromStr. 2015-01-06 20:04:33 -05:00
Josh Rickmar
a9e05a3030 Implement String for OutPoint. 2015-01-05 18:40:32 -05:00
Josh Rickmar
df3469a792 Improve ShaHash.String comment and implementation.
The hash is not displayed big endian, but rather as a byte-reversed
hash as a hexidecimal string, so document it as such.

While here, speed up the function.  Some benchmarks:

BenchmarkShaHashString   2000000               996 ns/op
BenchmarkShaHashStringOld         100000             22701 ns/op
2015-01-05 17:18:25 -05:00
David Hill
e5a825324c Limit the number of addresses announced.
Additionally, add the addresses being sent to the peer
to the known addresses map.
2015-01-02 13:04:28 -05:00
Dave Collins
04d47de262 Allow disabling RPC server TLS for localhost only.
This commit introduces a new flag, --notls, which can be used to disable
TLS for the RPC server.  However, the flag can only be used when the RPC
server is bound to localhost interfaces.  This is intended to prevent the
situation where someone decides they want to expose the RPC server to the
web for remote management/access, but forgot they have TLS disabled.
2015-01-02 11:17:23 -06:00
Beldur
e0fce5fe50 Fixed DeletePortMapping documentation typo 2015-01-01 21:59:57 +01:00
Ben Holden-Crowther
08257ac529 Updated license date
Changed 2014 to 2015 in preparation for new year
2014-12-29 20:46:11 +00:00
Dave Collins
a680fb6f25 Update badges in README.md to SVG.
Also add a license badge while here.
2014-12-22 23:13:10 -06:00
Dave Collins
90e8b84c8b Update TravisCI to goclean script.
- Also update to use the new container-based builds
- Modify the tests slightly to make golint happy
2014-12-22 23:10:16 -06:00
Dave Collins
b2186ae5ec Update README.md. 2014-12-22 22:50:17 -06:00
Dave Collins
f1f12a3f2f Update all badges in README.md to SVG.
Also, add a license badge.
2014-12-22 22:46:39 -06:00
Dave Collins
68242fbba7 Update badges in README.md to SVG.
Also, while here:

- Add a license badge
- Add link to the copyfree website for the license for consistency
2014-12-22 22:34:07 -06:00
Dave Collins
2f74570188 Update TravisCI to goclean script.
Also, update to use the new container-based builds.
2014-12-22 22:33:26 -06:00
Dave Collins
e49bf14993 Update build status badge in README.md to SVG. 2014-12-22 20:23:42 -06:00
Dave Collins
e6fe5877c4 Add test coverage badge to README.md.
Also, remove the test_coverage.txt file since coverage is now reported by
coveralls.io.
2014-12-22 20:14:22 -06:00
Dave Collins
9c8ee93b5c Update TravisCI to goclean script.
Also, correct a couple of issues found by running the script.
2014-12-22 20:05:11 -06:00
Dave Collins
33546047e3 Use correct error name in handleGetRawTransaction.
This commit corrects the error check from the createTxRawResult call in
handleGetRawTransaction.  It was previously given a different name which
resulted in the wrong error being checked.

Fixes #196.
2014-12-21 21:49:21 -06:00
Dave Collins
f1cbd40713 Improve handling of the home directory creation.
This commit improves a couple of issues surrounding the creation of the
btcd home directory.

First, the code was previously attempting to log any errors that occurred
while creating the directory using the logging system which is not
initialized at that point.  Thus, nothing was displayed to the user.

Second, if any component of btcd home directory path already exists, but
is not a directory, such as in the case of symlinks, the error returned
from the os.MkDirAll call indicates the directory can't be created.  While
this is true, it's not always the most helpful error to display to the
user.  So, this commit adds logic to detect when the failure case is due
to an existing symlink and displays a nicer error message suggesting the
user check if the destination of the link is mounted.

Fixes #193.
2014-12-21 17:01:56 -06:00
Dave Collins
8e1973d865 Correct a couple of typos spotted while reviewing. 2014-12-20 01:55:27 -06:00
Guilherme Salgado
2f902a5880 Rename signTxOutput to RawTxInSignature 2014-12-20 01:51:54 -06:00
David Hill
45e7fe103f Sync TX tests with Bitcoin Core. 2014-12-19 15:20:48 -05:00
David Hill
bc46f8273c Add more reserved IP space to address manager. 2014-12-16 13:02:39 -05:00
Josh Rickmar
1d0c09a852 Require TLS 1.2 minimum.
This prevents a downgrade attack to the vulnerable SSLv3.  While here,
go ahead and require at least TLS 1.2 since TLS 1.0 and 1.1 have their
own set of issues and it's only a matter of time before those would
need to be completely avoided as well.

ok @davecgh
2014-12-15 13:53:14 -05:00
Dave Collins
7214218925 Be more specific in TravisCI go vet version test. 2014-12-11 12:21:13 -06:00
Dave Collins
d041b80301 Correct recent TravisCI go vet fetch script. 2014-12-11 11:53:19 -06:00
Dave Collins
43b4cad8b6 Update TracisCI for Go 1.4 release.
Our policy is to only ensure the code compiles for the latest Go release
minus one version.  Since Go 1.4 has now been released, this commit
updates TravisCI to remove Go 1.2 from the build matrix and add Go 1.3.

Also, go vet changed locations in between Go 1.3 and Go 1.4, so a check
has been added to download the appropriate version based on which version
of Go is running the integration tests.

Finally, the previous removed Go tip entry in the build matrix has been
reintroduced since it will now work again.
2014-12-11 11:33:23 -06:00
Dave Collins
5a477c332b Update TravisCI for Go 1.4 release.
Now that Go 1.4 has been released, this commit reverts the recent changes
which dealt with allowing TravisCI to work with go tip in between the Go
1.3 and Go 1.4 release cycle and updates the .travis.yml to invoke test
coverage tool from the new path in Go 1.4.
2014-12-11 10:43:17 -06:00
Josh Rickmar
67fc6fa645 Reference new subrepo paths in README. 2014-12-11 10:34:50 -05:00
Josh Rickmar
1c4ac4426c Switch to new subrepo import paths. 2014-12-11 10:33:05 -05:00
Josh Rickmar
bca3d5ba7b Switch to new subrepo import paths. 2014-12-11 10:31:17 -05:00
David Hill
def35f2cd4 Sync Bitcoin Core tests. 2014-12-08 17:34:03 -05:00
Dave Collins
9c0db2f7fd Ensure all tickers are explicitly stopped.
As pointed out in #189, according to the Go documentation, a ticker must
be stopped to release associated resources.  This commit adds a defer call
to stop two tickers there were previously not being stopped as well as
changes two others that were being stopped over to use defer so it's more
consistent.

The other ticker in ScheduleShutdown is replaced and already calls Stop
before replacing it, so it has not been modified.

Closes #189.

ok @jrick
2014-12-03 18:43:31 -06:00
John C. Vernaleo
e0d536640d Add invalidateblock and reconsiderblock. 2014-12-02 13:51:35 -05:00