Jonathan Moody
a91e9f82ff
Add tests for headers, headers.subscribe, address.subscribe.
2022-09-29 12:12:38 -05:00
Jonathan Moody
3ddcbbb55d
Changes to make session.go testable. Conn created with Pipe()
...
used in testing has no unique Addr.
2022-09-29 12:10:06 -05:00
Jonathan Moody
813fd4590a
Add --max-sessions, --session-timeout args. Enforce max sessions.
2022-09-28 14:49:32 -05:00
Jonathan Moody
e56edf0c9a
Handle failures with goto instead of break. Update error logging.
2022-09-28 11:26:30 -05:00
Jonathan Moody
c42a4689cd
Only assign default port (50001) if neither --json-rpc-port nor
...
--json-rpc-http-port are specified.
2022-09-27 20:00:42 -05:00
Jonathan Moody
1d227dbca8
Support both pure JSON and JSON-over-HTTP services.
...
Forward NotifierChan messages to sessionManager.
2022-09-27 18:50:37 -05:00
Jonathan Moody
7f47de2949
Add core session/subscription logic (session.go).
...
Implement subsribe/unsubscribe handlers.
2022-09-27 18:50:36 -05:00
Jonathan Moody
b9cb9d8c5a
Make the service objects independent, so we don't have inheritance.
2022-09-27 18:50:36 -05:00
Jonathan Moody
8c66d67a52
Implement GetStatus() to pull data from HashXStatus table.
2022-09-27 18:50:36 -05:00
Jonathan Moody
603a18f590
Drop http.Request arg from handlers, and use RegisterTCPService().
2022-09-27 18:50:36 -05:00
Jonathan Moody
d03c992a25
Rename BlockchainService -> BlockchainBlockService.
2022-09-27 18:50:36 -05:00
Jonathan Moody
a5d07e0595
Pull out decode logic into named func newBlockHeaderElectrum().
2022-09-27 18:50:35 -05:00
Jonathan Moody
2e666843f1
Move claimtrie-related service/handlers to jsonrpc_claimtrie.go.
2022-09-27 18:50:27 -05:00
Jonathan Moody
4005996992
Move and rename BlockchainCodec, BlockchainCodecRequest.
...
These are not specifically "blockchain", rather they are
specific to how gorilla/rpc works.
2022-09-27 17:07:16 -05:00
Jonathan Moody
979d0d16b6
Adjust EffectiveAmountValue to include ActivatedSupportSum. ( #61 )
...
Make use of this in GetEffectiveAmount() tests.
2022-09-16 18:03:15 +03:00
Jonathan Moody
7d24ff82bf
Merge pull request #55 from moodyjon/blockchain_rpc1
...
Add some blockchain RPC handlers and DB fetching routines
2022-09-14 10:23:34 -05:00
Jonathan Moody
86a287ec69
Skip TestUDPPing if production server is down.
2022-09-13 15:35:54 -05:00
Jonathan Moody
891f63fb5c
Update jsonrpc_blockchain_tests.go for new sample data.
2022-09-13 15:33:24 -05:00
Jonathan Moody
789974227f
Add sample data from test_variety_of_transactions_and_longish_history.
...
Rework tests to use the sample data.
2022-09-13 15:05:11 -05:00
Jonathan Moody
71e79c553e
One more RPC (get_server_height), and update comment
...
to include full RPC name.
2022-09-08 13:17:52 -05:00
Jonathan Moody
b298454727
Fix RPC handler registration and BlockGetChunkResp name.
2022-09-08 11:50:06 -05:00
Jonathan Moody
8c8871b4d2
Register blockchain.* handlers in jsonrpc_service.go.
2022-09-07 15:01:47 -05:00
Jonathan Moody
20e32437e9
Rename blockchain.go -> jsonrpc_blockchain.go.
2022-09-07 14:32:34 -05:00
Jonathan Moody
d0d6145f9d
Refactor blockchain.go handlers to be compatible with gorilla/rpc.
...
Add speculative BlockchainCodecRequest which might handle rewriting
incoming method names.
2022-09-07 14:32:34 -05:00
Jonathan Moody
90afae7cd5
Add scripthash variants of RPC handlers.
2022-09-07 14:32:34 -05:00
Jonathan Moody
f5b8f2ce0d
Add --chain=X argument, and use it to determine chain when DB is empty.
2022-09-07 14:32:34 -05:00
Jonathan Moody
321bcf6420
Fix encoding of TX and Block hashes in response.
2022-09-07 14:32:34 -05:00
Jonathan Moody
293a3f685e
Fix some DB logic and add tests (blockchain_test.go).
2022-09-07 14:32:34 -05:00
Jonathan Moody
f55a5ed777
Continuing blockchain RPC handler work. Add JSON tags.
...
Fetch Height using TxCounts.
2022-09-07 14:32:34 -05:00
Jonathan Moody
50f7e91ead
Infer chain (mainnet, testnet3, regtest) based on DBStateValue.
...
Correct typo DDVersion -> DBVersion. Misc logging improvements.
2022-09-07 14:32:34 -05:00
Jonathan Moody
fe18c70bf7
Add some blockchain RPC handlers and database fetching routines.
2022-09-07 14:32:20 -05:00
Jeffrey Picard
9403d84a83
WIP: Resolve json rpc ( #57 )
...
* jsonrpc
* update readme for open file limits
* add CGO flags to readme
* remove uneeded logging
* don't start jsonrpc server in unit tests
* cleanup and add args for json rpc
* correct rpc default port
* remove unused test_rpc.sh script
Co-authored-by: Ubuntu <ubuntu@ns5010184.ip-15-235-15.net>
2022-09-07 21:36:07 +03:00
Jonathan Moody
09fd939b60
Merge pull request #60 from moodyjon/slicebacked_type_param
...
Update go.mod, go.sum for use of constraints (x/exp).
2022-09-07 07:22:01 -05:00
Jonathan Moody
dc9b4ada2a
Update go.mod, go.sum for use of constraints (x/exp).
2022-09-07 07:13:51 -05:00
Jonathan Moody
c38134b645
Merge pull request #56 from moodyjon/slicebacked_type_param
...
Add element type param T to SlicedBacked[T]. Require T satisfy
2022-09-07 05:39:34 -05:00
Jonathan Moody
d025ea1616
Add "on: pull_request" to worflow. ( #59 )
2022-09-06 22:13:13 +03:00
Jonathan Moody
5b690ff2ff
Merge pull request #58 from moodyjon/hashx_history_fix
...
Fix struct annotation for HashXHistoryValue. TxNums now little-endian.
2022-09-06 13:03:07 -05:00
Jonathan Moody
aa16207aa5
Fix struct annotation for HashXHistoryValue. TxNums now little-endian.
2022-09-06 12:57:45 -05:00
Jonathan Moody
78b9a625eb
Merge pull request #54 from moodyjon/hashx_history_fix
...
Payload of HashXHistoryValue should be an array of uint32 representing "txnums"
2022-09-06 12:40:06 -05:00
Jonathan Moody
e46ac7c913
HashXHistoryValue TxNums are unique in that they are little-endian
...
(at least when written by Python scribe on ARM64 Mac or x86).
2022-09-01 13:01:16 -05:00
Jonathan Moody
8ac89195db
Add element type param T to SlicedBacked[T]. Require T satisfy
...
constraints.Ordered to make BisectRight() statically type-safe.
2022-08-30 16:24:43 -05:00
Jonathan Moody
4e11433325
Payload of HashXHistoryValue should be an array of uint32 representing "txnums".
2022-08-26 10:18:01 -04:00
Jonathan Moody
9d9c73f97f
Add RepostedCount, EffectiveAmount prefix rows ( #51 )
...
* Rename prefix EffectiveAmount -> BidOrder.
* Add RepostedCount, EffectiveAmount prefix rows. Add testdata.
* Update db_get.go helpers to use EffectiveAmount, RepostedCount
tables. Update tests.
2022-08-26 16:24:39 +03:00
Jeffrey Picard
cbdcc5faeb
v0.2022.08.16.1
2022-08-16 14:56:19 +03:00
Jeffrey Picard
3a53f46114
Updates for build ( #50 )
...
* Updates for build
* go 1.18.1 in dockerfile
* use go 1.18.5
* trying this ...
* asdf
2022-08-16 14:52:26 +03:00
Jonathan Moody
071aa2a7ad
Catchup to python-herald schema. Plus lots of refactoring. ( #49 )
...
* Make prefixes_test.go more resilient against garbage left
by a prior crash. Also correct error logging.
* Don't do the ones' complement thing with DBStateValue fields
HistFlushCount, CompFlushCount, CompCursor. Python-herald
doesn't do it, and it presents one more irregular case for
(un)marshalling fields.
* Simplify type-specific partial packing, and simplify dispatch for pack key/value.
* Add struct field annotations and refactor to prepare for
use of "restruct" generic packing/unpacking.
* Add dynamic pack/unpack based on "restruct" module.
Dispatch normal pack/unpack through tableRegistry[] map
instead of switch.
* Add 5 new prefixes/tables (TrendingNotifications..HashXMempoolStatus).
* Undo rename. TouchedOrDeleted -> ClaimDiff.
* Fixup callers of eliminated partial pack functions. Have them use key.PartialPack(n).
* Add pluggable SerializationAPI. Use it in prefixes_test.
Populate PrefixRowKV.RawKey,RawValue when appropriate.
* Undo accidental bump of rocksdb version.
* Add .vscode dir to gitignore.
* Fix ClaimToChannelValue annotation. Implement BlockTxsValue workaround
as I can't find the right annotation to get it marshalled/unmarshalled.
* Strengthen partial packing verification. Fix bugs
in UnpackKey/UnpackValue for new types.
* Remove .DS_Store, and ignore in future.
* Fix MempoolTxKey, TouchedHashXValue. Remove some unneeded struct tags.
* Generate test data and complete the tests for the new tables.
Add Fuzz tests for TouchedHashXKey, TouchedHashXValue with
happy path test data (only).
* Move tableRegistry to prefixes.go and rename it prefixRegistry.
Other minor fixes, comments.
* Add test that runs through GetPrefixes() contents, and verifies
they are registered in prefixRegistry.
2022-08-16 08:45:41 +03:00
Jeffrey Picard
b018217899
fix release script ( #48 )
2022-08-10 21:06:56 +03:00
Jack Robison
13479794ed
Update readme.md
2022-08-10 11:05:39 -04:00
Jeffrey Picard
ab2a39ac6c
v0.2022.08.09.1
2022-08-09 17:19:53 +03:00
Jonathan Moody
ffa426b899
Bump to grpc v1.46.0. ( #45 )
2022-08-09 14:44:00 +03:00