Skip to content

Latest commit

 

History

History
779 lines (564 loc) · 23 KB

CHANGELOG.md

File metadata and controls

779 lines (564 loc) · 23 KB

@farcaster/hubble

1.9.6

Patch Changes

  • 577d698d: fix: Remove score penalty for duplicate gossip messages
  • 57ce2c66: fix: reduce sync freqency to help reduce hub load

1.9.5

Patch Changes

  • f8c5f280: fix: Revert verification renames which break http backwards compatibility
  • Updated dependencies [f8c5f280]

1.9.4

Patch Changes

  • fd9f9ff8: Rename verification message
  • Updated dependencies [fd9f9ff8]
  • Updated dependencies [362f580b]

1.9.3

Patch Changes

  • 229ea166: feat: Add support for FrameAction and validateMessage
  • Updated dependencies [229ea166]

1.9.2

Patch Changes

  • 11a1e0d2: fix: Don't add deleted fnames to sync trie
  • 7379a05f: feat: add a gossip message delay stat
  • 00473c2a: fix: Do not add fnames to the sync trie when they have not been merged

1.9.1

Patch Changes

  • c78f01b3: fix: Admin reset key event may have reset the wrong key sometimes

1.9.0

Minor Changes

  • chore: Release 1.9

Patch Changes

  • 20b65759: chore: rename/remove v2 contract address cli params after migration
  • 704e0777: feat: Add usage information to getCurrentStorageLimitsByFid rpc call
  • Updated dependencies [704e0777]

1.8.0

Minor Changes

  • Expiry date changed to 1/10/24 0:00:00 UTC

Patch Changes

  • 6bfb694b: fix: Handle docker-compose versions in hubble.sh

1.7.2

Patch Changes

  • 912f680f: fix: catch and ignore provider errors during retry

1.7.1

Patch Changes

  • 5199f66e: fix: disallow empty casts
  • 6890969b: fix: remove references to old contracts
  • 5199f66e: fix: Allow syncTrie to handle names that are substrings
  • 5199f66e: fix: Fix peer check job not actually starting
  • Updated dependencies [6890969b]

1.7.0

Minor Changes

  • 3313c232: Adds support for contact info content signing + strictNoSign
  • f3d32227: feat: Support v2 id and key registry contracts

Patch Changes

1.6.6

Patch Changes

  • b47c65bb: Adds application-specific peer scoring to peer scoring for gossipsub with early immune list
  • 559afd0e: fix: hubble autoupgrade should ensure dependencies and clean unused docker data
  • 173c9d61: fix: Fix stale contactInfo caches on SyncEngine

1.6.5

Patch Changes

  • 153da45a: Remove PubSub PeerDiscovery in favor of ContactInfo based PeerDiscovery
  • ec2711df: fix: Lower seenTTL to 5 mins to reduce memory consumption
  • 6d54786e: fix: Prevent hub startup if protocol version is expired
  • 2abaa115: add memory stats
  • Updated dependencies [153da45a]

1.6.4

Patch Changes

  • a3e12f54: fix: Fix contactInfo messages not being forwarded and increase seen ttl to prevent future loops

1.6.3

Patch Changes

  • 89ce7d2d: fix: enable asyncValidation so we don't forward invalid messages on gossip
  • a5708f85: chore: Remove grpc-web
  • b518b97f: fix: Cache numFids and numFnames
  • 86bed6f5: fix: Make message counts on-demand to speed startup
  • ba86d374: feat: Allow signing raw message data bytes to support rust, Golang etc...
  • Updated dependencies [ba86d374]

1.6.2

Patch Changes

  • 17ca659b: fix: Persist grafana container data
  • e2ada603: fix: Exists check should not crash the hub

1.6.1

Patch Changes

  • 902447f8: fix: Fix buggy crontab entry that would try to upgrade every minute
  • e10a8c93: fix: Improve logging on unhandled errors
  • 81e6d8ec: FIP-8 contract verifications
  • aacff028: Remove eslint-config-custom dependencies
  • c7b28b06: fix: Run crontab as root for hubble.sh
  • 9ca079e4: chore: Add peer scores to grafana dashboard
  • 433bee81: feat: Enable events sync by default
  • f5c70348: docs: Linter now checks the rpc.proto to make sure all methods and implemented in HTTP API
  • c0741888: fix: Fix off by one error when inserting into trie
  • 5b7d5686: fix: Handle errors from L2 getevents
  • Updated dependencies [81e6d8ec]
  • Updated dependencies [aacff028]
  • Updated dependencies [c33f5270]
  • Updated dependencies [433bee81]

1.6.0

Minor Changes

  • 09b7949c: feat: make verifications globally unique

Patch Changes

  • 8abf1864: feat: add migration to clear onchain events and force re-sync
  • c64400dc: fix: Use DB_SCHEMA version in snapshot path
  • 4dea7e28: chore: Upgrade ed25519-dalek in rust
  • 472e8ae3: feat: Add a flag to clear l2 events
  • ef795c71: upgrade viem to 1.12.2
  • ef795c71: fall back to eth_getLogs in event sync
  • b7c2b0a9: chore: Replace hub-web with HTTP api examples
  • 14f67cf2: feat: Add peer scoring
  • 03cd3333: feat: Audit peer's messages during sync
  • Updated dependencies [14f67cf2]

1.5.6

Patch Changes

  • aa6553b1: feat: Enable HTTP API server
  • fb1f5c61: feat: Support onchain events and fnames in sync trie
  • f743a430: feat: Allow settings CORS for http api
  • f0ad204e: feat: Repair sync trie when events and fnames are already present
  • 833d9651: fix: hubble.sh - Don't delete before overwriting
  • bc4a1366: fix: HTTP API add getInfo and other doc fixes
  • aeab5a4c: docs: Refactor HTTP API docs
  • 4809c9c8: fix: HTTP API port in docker-compose
  • f163fa3d: chore: Remove "yarn status" command
  • 4b99eddb: feat: Support fname and onchain event syncids
  • Updated dependencies [aeab5a4c]

1.5.5

Patch Changes

  • a232963c: fix: Cleanup old snapshots from S3
  • 7cbd77ee: test: Add e2e test for hubble startup
  • 7b438e62: test: Add 2 hubble sync+gossip test
  • e8b2dafa: fix: Fix flaky pruneMessagesJob test
  • 0bc82ce4: test: Fix broken test due to Link storage limits change
  • 82c996af: fix: Grafana: Sync times are blank for longer timeranges
  • 7e2a66e5: feat: Add a function to parse the timestamp from the eventId
  • 520843ba: feat: Move libp2p to worker thread
  • d77970b1: chore: Delete deprecated rpc calls and events
  • Updated dependencies [d77970b1]

1.5.4

Patch Changes

  • 0805122c: fix: Grafana issue where incoming sync count was not correct
  • 4893e02d: fix: Update links store size to be 2500 in the future
  • 5dc7d113: chore: Remove GossipMetricsRecorder (Use grafana dashboard instead)
  • 8d21803e: feat: Add "up" and "down" commands to hubble.sh

1.5.3

Patch Changes

  • 08b652e: fix: Add txIndex to onchain events, fix wrong index being used in the primary key
  • b36eef2: fix: Extract snapshot on the fly while downloading snapshot
  • 93e43a8: fix: Use hashes to compare upgrade 'hubble.sh' versions
  • 7daaae4: fix: Simplify IP addr fetching, prefering ipv4
  • ac1f6ac: fix: Fetch envoy config during hubble.sh
  • baf983f: fix: Consume the FID rate limit only after a successful merge
  • Updated dependencies [08b652e]

1.5.2

Patch Changes

  • 2f2dd83d: feat: Snapshot sync
  • 40e017fe: fix: Fix progress bar for docker (non-TTY)
  • 6c12fee5: fix: Add custom linter for Grafana JSON
  • cff71488: chore: Remove Goerli RPC url and signer message logic
  • 52260bc8: chore: Deprecate "status" command
  • 0f83be8f: fix: Reformat grafana dashboard with descriptions
  • 316bcd3a: chore: Remove signer pre-sync for initial sync
  • 3c32cf21: fix: Supress progress logs during tests
  • 2ab99d95: feat: Add REST API
  • 7fd1f945: fix: Add progress bar for storage cache
  • aac4220f: chore: Add cli options documentation linter
  • 5cb9db86: feat: Sync latest messages first
  • bc416dbe: feat: Allow Hub operators to set an FID
  • 5e5cfb15: fix: Ensure index keys are > UserMessagePostfixMax
  • ef65fd40: fix: Count peer validation errors during sync
  • bab7bba9: chore: Update the Grafana dashboard
  • 76a031e2: feat: Add storage limit constants to core
  • Updated dependencies [2ab99d95]
  • Updated dependencies [bc416dbe]
  • Updated dependencies [76a031e2]

1.5.1

Patch Changes

  • 9138ca9e: chore: Improve dashboard with sync %, versions
  • 8ea938ab: fix: Handle both 'docker-compose' and 'docker compose' in hubble.sh
  • 05e5ed1e: fix: Stream buffer size to 5K and correct store size limits

1.5.0

Minor Changes

  • be6ee3c8: feat: Make l2 rpc url required to start hubble ahead of mainnet migration

Patch Changes

  • ee3897f3: feat: Add startup checks and progress bars
  • 01a3c08e: feat: fetch l2 contract addresses from network config
  • b50024c8: fix: Improve startup checks to be clearer
  • 315a0873: feat: add an events-reset command to clear l2 events from the db
  • 74313c17: Switch startup checks to check against OP Mainnet
  • a3d6b21e: fix: Cleanup startup checks and add cleaner exit failures
  • e6180074: feat: enforce storage pruning 1 day after migration
  • a508e56f: chore: Improve gen.submitMessages() for testing
  • 930d8635: chore: Update the Grafana dashboard
  • 7a969943: fix: Improve logging for DB migration failures
  • 27287d2d: feat: hubble.sh script to install and upgrade hubble
  • bf1c44d2: feat: Update signer onchain event to store new fields and add additional RPC calls
  • acfb44d7: feat: SyncEngine syncs from L2 if required post migration
  • Updated dependencies [bf1c44d2]

1.4.6

Patch Changes

  • e55e571f: feat: Add "getting blockchain events" to hub status
  • 5e96e134: fix: Handle network failures when fetching config
  • 951793b1: fix: getUserNameProofsByFid should return fname proofs as well
  • 3e601f81: fix: Fetch L2 events in parallel before processing, show progress
  • 6ec14935: feat: Remove permissioned allowlist for mainnet hubs
  • c61728cb: fix: DB Migration for UserNameProof index messages
  • 6bb1b439: fix: Handle sync status reporting properly
  • 1fcfd495: fix: fetching l2 events was not respecting --l2-first-block
  • f9631488: feat: Add statsd monitoring for Hubble
  • c6d79cdb: feat: on chain event ordering updated to be more consistent
  • f241dcf4: fix: Make sure valid messages are inserted into Sync Trie
  • 36484022: fix: user name proofs weren't syncd correctly because they were not added to the sync trie
  • 8d61f5f2: fix: Improve initial eth events fetching
  • d8cb39ac: fix: Limit SyncStatus to upto 30 peers
  • Updated dependencies [e55e571f]
  • Updated dependencies [c6d79cdb]

1.4.5

Patch Changes

  • 437545cc: fix: Log when network config is updated
  • 41334ab8: fix: Move rust code to apps/hubble, making core package PureJS

1.4.4

Patch Changes

  • 083762e5: feat: Improve profiler for gen messages and storage
  • 63260785: fix: Bugfix where testnet would restrict peers
  • 40c17c9b: feat: Add fallback bootstrap peers for mainnet
  • d443fbe9: Adds support for logging would-be-pruned events, plus handles extra storage if purchased
  • 571e5434: fix: Fetch network config only for mainnet
  • c7ec4ca9: feat: revoke signers 1hr after custody event
  • ec7734cf: feat: Move blake3 hash into rust
  • 996be825: fix: handle revoking on chain signer and make l2 options customizable
  • 1e0979b0: feat: Rate limit merges per FID to the total messages storage available for the FID
  • 503b379d: feat: Check integrity of messages during sync
  • b9efe14a: feat: validate name proofs against fids rather than custody address to enable smoother fid recovery process
  • 65a4faff: feat: Create a deny list for PeerIDs
  • a1b9aced: fix: Limit the number of simultaneous subscribe() streams by IP address
  • 3f180073: chore: Update grpc-js and setup grpc server timeouts
  • dcd7a149: feat: support migrating to l2
  • 39e0141d: fix: Fix the TestData generation for testnet
  • b598c4a2: feat: Add libp2p gossip server profiler
  • 9ae366b7: fix: Fix onchain event subscription not sending events correctly
  • 9f669b57: feat: Scale validation workers by number of CPUs and add a RPC profiler
  • 2df38497: feat: Deprecate time based pruning in sets
  • 67e9466e: feat: refactor storage rent events to on chain events
  • 50a6b8ac: Adjusted rent prune log to debug instead of warn
  • 86149d32: Added storage limits RPC
  • Updated dependencies [3f180073]
  • Updated dependencies [dcd7a149]
  • Updated dependencies [67e9466e]
  • Updated dependencies [86149d32]

1.4.3

Patch Changes

  • f00d7d2: fix: Move validatorOrRevokeMessage and storageCache iterators to be managed
  • 115f1b5: feat: Do the validateOrRevokeMessages job fid-by-fid
  • 998979d: feat: Warn if there are no incoming connections
  • c1bb21c: fix: When retring messages due to failed signers, use a queue
  • 376ae0f: feat: Use a web based network config for hubble

1.4.2

  • 1d9c34af: Testnet should not require allow listed peers

1.4.1

Minor Changes

  • 2391c3a5: Adds support for storage events
  • 15d43931: feat: support fallback RPC providers
  • 3dfc29de: fix: throw error if unable to fetch fname server signature
  • 71558f87: Reduce number of confirmations for ETH blocks from 6 to 3
  • 8d0d87dc: Add support for direct peering
  • f179dd6a: fix: Add managed iterator that will close the iterator under all conditions
  • 6042e957: fix: only revoke the username if the nameproof matches
  • 728a557a: Adjust chunk size to 1000 from 10000
  • a0dbfbd8: perf: Improve incremental sync performance
  • Updated dependencies [57235761]
  • Updated dependencies [2391c3a5]

1.4.0

Minor Changes

  • a38720b: chore: Hard fail on missing RPC urls.

Patch Changes

  • 2817141: perf: Tune sync parameters and add mergeMessages profile
  • b5becd9: fix: Improve logging for open iterators and add hub events timeout

1.3.4

Patch Changes

  • d5d65bd: Prevent connecting to peers not in allowed peer list
  • 1d07446: Display correct app version when run in Docker container
  • f9c978a: Include bad_request.prunable in list of INVALID_ARGUMENT errors
  • f54185f: Updated EthEventProviders to hard fail unable to connect to eth RPC provider
  • e513a3f: fix: Prevent unnecessary sync and log messages by filtering out SyncIDs our node already has
  • 6e7ce94: perf: Fetch upto 4 leaf nodes at a time during sync
  • dbe6074: Allow log level to be configured via environment variable
  • cd0ddd6: feat: Add support for ens names
  • a08bff3: Better error messages for config file
  • 850f82f: perf: Add a sync profiler
  • 229b806: Add a "yarn profile storage" command that prints the usage of the RocksDB database
  • 4fa7a56: rename UserDataType.FNAME to UserDataType.USERNAME
  • Updated dependencies [cd0ddd6]
  • Updated dependencies [4fa7a56]

1.3.3

Patch Changes

  • abca3ed: Fixed bug with prune limits
  • 5a1baae: Switch fnames from contract events to fname server proofs
  • Updated dependencies [5a1baae]

1.3.2

Patch Changes

  • 159c62d: Upgraded viem to 1.1.4 Used viem to interact with ethereum

1.3.1

Patch Changes

  • 7dabc0b: Refactored stores to use a generic implementation for easier addition of types
  • 6667748: Handle peers with no messages in status command
  • f1c6b25: Fetch, validate and store username proofs from fname registry
  • c6fc422: Fix server hanging due to slow subscribers in certain conditions
  • Updated dependencies [f1c6b25]

1.3.0

Minor Changes

  • 2bc598a: Added support for Links

Patch Changes

  • 37f515f: Add app version to contactInfo message
  • 7f050d2: Correctly error when sequence ID exceeds max allowed value
  • 27181c6: added fallback to dbreset
  • 16ea9b4: Validate the eth network in ethEventsProvider
  • Updated dependencies [2bc598a]

1.2.4

Patch Changes

1.2.3

Patch Changes

  • c4891754: Add --watch to hub status command and more readable output
  • 2ca66b17: replace @noble/ed25519 with faster and more secure @noble/curves
  • 43444471: fix(eth): add stronger retry logic to eth events provider
  • ea55abcb: Include semver as explicit dependency
  • fe755fbd: Switch from rocksdb to @farcaster/rocksdb NPM package
  • 651df412: Add @faker-js/faker as prod dependency
  • Updated dependencies [2ca66b17]

1.2.2

Patch Changes

  • 5308788: improve handling of duplicate messages on gossip
  • 1236b4e: Add a GetSyncStatus rpc call that exposes the hubs sync status with different peers
  • 2e633db: Reject prunable messages on merge
  • Updated dependencies [1236b4e]

1.2.1

Patch Changes

  • 4fc3198: Dedupe eth events when retrying to be more efficient with api calls
  • 5cee2c5: Fix sync stalling because id registry events weren't retried correctly
  • 427ced4: Remember bad peers during sync and ignore them for a while to reduced excessive sync attempts
  • 421c385: Add sync stats to getInfo rpc call
  • Updated dependencies [421c385]

1.2.0

Minor Changes

  • 87b2789: upgrade to protocol version 2023.4.19
  • 87b2789: support CastId embeds, cast parent URLs, and reaction target URLs

Patch Changes

  • a027a3e: periodically compact the db while syncing to prevent bloat
  • 0cb0a52: chore: re-organize SyncEngine to merge messages through Hub's submitMessage method rather than the storage engine directly
  • Updated dependencies [87b2789]

1.1.0

Minor Changes

  • 34fe54f: Include network id in gossip topics to keep networks isolated

Patch Changes

  • 31d8917: Add cli option to configure commit lock size and timeout
  • 0fbbbcc: Make dbreset its own command
  • a3b0d09: Check in list of allowed peers on Mainnet
  • 25c768d: Hangup on peer when removing from address book.
  • 8758ef2: log sync status for better visibility

1.0.22

Patch Changes

  • edea195: Ensure hub networks match when syncing with peers

1.0.21

Patch Changes

  • c4529a7: merge protobufs and utils packages into core
  • Updated dependencies [1e4e5ba]
  • Updated dependencies [c4529a7]

1.0.20

Patch Changes

  • 71d6494: Helpful error when identity proto is not found
  • 142f3f5: add getIdRegistryEventByAddress rpc and engine method
  • 8e46cac: Start rpcServer before ethEventsProvider
  • 1f47906: remove grpc-js dependency from protobufs, refactor hubble to use hub-nodejs hub-web to use @farcaster/protobufs and utils
  • b9643b2: Fix issue where sync was off by 1
  • 564f61e: Retry missing IdRegistry events from Eth node instead of peer
  • 54dbf42: End iterator in while rebuilding trie
  • 13415ea: Write events to subscribe() with a timeout to prevent slow clients from clogging up memory
  • d0239f8: Retry bootstrap nodes if all fail to connect
  • 759e1cf: Ignore outdated hubs for sync
  • 9e39bb8: Update docs to close grpc connections after use
  • Updated dependencies [1f47906]
  • Updated dependencies [9e39bb8]

1.0.19

Patch Changes

  • fe74a1e: Close RPC connections to fix a memory leak
  • 1025d3b: Support multiple RPC users via comma-separated-list
  • de25020: Refuse to startup if DB network is mismatched
  • 58cfbb9: Gossip server listens on 0.0.0.0 by default
  • 9ee1076: Better grpc error messages when auth fails

1.0.18

Patch Changes

  • e5cb327: Remove getHubRpcClient, use getSSLRpcClient() or getInsecureRpcClient()
  • misc: Numerous perf and bug fixes for testnet release
  • Updated dependencies [e5cb327]

1.0.17

Patch Changes

  • c26fafa: Add test data to testnet hubs via TEST_USERS env variable
  • 0f6737b: Add IP-based rate limiting for submitMessage()
  • 5c78405: upgrade ethers to 6.2.1
  • 6a0bf29: Gossip dnsName when sharing contact info
  • a89a5b9: Reset DB if DB_RESET_TOKEN is set
  • e29958e: Terminate webworkers when shutting down
  • Updated dependencies [12c9c40]
  • Updated dependencies [dc69b66]
  • Updated dependencies [5c78405]
  • Updated dependencies [6a0bf29]
  • Updated dependencies [23de6e7]

1.0.16

Patch Changes

  • a91afdb: Allow specifying hub nickname via environment variable
  • 1b0e3a7: Add RPC Auth via Env variables and a new getAuthMetadata method to make it easier to use RPC auth
  • 59920f9: upgrade ethers from v5 to v6
  • d63e05f: Switch to time-based check for process shutdown file
  • 1e4482e: updated dependencies
  • b596ec9: Yield to newer hubs started with the same RocksDB
  • Updated dependencies [469825e]
  • Updated dependencies [1b0e3a7]
  • Updated dependencies [59920f9]
  • Updated dependencies [99518ef]
  • Updated dependencies [1e4482e]

1.0.15

Patch Changes

  • 8f2c6ef0: Increase sync trie Q limit
  • 4e6b83e1: Retry DB open on failure upto 5 times
  • Updated dependencies [86c00f53]

1.0.14

Patch Changes

1.0.13

Patch Changes

1.0.12

Patch Changes

1.0.11

Patch Changes

1.0.10

Patch Changes

1.0.9

Patch Changes

1.0.8

Patch Changes

1.0.7

Patch Changes

1.0.6

Patch Changes

  • Updated dependencies [d21a8f2]
  • Updated dependencies [6a66bae]
  • Updated dependencies [1151fea]
  • Updated dependencies [cf9c64c]

1.0.5

Patch Changes

1.0.4

Patch Changes

1.0.3

Patch Changes

  • b43fade: feat: add protobufs IdRegistryEvent and SignerStore
  • Updated dependencies [58738a4]
  • Updated dependencies [526bd17]
  • Updated dependencies [b43fade]
  • Updated dependencies [ae7639c]
  • Updated dependencies [cd84f7c]
  • Updated dependencies [2e32983]

1.0.3

Patch Changes

  • b43fade: feat: add protobufs IdRegistryEvent and SignerStore
  • Updated dependencies [58738a4]
  • Updated dependencies [526bd17]
  • Updated dependencies [b43fade]
  • Updated dependencies [ae7639c]
  • Updated dependencies [cd84f7c]
  • Updated dependencies [2e32983]

1.0.2

Patch Changes

1.0.1

Patch Changes