Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New RPC calls: monitortx monitorblocks listmonitored getblock #198

Closed
wants to merge 1 commit into from

Conversation

gavinandresen
Copy link
Contributor

monitortx/monitorblocks: POST JSON-RPC to a URL when new wallet transactions or blocks are received.
listmonitored: list URLS that will be POSTed to
getblock: get information about a block, given depth in main chain.

@gavinandresen
Copy link
Contributor Author

@gavinandresen
Copy link
Contributor Author

Made it work with the re-organized CWallet codebase...
... but I'm not 100% happy with it. I'm not sure it properly handles block chain re-orgs and dependent orphan transactions. Would be nice to write some tests to exercise those edge cases, and figure out what it SHOULD do in those cases.

@sipa
Copy link
Member

sipa commented Jun 23, 2011

I believe it will only do the callback for newly arriving blocks when doing a reorganisation, and not for replacements of older blocks (didn't test it though). If that's not what you want, the call to monitorBlock() should go in CBlock::ConnectBlock() (called for each block that's being added to the main chain).

Dependent transactions are only used for self-created transactions, so that isn't an issue I believe.

Also, if monitortx is only for your own transactions, i believe its list of listeners should go in CWallet (at least for now), and the callback in CWallet::AddToWallet(). I intended the dispatch functions in main.cpp (incl. SyncWithWallets) to be replacable with a generic listener system one day, so i prefer them not to contain any real logic.

monitortx/monitorblocks: POST JSON-RPC to a URL when new wallet transactions or blocks are received.
listmonitored: list URLS that will be POSTed to
getblock: get information about a block, given depth in main chain.
@gavinandresen
Copy link
Contributor Author

Closing this for now; code is still in my github tree, but I'm working on what I think are higher-priority things right now.

@gavinandresen gavinandresen deleted the monitorreceived branch November 4, 2013 06:16
btcdrak pushed a commit to btcdrak/bitcoin that referenced this pull request Nov 28, 2015
Litecoin: String update s/Bitcoin/Litecoin/
kleetus pushed a commit to kleetus/bitcoin that referenced this pull request Feb 5, 2016
Changes are:

* Update version number to 1.18
* Replace the basic fprintf call with a call to fwrite in order to
  work around the apparent compiler optimization/rewrite failure that we are
  seeing with the new toolchain/iOS SDKs provided with Xcode6 and iOS8.
* Fix ALL the header guards.
* Createed a README.md with the LevelDB project description.
* A new CONTRIBUTING file.
* Don't implicitly convert uint64_t to size_t or int.  Either preserve it as
  uint64_t, or explicitly cast. This fixes MSVC warnings about possible value
  truncation when compiling this code in Chromium.
* Added a DumpFile() library function that encapsulates the guts of the
  "leveldbutil dump" command. This will allow clients to dump
  data to their log files instead of stdout. It will also allow clients to
  supply their own environment.
* leveldb: Remove unused function 'ConsumeChar'.
* leveldbutil: Remove unused member variables from WriteBatchItemPrinter.
* OpenBSD, NetBSD and DragonflyBSD have _LITTLE_ENDIAN, so define
  PLATFORM_IS_LITTLE_ENDIAN like on FreeBSD. This fixes:
   * issue bitcoin#143
   * issue bitcoin#198
   * issue bitcoin#249
* Switch from <cstdatomic> to <atomic>. The former never made it into the
  standard and doesn't exist in modern gcc versions at all.  The later contains
  everything that leveldb was using from the former.
  This problem was noticed when porting to Portable Native Client where no memory
  barrier is defined.  The fact that <cstdatomic> is missing normally goes
  unnoticed since memory barriers are defined for most architectures.
* Make Hash() treat its input as unsigned.  Before this change LevelDB files
  from platforms with different signedness of char were not compatible. This
  change fixes: issue bitcoin#243
* Verify checksums of index/meta/filter blocks when paranoid_checks set.
* Invoke all tools for iOS with xcrun. (This was causing problems with the new
  XCode 5.1.1 image on pulse.)
* include <sys/stat.h> only once, and fix the following linter warning:
  "Found C system header after C++ system header"
* When encountering a corrupted table file, return Status::Corruption instead of
  Status::InvalidArgument.
* Support cygwin as build platform, patch is from https://code.google.com/p/leveldb/issues/detail?id=188
* Fix typo, merge patch from https://code.google.com/p/leveldb/issues/detail?id=159
* Fix typos and comments, and address the following two issues:
  * issue bitcoin#166
  * issue bitcoin#241
* Add missing db synchronize after "fillseq" in the benchmark.
* Removed unused variable in SeekRandom: value (issue bitcoin#201)
deadalnix pushed a commit to deadalnix/bitcoin that referenced this pull request Jan 5, 2017
do not allow HTTP timeouts to happen in excessive.py
classesjack pushed a commit to classesjack/bitcoin that referenced this pull request Jan 2, 2018
cryptapus pushed a commit to cryptapus/bitcoin that referenced this pull request May 3, 2021
GetDesirableServiceFlags: Do not desire NODE_WITNESS
rajarshimaitra pushed a commit to rajarshimaitra/bitcoin that referenced this pull request Aug 5, 2021
…a" (bitcoin#198)

- repeated use of "also", --> furthermore, ...
- minor clarifications
- etc
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants