Skip to content

Conversation

@ftrader
Copy link
Contributor

@ftrader ftrader commented May 7, 2017

All test nodes have been left. More understanding of the test design is needed
to determine whether any of them can be removed.

Only post-activation test steps have been removed, SegWit-dependent
functionality disabled.

The past passes, but more verification is needed to determine whether all
V2 CompactBlocks are indeed no longer transmitted during the test.

Where necessary, test nodes have been renamed to indicate that they are
no longer "segwit_node".

All test nodes have been left. More understanding of the test design is needed
to determine whether any of them can be removed.

Only post-activation test steps have been removed, SegWit-dependent
functionality disabled.

The past passes, but more verification is needed to determine whether all
V2 CompactBlocks are indeed no longer transmitted during the test.

Where necessary, test nodes have been renamed to indicate that they are
no longer "segwit_node".
@ftrader
Copy link
Contributor Author

ftrader commented May 7, 2017

Relevant line from failed Travis job 6.3:

p2p-compactblocks.py | True | 54 s

and from failed Travis job 6.5:

p2p-compactblocks.py | True | 56 s

@deadalnix
Copy link
Member

Just delete references to segwit, really.

@ftrader
Copy link
Contributor Author

ftrader commented May 7, 2017

Just blindly deleting is is in fact the wrong approach when e.g. V2 CB is sort of reserved for handling SegWit data. But of course names can be changes s/segwit/nameless_softfork/ . Not sure how this helps.

However, I'll try some more aggressive trimming.

@ftrader
Copy link
Contributor Author

ftrader commented May 8, 2017

Scanning through the Travis job logs, there are some more tests which fail probably due to other problems and not the wallet problem. So far I spotted:

  • bumpfee.py (ImportError: No module named 'segwit') - this test seems RBF-related and I think it might be removable entirely (there seems some leftover C++ code related to 'bumpfee' though)
  • nulldummy.py (JSONRPC error: Method not found / timeout?)
  • p2p-fullblocktest.py (Block rejected with 16:b'coinbase' instead of expected 16:b'bad-cb-multiple')

I can look at these one by one in separate PRs, but it would be much better if we got the wallet issue out the way first, for clarity.

# Now try a SENDCMPCT message with too-high version
sendcmpct = msg_sendcmpct()
sendcmpct.version = preferred_version+1
sendcmpct.version = 999 # was: preferred_version+1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why 999 ?

@deadalnix deadalnix merged commit 2176d4e into Bitcoin-ABC:master May 10, 2017
@ftrader ftrader deleted the patch/fix_p2p-compactblocks branch May 13, 2017 16:41
jasonbcox pushed a commit that referenced this pull request Oct 11, 2019
…split keys after upgrading to hd chain split

Summary:
(commit #1)
Changes the maximum upgradewallet version to the latest wallet version
number, 190700. Non-HD wallets will be upgraded to use HD derivation.
Non HD chain split wallets will be upgraded to HD chain split.

(commit #2)
After upgrading to HD chain split, we want to continue to use keys
from the old keypool. To do this, before we generate any new keys after
upgrading, we mark all of the keypool entries as being pre-chain
split and move them to a separate pre chain split keypool. Keys are
fetched from that keypool until it is emptied. Only then are the new
internal and external keypools used.

Since upgradewallet is effectively run during a first run, all of the
first run initial setup stuff is combined with the upgrade to HD

Partial backport of Core PR12560 (3/4)
bitcoin/bitcoin@5c50e93
bitcoin/bitcoin@dfcd9f3

Depends on D4202

Test Plan:
Recommend to perform testing on `regtest` or else this process may take a very long time.
  make check
  ./bitcoind -upgradewallet
  ./bitcoin-cli getwalletinfo > preupgradewalletinfo
  ./bitcoin-cli generate 1
  Kill bitcoind
  ./bitcoind -printtoconsole -upgradewallet
bitcoind should output to console the two following lines:
  Performing wallet upgrade to 190700
  Upgrading wallet to use HD chain split
Compare previous `preupgradewalletinfo` with `./bitcoin-cli getwalletinfo` post upgrade

preupgradewalletinfo:
  {
    "walletname": "",
    "walletversion": 160300,
    "balance": 0.00000000,
    "unconfirmed_balance": 0.00000000,
    "immature_balance": 0.00000000,
    "txcount": 0,
    "keypoololdest": 1551725443,
    "keypoolsize": 1000,
    "keypoolsize_hd_internal": 1000,
    "paytxfee": 0.00000000,
    "hdmasterkeyid": "c13ec93790a56f74edd2da42d231317eb6dbf02b"
  }

post upgrade wallet info:
  {
    "walletname": "",
    "walletversion": 190700,
    "balance": 0.00000000,
    "unconfirmed_balance": 0.00000000,
    "immature_balance": 50.00000000,
    "txcount": 1,
    "keypoololdest": 1551725443,
    "keypoolsize": 1000,
    "keypoolsize_hd_internal": 1000,
    "paytxfee": 0.00000000,
    "hdmasterkeyid": "c13ec93790a56f74edd2da42d231317eb6dbf02b"
  }
The newly upgraded wallet should not be able to be downgraded to a previous version
  Kill bitcoind
  ./bitcoind -upgradewallet=160300
This should fail and cause `bitcoind` to shutdown with the following line:
  Error: Cannot downgrade wallet

Reviewers: deadalnix, Fabien, jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

Differential Revision: https://reviews.bitcoinabc.org/D4206
Mengerian pushed a commit to Mengerian/bitcoin-abc that referenced this pull request Oct 31, 2019
Mengerian pushed a commit to Mengerian/bitcoin-abc that referenced this pull request Oct 31, 2019
Merge master from daattali/beautiful-jekyll
deadalnix pushed a commit that referenced this pull request Jan 12, 2020
Summary:
In Bitcoin Core, virtual size has two meanings:

1. BIP 141 defines virtual size = weight/4 (rounded up), i.e. transaction size
  plus witness size divided by 4.
  (https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#additional-definitions )

2. Virtual size = max(weight, sigopscost*bytespersigop) / 4 rounded up, used in
  all mempool code to punish very very high sigops transactions.

Currently we have no code that uses meaning #2, but we do have some weird
backported code that uses meaning #1, which is definitely inappropriate
for BCH since we don't have segwit.

This diff removes that stuff and also removes the ability to ask for
virtual size in the BIP141 convention (without a sigops count), which is always
going to be a conceptual mistake in our codebase.

(see D3655 D3316 D3180 D3243)

Test Plan: `ninja all check bench-bitcoin`

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D4895
deadalnix pushed a commit that referenced this pull request Jun 26, 2020
Summary:
We see occasional flakiness on TSAN that gives not-so-useful output like this:
```
==5540==WARNING: failed to fork (errno 12)
==5540==WARNING: Failed to use and restart external symbolizer!
==================
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=5540)
  Cycle in lock order graph: M100059481 (0x7fffa93419f8) => M100059482 (0x7fffa93419d0) => M100059481

  Mutex M100059482 acquired here while holding mutex M100059481 in main thread:
    #0 <null> <null> (test_bitcoin+0xeacce)
    #1 <null> <null> (test_bitcoin+0x7b9675)
    #2 <null> <null> (test_bitcoin+0x7b8e8b)
    #3 <null> <null> (test_bitcoin+0x198299)
    #4 <null> <null> (libboost_unit_test_framework.so.1.67.0+0x55dbd)
    #5 <null> <null> (libc.so.6+0x2409a)
```

Attempts to symbolize that memory manually suggests a deadlock that is already in our suppressions file.

Although clang sanitizers will default to llvm-symbolizer, it's not in our path, so it defaults to addr2line.
It's not clear if addr2line can be assumed to perform as well as llvm-symbolizer. Testing both locally
indicates they produce very similar output when suppressions files are not used, for instance.

This patch is more of an experiment to see if llvm-symbolizer is able to correctly symbolize the above logs.
If so, either the suppression will stop being flaky or we will obtain useful information to pinpoint the root
cause.

Test Plan: Run ASAN, TSAN, UBSAN on CI and make sure they still pass

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D6746
ftrader pushed a commit to bitcoin-cash-node/bitcoin-cash-node that referenced this pull request Aug 17, 2020
…in-ABC#2)

Notable changes:

- add xenial to the list of the supported Ubuntu versions
- special cased xenial pkg build (use autotoolsr/g++8 rather than cmake/default g++)
- add a debian version parameter, as in https://www.debian.org/doc/debian-policy/ch-controlfields.html#standards-version), to the script
- add a way to build the pkgs for a single supported version rather than build it from all every time
deadalnix pushed a commit that referenced this pull request Dec 28, 2020
…return checking

Summary:
8d22ab0e503ccaa464cbecd94d1059dbc5a61f4a ci: Enable address sanitizer (ASan) stack-use-after-return checking (practicalswift)

Pull request description:

  Enable address sanitizer (ASan) stack-use-after-return checking (`detect_stack_use_after_return=1`).

  Example:

  ```
  #include <iostream>
  #include <string>

  const std::string& get_string(int i) {
      return std::to_string(i);
  }

  int main() {
      std::cout << get_string(41) << "\n";
  }
  ```

  Without address sanitizer (ASan) stack-use-after-return checking:

  ```
  $ ./stack-use-after-return

  $
  ```

  With address sanitizer (ASan) stack-use-after-return checking:

  ```
  $ ASAN_OPTIONS="detect_stack_use_after_return=1" ./stack-use-after-return
  =================================================================
  ==10400==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f7fa0400030 at pc 0x00000049d2cc bp 0x7ffcbd617070 sp 0x7ffcbd616820
  READ of size 2 at 0x7f7abbecd030 thread T0
      #0 0x439781 in fwrite
      #1 0x7f7ac0504cb3 in std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x113cb3)
      #2 0x4f9b5f in main stack-use-after-return.cpp:9:15
      #3 0x7f7abf440b96 in __libc_start_main
      #4 0x41bbc9 in _start
  …
  $
  ```

---

Backport of Core [[bitcoin/bitcoin#17205 | PR17205]]

Test Plan:
  cmake -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DENABLE_SANITIZERS=address
  ninja all check check-functional

Reviewers: #bitcoin_abc, jasonbcox

Reviewed By: #bitcoin_abc, jasonbcox

Differential Revision: https://reviews.bitcoinabc.org/D8756
deadalnix pushed a commit that referenced this pull request Dec 28, 2020
…Travis

Summary:
1f9d5af4f197e7cc0469a0bb25dcbc51dfa537f4 tests: Add initialization order fiasco detection in Travis (practicalswift)

Pull request description:

  Add initialization order fiasco detection in Travis :)

  Context: bitcoin/bitcoin#17670 (comment)

  This would have caught the `events_hasher` initialization order issue introduced in #17573  and fixed in #17670.

  Output in case of an initialization order fiasco:

  ```
  ==7934==ERROR: AddressSanitizer: initialization-order-fiasco on address 0x557098d79200 at pc 0x55709796b9a3 bp 0x7ffde524dc30 sp 0x7ffde524dc28
  READ of size 8 at 0x557098d79200 thread T0
      #0 0x55709796b9a2 in CSHA256::Finalize(unsigned char*) src/crypto/sha256.cpp:667:25
      #1 0x5570978150e9 in SeedEvents(CSHA512&) src/random.cpp:462:19
      #2 0x5570978145e1 in SeedSlow(CSHA512&) src/random.cpp:482:5
      #3 0x5570978149a3 in SeedStartup(CSHA512&, (anonymous namespace)::RNGState&) src/random.cpp:527:5
      #4 0x55709781102d in ProcRand(unsigned char*, int, RNGLevel) src/random.cpp:571:9
      #5 0x557097810d19 in GetRandBytes(unsigned char*, int) src/random.cpp:576:59
      #6 0x557096c2f9d5 in (anonymous namespace)::CSignatureCache::CSignatureCache() src/script/sigcache.cpp:34:9
      #7 0x557096511977 in __cxx_global_var_init.7 src/script/sigcache.cpp:67:24
      #8 0x5570965119f8 in _GLOBAL__sub_I_sigcache.cpp src/script/sigcache.cpp
      #9 0x557097bba4ac in __libc_csu_init (src/bitcoind+0x18554ac)
      #10 0x7f214b1c2b27 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:266
      #11 0x5570965347d9 in _start (src/bitcoind+0x1cf7d9)

  0x557098d79200 is located 96 bytes inside of global variable 'events_hasher' defined in 'random.cpp:456:16' (0x557098d791a0) of size 104
    registered at:
      #0 0x557096545dfd in __asan_register_globals compiler-rt/lib/asan/asan_globals.cpp:360:3
      #1 0x557097817f8b in asan.module_ctor (src/bitcoind+0x14b2f8b)

  SUMMARY: AddressSanitizer: initialization-order-fiasco src/crypto/sha256.cpp:667:25 in CSHA256::Finalize(unsigned char*)
  ```

---

Backport of Core [[bitcoin/bitcoin#17674 | PR17674]]

Depends on D8756

Test Plan:
  cmake -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DENABLE_SANITIZERS=address
  ninja all check check-functional

Reviewers: #bitcoin_abc, jasonbcox

Reviewed By: #bitcoin_abc, jasonbcox

Differential Revision: https://reviews.bitcoinabc.org/D8757
Fabcien pushed a commit that referenced this pull request Jul 1, 2021
Summary:
Some Bitcoin activity is completely local (offline), e.g., reindexing.

The `setnetworkactive` RPC command is already present. This PR adds the corresponding command-line argument / config option, and allows to start the client with disabled p2p network by providing `-networkactive=0` or `-nonetworkactive`.

Commit message #1:
> net: Add -networkactive option
>
> The `setnetworkactive' RPC command is already present.
> This new option allows to start the client with disabled p2p network
> activity for testing or reindexing.

Commit message #2:
>net: Log network activity status change unconditionally

Commit message #3:
> test: Add test coverage for -networkactive option

This is a backport of [[bitcoin/bitcoin#19473 | core#19473]]

Test Plan: `ninja all check-all`

Reviewers: #bitcoin_abc, majcosta

Reviewed By: #bitcoin_abc, majcosta

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D9713
Fabcien pushed a commit that referenced this pull request Oct 13, 2021
Summary:
See https://build.bitcoinabc.org/viewLog.html?buildId=300891&guest=1 for a tsan race while running `interface_zmq.py`
```
 node0 stdout ==================
WARNING: ThreadSanitizer: data race (pid=10367)
  Read of size 8 at 0x7b2400030238 by thread T19:
    #0 memcpy <null> (bitcoind+0x2645a7)
    #1 <null> <null> (libzmq.so.5+0x76220)

  Previous write of size 8 at 0x7b2400030238 by thread T12:
    #0 malloc <null> (bitcoind+0x258ee4)
    #1 <null> <null> (libzmq.so.5+0x39578)
    #2 CZMQAbstractPublishNotifier::SendZmqMessage(char const*, void const*, unsigned long) /work/abc-ci-builds/build-tsan/../../src/zmq/zmqpublishnotifier.cpp:164:14 (bitcoind+0xa1e7a9)
    ...
0
  Location is heap block of size 140 at 0x7b2400030210 allocated by thread T12:
    #0 malloc <null> (bitcoind+0x258ee4)
    #1 <null> <null> (libzmq.so.5+0x39578)
    #2 CZMQAbstractPublishNotifier::SendZmqMessage(char const*, void const*, unsigned long) /work/abc-ci-builds/build-tsan/../../src/zmq/zmqpublishnotifier.cpp:164:14 (bitcoind+0xa1e7a9)
    ...

  Thread T19 'ZMQbg/1' (tid=10388, running) created by main thread at:
    #0 pthread_create <null> (bitcoind+0x25a7ab)
    #1 <null> <null> (libzmq.so.5+0x6e8b3)
    #2 CZMQNotificationInterface::Initialize() /work/abc-ci-builds/build-tsan/../../src/zmq/zmqnotificationinterface.cpp:86:23 (bitcoind+0xa199d4)
    #3 CZMQNotificationInterface::Create() /work/abc-ci-builds/build-tsan/../../src/zmq/zmqnotificationinterface.cpp:61:36 (bitcoind+0xa19328)
    #4 AppInitMain(Config&, RPCServer&, HTTPRPCRequestProcessor&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) /work/abc-ci-builds/build-tsan/../../src/init.cpp:2482:36 (bitcoind+0x30d673)
    #5 AppInit(int, char**) /work/abc-ci-builds/build-tsan/../../src/bitcoind.cpp:181:16 (bitcoind+0x2eaa8e)
    #6 main /work/abc-ci-builds/build-tsan/../../src/bitcoind.cpp:208:13 (bitcoind+0x2eaa8e)

  Thread T12 'b-scheduler' (tid=10380, running) created by main thread at:
    #0 pthread_create <null> (bitcoind+0x25a7ab)
    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.67.0+0x1396a)
    #2 boost::thread::thread<std::_Bind<void (* (char const*, std::function<void ()>))(char const*, std::function<void ()>)>&>(std::_Bind<void (* (char const*, std::function<void ()>))(char const*, std::function<void ()>)>&) /usr/include/boost/thread/detail/thread.hpp:266:13 (bitcoind+0x330342)
    #3 boost::thread* boost::thread_group::create_thread<std::_Bind<void (* (char const*, std::function<void ()>))(char const*, std::function<void ()>)> >(std::_Bind<void (* (char const*, std::function<void ()>))(char const*, std::function<void ()>)>) /usr/include/boost/thread/detail/thread_group.hpp:79:60 (bitcoind+0x32039e)
    #4 AppInitMain(Config&, RPCServer&, HTTPRPCRequestProcessor&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) /work/abc-ci-builds/build-tsan/../../src/init.cpp:2243:17 (bitcoind+0x309628)
    #5 AppInit(int, char**) /work/abc-ci-builds/build-tsan/../../src/bitcoind.cpp:181:16 (bitcoind+0x2eaa8e)
    #6 main /work/abc-ci-builds/build-tsan/../../src/bitcoind.cpp:208:13 (bitcoind+0x2eaa8e)

    #1 <null> <null> (libzmq.so.5+0x6e8b3)
    #2 CZMQNotificationInterface::Initialize() /work/abc-ci-builds/build-tsan/../../src/zmq/zmqnotificationinterface.cpp:86:23 (bitcoind+0xa199d4)
    #3 CZMQNotificationInterface::Create() /work/abc-ci-builds/build-tsan/../../src/zmq/zmqnotificationinterface.cpp:61:36 (bitcoind+0xa19328)
    #4 AppInitMain(Config&, RPCServer&, HTTPRPCRequestProcessor&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) /work/abc-ci-builds/build-tsan/../../src/init.cpp:2482:36 (bitcoind+0x30d673)
    #5 AppInit(int, char**) /work/abc-ci-builds/build-tsan/../../src/bitcoind.cpp:181:16 (bitcoind+0x2eaa8e)
```

This is a backport of [[bitcoin/bitcoin#20748 | core#20748]]

Test Plan:
With TSAN:
`for i in $(seq 100); do TSAN_OPTIONS=second_deadlock_stack=1: TSAN_OPTIONS=suppressions=/home/pierre/dev/bitcoin-abc/test/sanitizer_suppressions/tsan test/functional/test_runner.py interface_zmq; done`

This failure is intermittent, but relatively easy to reproduce: I was able to get it with 10 repetitions of the test, prior to adding the suppression.

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D10315
deadalnix pushed a commit that referenced this pull request Feb 22, 2022
Summary:
> sync: Improve CheckLastCritical()
>
> This commit adds actual lock stack logging if check fails.

> [skip ci] sync: Check precondition in LEAVE_CRITICAL_SECTION() macro
>
> This change reveals a bug in the wallet_tests/CreateWalletFromFile test,
> that will be fixed in the following commit.

> test: Fix inconsistent lock order in wallet_tests/CreateWallet

This is a backport of [[bitcoin/bitcoin#19982 | core#19982]]

Test Plan:
I confirmed that after commit #2, running `ninja check` with  `-DCMAKE_BUILD_TYPE=Debug`  reveals a lock order issue:
```
../src/wallet/test/wallet_tests.cpp:853 wallet_param->wallet()->cs_wallet was not most recent critical section locked, details in debug log.
```

This goes away with the next commit.

Tested also with TSAN, after removing the suppression.

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D11093
Fabcien pushed a commit that referenced this pull request Nov 17, 2022
Summary:
This is needed to turn globals into member variables. Otherwise, this
will lead to issues:

```
runtime error: reference binding to null pointer of type 'CBlockFileInfo'
    #0 in std::vector<CBlockFileInfo, std::allocator<CBlockFileInfo> >::operator[](unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:1046:2
    #1 in BlockManager::FlushBlockFile(bool, bool) src/node/blockstorage.cpp:540:47
    #2 in CChainState::FlushStateToDisk(BlockValidationState&, FlushStateMode, int) src/validation.cpp:2262:28
    #3 in CChainState::ResizeCoinsCaches(unsigned long, unsigned long) src/validation.cpp:4414:15
    #4 in validation_chainstate_tests::validation_chainstate_resize_caches::test_method() src/test/validation_chainstate_tests.cpp:66:12
```
This is a partial backport of [[bitcoin/bitcoin#23974 | core#23974]]
bitcoin/bitcoin@fad381b

Depends on D12512

Test Plan: `ninja check`

Reviewers: #bitcoin_abc, sdulfari

Reviewed By: #bitcoin_abc, sdulfari

Differential Revision: https://reviews.bitcoinabc.org/D12513
imaginaryusername pushed a commit to bitcoin-cash-node/bitcoin-cash-node that referenced this pull request Jul 10, 2024
Co-authored-by: Calin Culianu <[email protected]>

This is from: bitcoin/bitcoin#15644, commit Bitcoin-ABC#2.

Contains also some minor adaptations for BCHN codebase.
imaginaryusername pushed a commit to bitcoin-cash-node/bitcoin-cash-node that referenced this pull request Jul 10, 2024
Co-authored-by: Calin Culianu <[email protected]>

This is commit Bitcoin-ABC#2 from: bitcoin/bitcoin#19988
Adapted to BCHN (removed witness txid, and other odds and ends).

Original commit message:

    Add unit tests for TxRequestTracker. Several scenarios are tested,
    randomly interleaved with eachother.

    Includes a test by Antoine Riard (ariard).
johann-sys added a commit to johann-sys/bitcoin-abc that referenced this pull request May 15, 2025
logoMainnet Explorer
learn more about eCash !
block height/hash, txid, address
Address
ecash:qz60j37wmr0wv2k9ksz5e4qkjdzgxggg3sr98q45ug
Details
JSON
Summary
Script Public Key
76a914b4f947ced8dee62ac5b4054cd41693448321088c88ac
Balance
0
Transactions
2
QR Code
ecash:qz60j37wmr0wv2k9ksz5e4qkjdzgxggg3sr98q45ug
Scripthash
6b7253cd13966210f51a0482486181fb036f639aa1f2fbf6ddd0daee039d4450
Is Valid?
Is Script?
2 Transactions
Newest First
Bitcoin-ABC#2–
0357c59fffffd39cd438db127a39e88887ab818b7b9933db03ba7e44dc73a98f
-552,510.39XEC
6/2, 2014 19:24
(10y, 11mo, 13d ago)
> Input #0 / 0
p2pkhe4a57a901c8d13e411ad47024… #0
(addr:ecash:qz60j37wmr0wv2k9ksz5e4qkjdzgxggg3sr98q45ug
552,510.39XEC
Total Input:
552,510.39XEC
< Output #0 / 1
p2pkh
ecash:qzgyfwdkwn9zx6h9vvl0tafupvk2drkdtg0kzut2al
204,747.39XEC
< Output Bitcoin-ABC#1 / 1
p2pkh
ecash:qzq4es9v7eq2wfm6rxwhpazaryes4xyedsfpjlylcd
347,763XEC
Total Output:
552,510.39XEC
Bitcoin-ABC#1–
e4a57a901c8d13e411ad47024dcba3e04f268c99c6fc1e99f0bf14afc2e81c7f
+552,510.39XEC
5/19, 2014 19:36
(10y, 11mo, 27d ago)
> Input #0 / 18
p2pkh01f5cb95681c922d44ae517da… Bitcoin-ABC#1
(addr:ecash:qqc24zdvcnjhnusda0jkvrrgmkg0jnl88vg4txjsg5
0.01XEC
> Input Bitcoin-ABC#1 / 18
p2pkh6e8f883eb799a9a286fe492a3… #0
(addr:ecash:qr0tjhmsrgjsf3k72xdtqv7flxq750x645z0wwxpmq
40.47XEC
> Input Bitcoin-ABC#2 / 18
p2pkh901bde191beb61d2fc5bf480c… Bitcoin-ABC#1
(addr:ecash:qrjckd8ep6grzchnsv9gcdzwcpwqjazn6unlutuff9
0.01XEC
> Input Bitcoin-ABC#3 / 18
p2pkh8cab265e1896f173757325295… #0
(addr:ecash:qqh24fuuud0yp5pn2q4spdh8yfwd8kskzyhtmgu8c6
53,927.28XEC
> Input Bitcoin-ABC#4 / 18
p2pkhbb79adc9ad5e696ed8fe08f74… Bitcoin-ABC#1
(addr:ecash:qqe3egddd4s95glp0kczh02evv3q326pvq9r25j3jn
0.01XEC
> Input Bitcoin-ABC#5 / 18
p2pkh4dacaefb3d43daed074189358… Bitcoin-ABC#1
(addr:ecash:qrrdyutsjnr5xy7fd60dgra9aw8jc5gjdy00exz55l
0.01XEC
> Input Bitcoin-ABC#6 / 18
p2pkh65f5d4d7b80e0cd4d4d477b65… Bitcoin-ABC#1
(addr:ecash:qrgs5rvlxee0f4cayf9tcslzdn3h7kky95jvyljnqq
0.01XEC
> Input Bitcoin-ABC#7 / 18
p2pkhf183d53245ab3a17a3278e696… #0
(addr:ecash:qrjckd8ep6grzchnsv9gcdzwcpwqjazn6unlutuff9
9,438XEC
> Input Bitcoin-ABC#8 / 18
p2pkh7f6ce8e4e912b8da7da9f43ac… Bitcoin-ABC#1
(addr:ecash:qzzy34srdrgtnzqcy3adgcxh278x78mwmuya540hkx
0.01XEC
> Input Bitcoin-ABC#9 / 18
p2pkh3922dd199e8901bc7dffc06fe… #0
(addr:ecash:qpycut36dx0j03us0c4l3hn9cfhyclu9e5nxxhz3dg
0.01XEC
> Input Bitcoin-ABC#10 / 18
p2pkhd00af226755d2f6f78c3c213d… Bitcoin-ABC#1
(addr:ecash:qpnyhed8vzp34mtg63cxxy6cdjcsdcnazsff2sylqt
0.01XEC
> Input Bitcoin-ABC#11 / 18
p2pkha04e516237bc80d3716a174e0… #0
(addr:ecash:qptuamelkkux8r5uuv8uqlzmn0ag2542fydyslz7s5
399,970XEC
> Input Bitcoin-ABC#12 / 18
p2pkhd63ccab1d9b1fe1788d21d38b… Bitcoin-ABC#1
(addr:ecash:qryd3ex3zq860sqzney5guqlf5r2y8huzcy0ng8uuv
5.13XEC
> Input Bitcoin-ABC#13 / 18
p2pkh0fe15b8cc74cfd189ca866132… Bitcoin-ABC#16
(addr:ecash:qrjckd8ep6grzchnsv9gcdzwcpwqjazn6unlutuff9
80XEC
> Input Bitcoin-ABC#14 / 18
p2pkh679fde36f4059292df243e074… Bitcoin-ABC#1
(addr:ecash:qzuch5gavmtnl7ql53xhswquhu8jz6p7z5jfej3nam
0.01XEC
> Input Bitcoin-ABC#15 / 18
p2pkha2a641d13a94a3dcc77cacaa8… Bitcoin-ABC#6
(addr:ecash:qrjckd8ep6grzchnsv9gcdzwcpwqjazn6unlutuff9
400XEC
> Input Bitcoin-ABC#16 / 18
p2pkh46f3140ef52750b7c380e8f91… Bitcoin-ABC#200
(addr:ecash:qrjckd8ep6grzchnsv9gcdzwcpwqjazn6unlutuff9
20.68XEC
> Input Bitcoin-ABC#17 / 18
p2pkhafa535d4b4e2345cf7fce38f9… Bitcoin-ABC#46
(addr:ecash:qrjckd8ep6grzchnsv9gcdzwcpwqjazn6unlutuff9
96.45XEC
> Input Bitcoin-ABC#18 / 18
p2pkh6ab5f652b42b27703f5c1fc34… Bitcoin-ABC#1
(addr:ecash:qzrn4d90fw6029pmdn95r5wy68z4638luyv5rnl303
88,932.29XEC
Total Input:
552,910.39XEC
< Output #0 / 0
p2pkh
ecash:qz60j37wmr0wv2k9ksz5e4qkjdzgxggg3sr98q45ug
552,510.39XEC
Total Output:
552,510.39XEC
hosted by bitcoinabc.org
Fabcien pushed a commit that referenced this pull request Oct 31, 2025
Summary:
Yet another iteration on this but this time confirmed with local build and debug logs.

We can still pin these versions, so we should.

imo we should leave these debug logs in case there are future issues with CI, e.g. could happen if a diff lands that updates 2 modules at once, may need to see what dep got in.

Test Plan:
```
docker build --progress=plain -f ecash-agora.Dockerfile -t ecash-agora_local .
```

Output (confirms we get the latest versions and not local versions)

```
#0 building with "default" instance using docker driver

#1 [internal] load build definition from ecash-agora.Dockerfile
#1 transferring dockerfile: 1.43kB done
#1 DONE 0.0s

#2 [internal] load metadata for docker.io/library/node:22-bookworm-slim
#2 DONE 2.7s

#3 [internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [1/5] FROM docker.io/library/node:22-bookworm-slim@sha256:7e3a5fac109e00e9f2616cd24f5227e2eb0d473bf33b98d661b0c1862f6bfbbd
#4 DONE 0.0s

#5 [internal] load build context
#5 transferring context: 951.95kB 0.1s done
#5 DONE 0.1s

#6 [2/5] WORKDIR /app/modules/ecash-agora
#6 CACHED

#7 [3/5] COPY modules/ecash-agora .
#7 DONE 0.4s

#8 [4/5] RUN ECLIB_VERSION=$(npm view ecash-lib version)     && CCLIENT_VERSION=$(npm view chronik-client version)     && EWALLET_VERSION=$(npm view ecash-wallet version)     && echo "Latest versions from npm:"     && echo "  ecash-lib: $ECLIB_VERSION"     && echo "  chronik-client: $CCLIENT_VERSION"     && echo "  ecash-wallet: $EWALLET_VERSION"     && npm pkg set dependencies.ecash-lib=$ECLIB_VERSION     && npm pkg set dependencies.chronik-client=$CCLIENT_VERSION     && npm pkg set dependencies.ecash-wallet=$EWALLET_VERSION     && echo "Updated package.json dependencies:"     && cat package.json | grep -A 5 '"dependencies"'
#8 4.790 Latest versions from npm:
#8 4.790   ecash-lib: 4.5.1
#8 4.790   chronik-client: 3.4.1
#8 4.790   ecash-wallet: 2.2.0
#8 4.971 Updated package.json dependencies:
#8 4.972     "dependencies": {
#8 4.972         "chronik-client": "3.4.1",
#8 4.972         "ecash-lib": "4.5.1",
#8 4.972         "ecash-wallet": "2.2.0"
#8 4.972     }
#8 4.972 }
#8 DONE 5.0s

#9 [5/5] RUN rm -f package-lock.json     && npm install     && npm run build
#9 7.044
#9 7.044 added 41 packages, changed 3 packages, and audited 315 packages in 7s
#9 7.044
#9 7.044 43 packages are looking for funding
#9 7.044   run `npm fund` for details
#9 7.047
#9 7.047 7 vulnerabilities (1 low, 5 moderate, 1 high)
#9 7.047
#9 7.047 To address all issues, run:
#9 7.047   npm audit fix
#9 7.047
#9 7.047 Run `npm audit` for details.
#9 7.136
#9 7.136 > [email protected] build
#9 7.136 > tsc && tsc -p ./tsconfig.build.json
#9 7.136
#9 DONE 10.2s

#10 exporting to image
#10 exporting layers
#10 exporting layers 0.3s done
#10 writing image sha256:dcca77ce4b5f49de525a11894ad54cdac51e898e91af481a16b69a7c119abdd2 done
#10 naming to docker.io/library/ecash-agora_local done
#10 DONE 0.3s
```

Output:

```
docker run --rm ecash-agora_local cat /app/modules/ecash-agora/package.json
{
    "name": "ecash-agora",
    "version": "2.6.2",
    "description": "Library for interacting with the eCash Agora protocol",
    "main": "./dist/index.js",
    "scripts": {
        "build": "tsc && tsc -p ./tsconfig.build.json",
        "test": "mocha --import=tsx ./src/*.test.ts ./src/**/*.test.ts",
        "integration-tests": "mocha --import=tsx ./tests/*.test.ts --timeout 60000",
        "coverage": "nyc npm run test",
        "junit": "npm run test --reporter mocha-junit-reporter"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/Bitcoin-ABC/bitcoin-abc.git",
        "directory": "modules/ecash-agora"
    },
    "keywords": [
        "ecash",
        "xec",
        "bitcoin"
    ],
    "author": "Bitcoin ABC",
    "license": "MIT",
    "bugs": {
        "url": "https://github.com/Bitcoin-ABC/bitcoin-abc/issues"
    },
    "homepage": "https://github.com/Bitcoin-ABC/bitcoin-abc#readme",
    "devDependencies": {
        "@istanbuljs/nyc-config-typescript": "^1.0.2",
        "@types/chai": "^4.3.14",
        "@types/chai-as-promised": "^7.1.8",
        "@types/mocha": "^10.0.6",
        "@types/node": "^20.12.7",
        "chai": "^4.4.1",
        "chai-as-promised": "^7.1.1",
        "mocha": "^10.4.0",
        "mocha-junit-reporter": "^2.2.1",
        "nyc": "^15.1.0",
        "source-map-support": "^0.5.21",
        "ts-node": "^10.9.2",
        "tsx": "^4.7.2",
        "typescript": "^5.4.3"
    },
    "dependencies": {
        "chronik-client": "3.4.1",
        "ecash-lib": "4.5.1",
        "ecash-wallet": "2.2.0"
    }
}

```

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D18857
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants