Age | Commit message (Collapse) | Author |
|
Attempt to codify the possible error statuses associated with script
validation. script/types.h has been created with the expectation that it will
be part of the public lib interface. The other flag enums will be moved here in
a future commit.
Logging has also been removed in order to drop the dependency on core.h. It can
be re-added to bitcoind as-needed. This makes script verification finally free
of application state and boost!
|
|
1c0aa91 Update serialize comments to be doxygen compatible (Michael Ford)
|
|
b9a36b1 Make comments in /src/script doxygen compatible (Michael Ford)
|
|
0d91ae3 The first thing that SelectParams does is call SelectBaseParams. Therefore, we do not need to call SelectBaseParams immediately prior to calling SelectParams. (mruddy)
|
|
c8b115e travis: temporarily disable the forknotify test (Cory Fields)
1877390 depends: cleanup better after qt and force a bump (Cory Fields)
560e996 travis: attempt to fix unlikely build issue (Cory Fields)
|
|
It appears to be breaking randomly on Windows
|
|
qt needs to be rebuilt for travis. The previous commit should help ensure that
this won't need to be done again.
|
|
This is a long chain of errors, and there are likely other changes that could
be made to cope in other places along that chain.
If depends don't build successfully, don't bother trying again for the sake of
better logging. That's likely to hurt more than help. In this case, qt build
failed, and on the second attempt, it appeared to be successful. However, due
to a bad object from an internal gcc error on the first build, the resulting
lib was unusable. This caused bitcoin-qt to not be built, and tests and
packaging which expected bitcoin-qt to be there failed.
The root cause:
Mingw is especially crashy when using -jX, likely compounded by low-memory
environments. I've seen multiple problems with this combo in Gitian as well.
In this case:
i686-w64-mingw32-g++: internal compiler error: Killed (program cc1plus)
...
make[3]: *** [.obj/release/qdrawhelper.o] Error 4
The workaround:
Bump Travis down to using -j2 by default. Additionaly, enable --with-gui for
the windows builds. This will cause configure to fail if qt is not working
while also testing the config flag.
Other failures which may be worth revisiting separately:
- If a depends package fails, maybe remove the workdir so that it doesn't taint
subsequent runs
- See if there's anything repeatable about the ICE when building qt
|
|
f4e0aef Do signature-s negation inside the tests (Pieter Wuille)
|
|
845c86d Do not use third party services for IP detection. (Gregory Maxwell)
|
|
5e2dcae gather_inputs: use correct variable in error message (dexX7)
|
|
d52f072 Don't show wallet options in the preferences menu when running with -disablewallet (sinetek)
|
|
-disablewallet
|
|
a8a5e01 Adding license. (sinetek)
|
|
65e3a1e Make sure that GetRandomBytes never fails (Wladimir J. van der Laan)
|
|
To avoid the need for libsecp256k1 to expose such functionality.
|
|
38c62ae Adding const. (sinetek)
|
|
|
|
|
|
|
|
1f84793 Avoid a bunch of copying/conversion in script/sign (Pieter Wuille)
|
|
This is a simplified re-do of closed pull #3088.
This patch eliminates the privacy and reliability problematic use
of centralized web services for discovering the node's addresses
for advertisement.
The Bitcoin protocol already allows your peers to tell you what
IP they think you have, but this data isn't trustworthy since
they could lie. So the challenge is using it without creating a
DOS vector.
To accomplish this we adopt an approach similar to the one used
by P2Pool: If we're announcing and don't have a better address
discovered (e.g. via UPNP) or configured we just announce to
each peer the address that peer told us. Since peers could
already replace, forge, or drop our address messages this cannot
create a new vulnerability... but if even one of our peers is
giving us a good address we'll eventually make a useful
advertisement.
We also may randomly use the peer-provided address for the
daily rebroadcast even if we otherwise have a seemingly routable
address, just in case we've been misconfigured (e.g. by UPNP).
To avoid privacy problems, we only do these things if discovery
is enabled.
|
|
"amount" and "fee" do not exist (anymore?).
|
|
We're using GetRandomBytes in several contexts where it's either
unwieldy to return an error, or an error would mean a fatal exception
anyhow.
@gmaxwell checked OpenSSL a while ago and discovered that it never
actually fails, but it can't hurt to be a bit paranoid here.
|
|
369be58 doc: Correct several typos in bootstrap.md (sandakersmann)
|
|
- Also remove references to the blockchain size
|
|
5985ba9 Fixing warning C4099: 'CExtPubKey' : type name first seen using 'class' now seen using 'struct' (ENikS)
|
|
seen using 'struct'
|
|
eefb766 Rearrange initial config checks: AC, AM, compiler, libtool. Removed some repeated and unused prog checks. (kiwigb)
|
|
bfe029f Reduce bitcoin-tx dependencies (Pieter Wuille)
|
|
0246ab6 depends: boost: hard-code hidden symbol visibility (Cory Fields)
|
|
|
|
93a6022 Reduce bitcoin-cli dependencies (Pieter Wuille)
|
|
This is less surprising.
Avoids the overload-the-CPU default of using N threads for script
verification as well as N threads for generation where N is number of cores.
|
|
Helps for troubleshooting.
|
|
Removed some repeated and unused prog checks.
|
|
|
|
93a3f0e Qt: Network-Traffic-Graph: make some distance between line and text (Jonas Schnelli)
|
|
236d96e Qt: Add support for missing scrollbar in peers table (Jonas Schnelli)
|
|
|
|
Text directly glued on the graph-line looks not so good.
|
|
50b43fd Be a bit more verbose during -loadblock if we already have blocks (Matt Corallo)
8375e22 Fix -loadblock after shutdown during IBD (Matt Corallo)
4ead850 Fix for crash during block download (Matt Corallo)
|
|
tl;dr: This solves boost visibility problems for default/release build configs
on non-Linux platforms.
When Bitcoin builds against boost's header-only classes, it ends up with
objects containing symbols that the upstream boost libs also have. Since
Bitcoin builds by default with hidden symbol visibility, it can end up trying
to link against a copy of the same symbols with default visibility.
This is not a problem on Linux because 3rd party static libs are un-exported
by default (--exclude-libs,ALL), but that is not available for MinGW and OSX.
Those platforms (and maybe others?) end up confused about which version to use.
The OSX linker spews hundreds of: "ld: warning: direct access in <foo> to
global weak symbol guard variable for <bar> means the weak symbol cannot be
overridden at runtime. This was likely caused by different translation units
being compiled with different visibility settings."
MinGW's linker complains similarly.
Since the default symbol visibility for Bitcoin is hidden and releases are
built that way as well, build Boost with hidden visibility. Linux builds Boost
this way also, but only for the sake of continuity.
This means that the linker confusion logic is reversed, so the problem will
will now be encountered if Bitcoin is built with --disable-reduce-exports, but
that's better than the current situation.
|
|
|
|
af82884 Add "warmup mode" for RPC server. (Daniel Kraft)
|
|
Start the RPC server before doing all the (expensive) startup
initialisations like loading the block index. Until the node is ready,
return all calls immediately with a new error signalling "in warmup"
with an appropriate status message (similar to the init message).
This is useful for RPC clients to know that the server is there (e. g.,
they don't have to start it) but not yet available. It is used in
Namecoin and Huntercoin already for some time, and there exists a UI
hooked onto the RPC interface that actively uses this to its advantage.
|
|
Closes #5141
|
|
b4347f6 minor code style cleanup after recent merges (Philip Kaufmann)
|
|
- add a missing license header
- correct some header orderings etc.
|
|
a2cfae8 util.cpp comment correction (21E14)
|