Commit Graph

609 Commits

Author SHA1 Message Date
Sanjay
bca9618d98 chore: Release 1.13.1 (#2047)
## Motivation

Patch release with support for long casts

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [x] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [ ] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates package versions in different modules, introducing
support for long casts and updating dependencies.

### Detailed summary
- Bumped version to `0.14.15` in `@farcaster/core`
- Added support for long casts
- Updated dependencies in various packages
- Incremented versions in `@farcaster/hub-web` and
`@farcaster/hub-nodejs`
- Increased version to `1.13.1` in `@farcaster/hubble`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-13 18:23:46 +00:00
Sanjay
c424e111b2 feat: Implement longer casts FIP (#2045)
## Motivation

Implement https://github.com/farcasterxyz/protocol/discussions/182

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR adds support for long casts by introducing a new `CastType` enum
and updating validations and tests.

### Detailed summary
- Added `CastType` enum with `LONG_CAST`
- Updated validations for long casts
- Updated tests to support long casts

> The following files were skipped due to too many changes:
`packages/core/src/protobufs/generated/message.ts`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-13 11:03:17 -07:00
Sanjay
deef9535f3 chore: Release 1.13 (#2043)
## Motivation

Release 1.13

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers

<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates versions and dependencies across multiple packages. 

### Detailed summary
- Extended verifications signature max length
- Updated dependencies in `hub-nodejs` and `shuttle`
- Changed `farcaster/core` version to `0.14.14`
- Released `hubble` version `1.13.0`
- Updated `FARCASTER_VERSION` to `2024.6.12`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-12 12:21:19 -07:00
horsefacts
de52fbce0b feat: increase verification signature max length (#2038)
## Motivation

Coinbase Smart Wallet signatures are 1088 bytes long. We've bumped this
several times, so add some headroom on top.

## Change Summary

Increase verification signature max length to 2048 bytes.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [x] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR extends the maximum length of the `claimSignature` field in
verifications to 2048 bytes for better validation accuracy.

### Detailed summary
- Increased `claimSignature` max length from 512 to 2048 bytes in
validations
- Updated test cases to reflect the new max length of `claimSignature`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-11 12:16:55 -04:00
Shane da Silva
35d395f39c [chore] Add Node 22 to test matrix (#2033)
## Motivation

We eventually want to release hubs on Node 22, since it's been out for a
while.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [ ] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the app version determination method, adjusts CI
configurations for ARM support, and refactors the app version retrieval
in `hubble.ts`.

### Detailed summary
- Updated app version determination method in `hubble.ts`
- Adjusted CI configurations for ARM support
- Refactored app version retrieval using manual JSON parsing

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-09 07:48:15 +00:00
Shane da Silva
877966972f [chore] Update TypeScript 5.0.2 to 5.4.5 (#2034)
## Motivation

Stay up to date.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the TypeScript version, exports multiple signatures for
`farcasterTimeToDate`, and includes a new dependency for `uint8-varint`.

### Detailed summary
- Updated TypeScript to version 5.4.5
- Exported multiple signatures for `farcasterTimeToDate`
- Added `uint8-varint` dependency

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-07 23:17:20 -07:00
Sanjay
1c2dde78f3 feat: Add HUB_OPTIONS env var to docker compose (#2032)
## Motivation

Allow customizing docker compose startup commands via a HUB_OPTIONS env
var

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the `docker-compose.yml` file for the
`@farcaster/hubble` app to allow customizing HUB_OPTIONS environment
variable.

### Detailed summary
- Added `HUB_OPTIONS` environment variable to docker compose for
`@farcaster/hubble` app
- Removed specific values for `HUB_OPERATOR_FID` and
`HUB_OPT_OUT_DIAGNOSTICS` in favor of `HUB_OPTIONS` customization

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-07 22:42:18 +00:00
Sanjay
32ba027b08 chore: Release hub-nodejs and core packages (#2030)
## Motivation

Publish version with the update builder

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers
2024-06-06 18:46:55 +00:00
Cassandra Heart
911f8b23e6 chore: add builder for LinkCompactState (#2029)
## Motivation

Describe why this issue should be fixed and link to any relevant design
docs, issues or other relevant items.

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR adds a missing builder for `LinkCompactState` and refactors the
code to include the new builder function.

### Detailed summary
- Added `makeLinkCompactState` function to build
`LinkCompactStateMessage`
- Added `makeLinkCompactStateData` function for creating data for
`LinkCompactState`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-06 13:28:45 -05:00
Sanjay
f36155a0cb chore: Release 1.12.3 (#2028)
## Motivation

Release 1.12.3

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates versions in various packages and dependencies, including
`@farcaster/hub-nodejs`, `@farcaster/shuttle`, `@farcaster/hubble`, and
`@farcaster/replicator`.

### Detailed summary
- Updated `@farcaster/hub-nodejs` to version 0.11.13
- Updated `@farcaster/shuttle` to version 0.3.0
- Updated `@farcaster/hubble` to version 1.12.3
- Updated `@farcaster/replicator` to version 0.3.8
- Added support for reverse reconciliation in `@farcaster/shuttle`
- Improved error message handling for bad host address in
`@farcaster/hub-nodejs`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-05 15:56:59 -07:00
Sanjay
bb707b1efa feat(shuttle): add support for reverse reconciliation (#2026)
## Motivation

Fixes https://github.com/farcasterxyz/hub-monorepo/issues/2018

## Change Summary

Add support for reverse reconciliation where messages are present in the
db but missing in the hub.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR adds support for reverse reconciliation in the
`@farcaster/shuttle` package.

### Detailed summary
- Added a new `onDbMessage` callback function to `MessageReconciliation`
class
- Implemented reconciliation of messages in the database but not in the
hub
- Added `DBMessage` type for database messages with relevant fields

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-04 22:30:39 -07:00
Shane da Silva
87c4f416e1 fix: Report better error message when hub address unspecified (#2024)
## Motivation

We want a better error message in this case, since the default is
unhelpful. Fixes #703.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
The focus of this PR is to improve error handling by providing more
helpful error messages when an address is not specified in the
`hub-nodejs` package.

### Detailed summary
- Added better error message for unspecified address in `getSSLClient`,
`getInsecureClient`, and `getAdminClient` functions.

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-03 19:30:28 +00:00
Jean Prat
1c9f25275e fix(replicator): respect fnames_username_unique constraint (#1971)
## Motivation

When a fname is transfered, the fnames_username_unique prevents using
delete_at but requires a deletion of the data.

## Change Summary

Since hubble forgets about the old fname attachement, I choosed to
delete it instead of changing the constraint.
* fname <=> old fid is now deleted
* userproof <=> old fid is now deleted
 

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

closes farcasterxyz/hub-monorepo#1970

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on respecting the `fnames_username_unique` constraint in
`usernameProof.ts`.

### Detailed summary
- Added patch to respect `fnames_username_unique` constraint
- Updated `processUserNameProofRemove` to delete from and insert into
`fnames` table based on conditions
- Changed `updateTable` to `deleteFrom` in `processUserNameProofRemove`
for `usernameProofs` table
- Updated conditions in `processUserNameProofRemove` to include `fid`
when deleting from `fnames` table

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-06-03 10:54:22 -07:00
Tobias Leinss
1bed6d18c6 fix(replicator): heap out of memory (#2022)
## Motivation

there's this ongoing issue of running out of memory with the apps.

e.g.  
https://github.com/farcasterxyz/hub-monorepo/issues/1015  
or  
https://github.com/farcasterxyz/hub-monorepo/issues/1407  

## Change Summary

Adding the node `--max-old-space-size` flag with the ram size fixes the
issue.

[The requirements speak of 2GB ram
requirement](https://github.com/farcasterxyz/hub-monorepo/blob/main/apps/replicator/README.md#requirements),
so setting this as default value.


a6367658e5/apps/replicator/docker-compose.yml (L11)

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

-

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on fixing the replicator heap out of memory error by
setting a maximum old space size for the Node.js process.

### Detailed summary
- Updated `MAX_OLD_SPACE_SIZE` to 2048 in `.env.sample`
- Modified `command` in `docker-compose.yml` to include
`--max-old-space-size=${MAX_OLD_SPACE_SIZE:-2048}`
- Resolved replicator heap out of memory issue

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->

Signed-off-by: Tobias Leinss <caruso33@web.de>
2024-06-03 10:07:27 -07:00
Frederik Bolding
a6367658e5 fix: retry fname transfer fetch on fail (#2013)
## Motivation

Potential solution for
https://github.com/farcasterxyz/hub-monorepo/issues/2001. Adds a
mechanism to re-fetch fname transfers for a given name when merging a
`UserDataAdd` that fails due to missing proof.

## Change Summary

Refetches fname transfers when merging a `UserDataAdd` that errors out
due to a missing proof. Also moves some code around for testing
purposes.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers

<!-- start pr-codex -->

---

## PR-Codex overview
The focus of this PR is to enhance the `@farcaster/hubble` module by
improving transfer retry logic and adding a new
`FNameRegistryClientInterface` with related functionalities.

### Detailed summary
- Added retry logic for fetching transfers on failed merge
- Introduced `FNameRegistryClientInterface` with methods for managing
transfers
- Updated `MockFnameRegistryClient` with transfer handling functionality

> The following files were skipped due to too many changes:
`apps/hubble/src/storage/engine/index.test.ts`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-31 09:29:54 -07:00
Sanjay
33d4371504 perf: Remove by signer index (#2019)
## Motivation

https://github.com/farcasterxyz/hub-monorepo/pull/2012 with changes to
handle deleting existing data. Thank you @FrederikBolding.


This should save about ~15% of disk space.

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers

<!-- start pr-codex -->

---

## PR-Codex overview
This PR removes the `BySigner` index to reduce disk usage and refactors
message handling logic for efficiency.

### Detailed summary
- Removed the `BySigner` index to reduce disk usage
- Refactored message handling logic for efficiency
- Updated message storage and retrieval functions

> The following files were skipped due to too many changes:
`apps/hubble/src/storage/engine/index.ts`,
`apps/hubble/src/storage/db/message.ts`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->

---------

Co-authored-by: Frederik Bolding <frederik.bolding@gmail.com>
2024-05-28 17:23:13 -07:00
Frederik Bolding
053f3ac567 fix: remove unnecessary database reads when merging casts (#1996)
## Motivation

Since the base store implementation already handles conflicts for casts
correctly:
https://github.com/farcasterxyz/hub-monorepo/blob/main/apps/hubble/src/addon/src/store/store.rs#L195-L274
it feels wasteful to potentially use two additional DB lookups checking
for an identical edge-case.

This PR removes these two additional lookups and lets the base store
logic handle casts in the same way that all other stores are handled.

## Change Summary

- Remove two unnecessary database reads when merging casts

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [x] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on removing unnecessary database reads when merging
casts to improve efficiency and accuracy.

### Detailed summary
- Removed unnecessary database reads when merging casts
- Updated error message for conflicts with a more recent remove
- Refactored the `find_merge_add_conflicts` function to remove
unnecessary checks
- Updated test cases to reflect the new error message for conflicts

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-20 10:31:56 -07:00
Sanjay
9e1d8d2bc8 chore: Release 1.12.2 (#2007)
## Motivation

Release 1.12.2

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers

<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates version numbers across multiple packages and adds a new
method `approxSize` to `getInfo()` in the core package.

### Detailed summary
- Updated versions to 0.14.12 in core package
- Updated versions to 0.11.12 in hub-nodejs package
- Updated versions to 0.8.9 in hub-web package
- Added `approxSize` method to `getInfo()` in core package
- Various dependency updates and fixes in different packages

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-16 17:13:24 -07:00
Sanjay
8c759d6652 fix: Throttle pruning so hub is not overloaded (#2005)
## Motivation

We're too aggressive during pruning which is causing hubs to become
unresponsive sometimes. Long term fix is to prune during merge, but that
involves migrating the storage cache to rust. Short term fix in the
meantime.

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on fixing the throttle pruning in `@farcaster/hubble` to
prevent hub overload.

### Detailed summary
- Updated `TIME_SCHEDULED_PER_FID_MS` to 5ms for temporary load
reduction on DB during pruning


>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-16 15:30:10 -07:00
Sanjay
920f6c0251 fix: Fix grpcWeb import in hub-web (#2006)
## Motivation

We accidentally lost the code that was fixing up bad protoc js file
generation for hub-web. Bring it back and fix compilation.

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the `hub-web` package to fix the `grpcWeb` import and
replaces `grpc` with `grpcWeb` in the codebase.

### Detailed summary
- Updated `hub-web` package to fix `grpcWeb` import
- Replaced `grpc` with `grpcWeb` in the codebase for consistency

> The following files were skipped due to too many changes:
`packages/hub-web/src/generated/rpc.ts`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-16 15:25:44 -07:00
Sanjay
8e7dec101a fix: Fix incorrect link message padding (#1994)
## Motivation

During the rust migration, link messages didn't have the full 0 padding
for add/remove keys. Fix that for future messages and add checks to
check for the incorrect padding and treat them the same as the correct
link messages everywhere.

Thank you @FrederikBolding for finding the bug in
https://github.com/farcasterxyz/hub-monorepo/pull/1983

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR fixes a padding bug in the link messages and refactors key
generation functions in the `LinkStore`.

### Detailed summary
- Fixed incorrect link message padding bug
- Refactored key generation functions in `LinkStore`
- Added padding with zero bytes for link type keys

> The following files were skipped due to too many changes:
`apps/hubble/src/addon/src/store/link_store.rs`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->

---------

Co-authored-by: Frederik Bolding <frederik.bolding@gmail.com>
2024-05-12 04:17:11 +00:00
Zach Terrell
c261fba667 [feat]: add approxSize to getInfo() endpoint (#1987)
## Motivation

Exposing the size of the rocks db 

## Change Summary

Updated `DbStats` to store `approxSize` of DB 

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers

<!-- start pr-codex -->

---

## PR-Codex overview
This PR introduces a new `approxSize` field to track database size in
various components and protobuf schemas.

### Detailed summary
- Added `approxSize` field to `DbStats` type
- Updated message structures to include `approxSize`
- Modified functions to handle `approxSize` calculations

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-07 16:25:39 -07:00
adityapk00
0e342af3fd fix: Fetch prev version snapshot if current one is missing (#1985)
## Motivation

If the present DB version snapshot is missing, fetch the previous one. 
## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on fixing a bug in the `@farcaster/hubble` package
related to fetching previous snapshots.

### Detailed summary
- Renamed migration test file and index for better clarity
- Increased max retries and retry delay for snapshot uploads
- Refactored snapshot retrieval logic to handle errors better

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-03 13:34:52 -05:00
adityapk00
8cab5ca5ee chore: Release v1.12.1 (#1984)
## Motivation

v 1.12.1
 


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the version of `@farcaster/hubble` to `1.12.1` and
includes patch changes related to fixing upload retries, pruning checks,
and index migration.

### Detailed summary
- Updated version to `1.12.1`
- Retry uploads of snapshot chunks to R2
- Check before pruning
- Fname index migration from Little endian to big endian

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-03 09:28:24 -05:00
adityapk00
26ced76367 fix: Retry uploads of snapshot chunks to R2 (#1980)
## Motivation

R2 uploads sometimes fail, so add retries

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on improving snapshot chunk uploads in the
`@farcaster/hubble` package.

### Detailed summary
- Added retry mechanism for snapshot chunk uploads to R2
- Updated snapshot upload function to handle retries and logging
- Introduced `uploadChunk` function for uploading snapshot chunks with
retries

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-02 13:07:01 -05:00
adityapk00
4286432d6a chore: Check if message count is less than prune size before pruning (#1977)
## Motivation

Minor cleanups + check to see if we need to prune at all

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the `@farcaster/hubble` package and refactors the
`rustStoreBase.ts` and various files in the `trie` module for improved
functionality.

### Detailed summary
- Added a fix to check the need for pruning before pruning in
`rustStoreBase.ts`
- Fixed a typo in a message in `merkle_trie.rs`
- Removed unnecessary `Arc` import in `trie_node.rs`
- Refactored `TrieNode` methods to remove `Arc<RocksDB>` parameters
- Improved key grouping logic in `TrieNode`
- Updated method signatures and logic in `TrieNode` for better
functionality

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-02 13:06:53 -05:00
adityapk00
7b850fb9d7 fix: Fname index from LittleEndian -> BigEndian (#1979)
## Motivation

We were accidentally encoding fid as little endian in the fname index.
Do a migration to fix to use big endian.


## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR fixes an issue where the `fname` index was incorrectly stored in
Little Endian instead of Big Endian.

### Detailed summary
- Fixed `fname` index from Little Endian to Big Endian
- Added migration to correct existing index values
- Updated key generation functions to handle Big Endian
- Added tests for migration process

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-02 13:06:46 -05:00
Sanjay
a2e85b1dc0 chore: Release 1.12 (#1975)
## Motivation

Release 1.12

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR bumps version numbers for various packages, introduces new
features, and includes bug fixes and improvements across different
modules.

### Detailed summary
- Bumped version numbers for `@farcaster/core`, `@farcaster/hub-web`,
`@farcaster/hub-nodejs`, and `@farcaster/shuttle`
- Added support for `Link CompactStateMessage` type in shuttle, core,
and hub-web
- Extended verification signature max length in core
- Updated dependencies in various packages
- Made various bug fixes and performance improvements in hubble app

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-01 10:54:09 -07:00
Sanjay
f784afd269 feat: support link compact state messages in shuttle (#1974)
## Motivation

Support link compact state messages in shuttle

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR adds support for handling compact link state messages in the
`shuttle` package.

### Detailed summary
- Added support for `targetFids` array in `UsernameProofBodyJson`
- Updated handling of `LINK_COMPACT_STATE` messages in `utils.ts`
- Added test for handling compact link state messages in
`shuttle.integration.test.ts`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-01 10:24:05 -07:00
adityapk00
63742239b5 chore: Cleanup sync trie bulk inserts (#1973)
## Motivation

Cleanup the sync trie bulk inserts to insert multiple items at a time


## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on optimizing trie batch inserts and improving sync ID
handling.

### Detailed summary
- Refactored trie batch insert operations for efficiency
- Updated sync ID deletion methods for better performance
- Adjusted queue sizes for gossip messages and sync trie operations
- Enhanced error handling and message submission logic

> The following files were skipped due to too many changes:
`apps/hubble/src/network/sync/merkleTrie.test.ts`,
`apps/hubble/src/network/sync/merkleTrie.ts`,
`apps/hubble/src/addon/src/trie/merkle_trie.rs`,
`apps/hubble/src/addon/src/trie/trie_node.rs`,
`apps/hubble/src/addon/src/trie/trie_node_tests.rs`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-01 11:25:12 -05:00
adityapk00
93de5d765e fix: prevent unnecessary encode/decode in grpc APIs (#1969)
## Motivation

Prevent unnecessarily encoding/decoding messages when sending to/from
APIs

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on optimizing RPC APIs and message handling in the
`hubble` app.

### Detailed summary
- Optimized `get_many_messages` to return message bytes instead of
decoded messages
- Updated message handling in various store modules to work with message
bytes
- Replaced unnecessary encode/decode operations in RPC APIs

> The following files were skipped due to too many changes:
`apps/hubble/src/addon/src/store/message.rs`,
`apps/hubble/src/storage/stores/verificationStore.ts`,
`apps/hubble/src/storage/stores/reactionStore.ts`,
`apps/hubble/src/storage/stores/castStore.ts`,
`apps/hubble/src/storage/stores/linkStore.ts`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-05-01 10:28:01 -05:00
adityapk00
6bec999dd5 perf: Use all workers for validateOrRevokeMessages job (#1962)
## Motivation

We were awaiting each message in validateOrRevokeMessagesJob even though
we have multiple workers available. Fix

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on improving performance by using multiple workers for
the `validateOrRevokeMessages` job in the Hubble app.

### Detailed summary
- Implemented the usage of multiple workers for the
`validateOrRevokeMessages` job in the Hubble app for improved
performance.
- Updated function calls in various files to use the new
`dbFetchIteratorPageByPrefix` method.
- Replaced specific `statsd` initialization parameters with
`ClientOptions` for better configuration handling.

> The following files were skipped due to too many changes:
`apps/hubble/src/storage/engine/index.ts`,
`apps/hubble/src/storage/jobs/validateOrRevokeMessagesJob.ts`,
`apps/hubble/src/storage/db/rocksdb.test.ts`,
`apps/hubble/src/addon/src/db/rocksdb.rs`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-30 09:18:32 -05:00
adityapk00
1642e6100e chore: Remove backup get_node fetching node in merkle_trie (#1965)
## Motivation

Remove the fallback for getting the node from the trie instead of DB,
because a node will always be in the DB


## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR removes backup fetching for `get_node`, refactors `serialize` to
public, updates imports, and refactors node initialization in the Merkle
trie.

### Detailed summary
- Removed backup fetching for `get_node`
- Refactored `serialize` to public in `trie_node.rs`
- Updated imports in `watchContractEvent.ts`
- Refactored node initialization in `merkle_trie.rs`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-30 09:18:17 -05:00
adityapk00
f0bee81803 chore: Insert batched updates into the sync trie (#1964)
## Motivation

Use batches to insert into the sync trie instead of 1 at a time. This
allows us to use a threadpool for efficiency.


## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [ ] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
The focus of this PR is to optimize batch insertions in the merkle trie
updates and enhance synchronization processes.

### Detailed summary
- Improved batch insert performance in the merkle trie updates.
- Refactored synchronization functions for efficiency.
- Updated sleep functions for better synchronization handling.

> The following files were skipped due to too many changes:
`apps/hubble/src/network/sync/merkleTrie.ts`,
`apps/hubble/src/addon/src/trie/merkle_trie.rs`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Wasif Iqbal <Wazzymandias@users.noreply.github.com>
Co-authored-by: Shane da Silva <shane@dasilva.io>
Co-authored-by: Sanjay <sanjayprabhu@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-30 09:15:48 -05:00
horsefacts
ab9258af8e feat: extend verification signature length (#1967)
## Motivation

A few power users with EVM smart contract wallets have bumped into the
verification signature limit. (Currently 256 bytes). The longest one
I've observed was 324 bytes.

## Change Summary

Increase max length of EVM verification signatures to 512 bytes. (This
should be long enough for a Safe with a threshold of 7 signers).

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR extends the maximum length of verification signature from 256 to
512 bytes.

### Detailed summary
- Extended verification signature max length from 256 to 512 bytes in
validations.ts
- Updated test cases in validations.test.ts to reflect the new max
length
- Improved formatting in validations.test.ts for better readability

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-29 13:24:10 -04:00
Shane da Silva
21e4fc5e79 chore: Release Shuttle 0.2.7 (#1968)
## Motivation

Release changes allowing you to skip validation of messages.

## Change Summary

Cut release.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR bumps the version of `@farcaster/shuttle` package to `0.2.7` and
includes a patch change to allow skipping validation when storing a
message.

### Detailed summary
- Bumped version to `0.2.7`
- Added ability to skip validation when storing a message

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-29 17:12:47 +00:00
Shane da Silva
1b502fc243 feat: Allow skipping validation when processing event stream (#1966)
## Motivation

If you trust your hubs, there's no need to perform validation of the
signature again. Based on our performance profiling, this could take up
to 20% of wall clock time.

## Change Summary

Allow disabling validation when storing a message.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on allowing skipping validation when storing a message
in the `@farcaster/shuttle` package.

### Detailed summary
- Added a new parameter `validate` with default value `true` in
`StoreMessageOperation`
- Updated the condition to validate merge messages only if `validate` is
true

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-29 09:58:27 -07:00
Shane da Silva
489542989a chore: Release Shuttle 0.2.6 (#1961)
## Motivation

Cut a release with a significant reduction in DNS lookups.

## Change Summary

`yarn changeset version`

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the version of `@farcaster/shuttle` package to `0.2.6`,
making important patch changes related to dependency and DNS lookup
optimizations.

### Detailed summary
- Updated package version to `0.2.6`
- Switched from `@figma/hot-shots` to `@farcaster/hot-shots`
- Stopped DNS lookups for loopback address in statsd calls

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-27 00:46:28 -07:00
Shane da Silva
afa3127034 chore: Skip DNS lookups for IP addresses in statsd module (#1960)
## Motivation

Node's default behavior results in a lot of unnecessary DNS lookups
being made for the loopback IP address. Skip it.

## Change Summary

Don't do a DNS lookup when the host is an IP.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on optimizing statsd calls by stopping DNS lookups for
loopback addresses in the shuttle package.

### Detailed summary
- Updated `statsd.ts` in `shuttle` package
- Added explicit host configuration to avoid deprecation warning
- Implemented custom DNS lookup function to bypass lookup for IP
addresses

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-27 00:32:48 -07:00
Shane da Silva
7490ff5df7 chore: Switch to custom hot-shots package (#1959)
## Motivation

We want to include the ability to configure UDP socket options. We've
created a fork of the upstream `hot-shots` package and removed the
optional dependency on `unix-dgram`, since we aren't using that
ourselves.

## Change Summary

Switches to our own fork of the `hot-shots` package.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the `@farcaster/shuttle` package to switch from
`@figma/hot-shots` to `@farcaster/hot-shots`.

### Detailed summary
- Switched from `@figma/hot-shots` to `@farcaster/hot-shots` in
`@farcaster/shuttle`
- Updated `@farcaster/hot-shots` dependency to version `10.0.0`
- Updated `lodash.mergewith` to version `^4.6.2`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-27 00:08:47 -07:00
Shane da Silva
864d5c5b6d chore: Release Shuttle 0.2.5 (#1958)
## Motivation

Release 0.2.5 of Shuttle.

## Change Summary

Bump version.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [x] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the version of `@farcaster/shuttle` package to `0.2.5`
and includes a patch change related to merge message validation.

### Detailed summary
- Updated version to `0.2.5`
- Patch change: Validate merge messages only when storing messages

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-27 02:58:24 +00:00
Shane da Silva
20c4ef646e fix: Validate merge messages only when storing messages (#1957)
## Motivation

This avoids a Catch-22 where when we discover an invalid message and
want to remove it we are unable to because of the validation.

## Change Summary

Change validation to only occur for merge messages.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on validating merge messages only when storing them in
the `shuttle` package.

### Detailed summary
- Added conditional validation for merge messages only
- Removed unnecessary commented-out code
- Updated error handling for invalid merge messages

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-26 19:44:22 -07:00
Sanjay
145510f239 chore: Release shuttle 0.2.4 (#1956)
## Motivation

Create shuttle patch release

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the version of `@farcaster/shuttle` to `0.2.4`,
including bug fixes, performance improvements, and new features.

### Detailed summary
- Increased hub timeout limit
- Buffered statsd calls before sending on socket
- Preserved redis stream backwards compatibility
- Added fid sharding

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-26 16:49:05 -07:00
Shane da Silva
80aadc6afd chore: Buffer statsd calls before sending datagram(s) over socket (#1953)
## Motivation

This will improve throughput.

## Change Summary

Buffer stats updates before sending them to reduce the number of
individual `send` calls.

## Merge Checklist

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on optimizing statsd calls in `shuttle` package by
buffering them before sending.

### Detailed summary
- Updated `statsd.ts` to buffer statsd calls before sending on socket
- Modified `statsd` export to include options for caching DNS and
setting max buffer size to 4KiB

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-26 16:35:00 -07:00
Sanjay
589e577071 fix(shuttle): Preserve redis subscriber backwards compatibility (#1954)
## Motivation

Preserve redis backwards compatibility by migrating the keys if present

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [xx] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on preserving Redis stream compatibility and migrating
old label-based keys in the `shuttle` package.

### Detailed summary
- Fixed handling of Redis stream keys in `shuttle/redis.ts`
- Added `redisKey` property and migration logic in `hubSubscriber.ts`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-26 20:29:34 +00:00
adityapk00
7b3748906e feat: Add Link CompactStateMessage type for Link Compaction (#1941)
## Motivation

Add a new CompactStateMessage to support link compactions. Only the Link
store is currently enabled for compaction


## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR introduces a new `LinkCompactStateMessage` type for link
compaction handling in various store implementations.

### Detailed summary
- Added `LinkCompactStateMessage` type for compaction in different store
implementations
- Updated message types and structures related to link compaction
- Implemented methods for handling `LinkCompactStateMessage` in
different store types

> The following files were skipped due to too many changes:
`packages/core/src/validations.ts`,
`apps/hubble/src/storage/engine/index.test.ts`,
`packages/core/src/factories.ts`,
`apps/hubble/src/storage/engine/index.ts`,
`apps/hubble/src/addon/src/store/link_store.rs`,
`packages/hub-web/src/generated/message.ts`,
`packages/hub-nodejs/src/generated/message.ts`,
`packages/core/src/protobufs/generated/message.ts`,
`apps/hubble/src/addon/src/store/store.rs`,
`apps/hubble/src/storage/stores/linkStoreCompactState.test.ts`

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->

---------

Co-authored-by: Wasif Iqbal <Wazzymandias@users.noreply.github.com>
Co-authored-by: Shane da Silva <shane@dasilva.io>
2024-04-26 13:05:35 -05:00
adityapk00
089d1d1b97 fix: Use batch to check for de-dups when merging (#1952)
## Motivation

Use a batch to check for de-dups when merging messages so as to not
block the main nodejs thread


## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [X] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)


<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on optimizing message merging in the `hubble` app by
batching de-duplication checks.

### Detailed summary
- Added `rsDbKeysExist` function to batch de-duplication checks for
merging messages
- Updated `areMessagesInDb` and `isMessageInDB` functions to utilize the
new batching check
- Added `keysExist` method in `RocksDB` class to handle batch keys
existence check
- Added tests for the `keysExist` functionality in the `RocksDB` class

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-26 10:31:50 -05:00
adityapk00
006473ddae perf: Improve getSyncMetadataByPrefix performance (#1947)
## Motivation


This API walks the trie to get the sync metadata at the given prefix,
traversing on avg 12 nodes, reading each node from the DB. However,
since we already have the prefix, we can read the final node directly
from the DB, saving 11 hits to the DB for every API call!

## Change Summary


## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [X] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [ ] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [ ] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [X] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on improving performance in `getSyncMetadataByPrefix`
and enhancing testing for `MerkleTrie` operations.

### Detailed summary
- Added a new test module `merkle_trie_tests` for testing `MerkleTrie`
functionality
- Updated `MerkleTrie` methods for better performance and error handling
- Refactored `TrieNode` struct and related methods for clarity and
consistency

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-26 08:07:32 -05:00
Sanjay
063d4ed144 fix: sharding events should work when requesting historical events (#1951)
## Motivation

Sharding params weren't taken into account when fromId was passed in

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers


<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on fixing sharding events for historical event requests
in `@farcaster/hubble`.

### Detailed summary
- Fixed sharding events for historical event requests
- Added logic to handle historical events in event service tests

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-26 05:22:52 +00:00
Sanjay
0c1ab37f11 feat(shuttle): add fid sharding to shuttle (#1949)
## Motivation

Add ability to shard event stream by fid to shuttle and update example
app

## Change Summary

Describe the changes being made in 1-2 concise sentences.

## Merge Checklist

_Choose all relevant options below by adding an `x` now or at any time
before submitting for review_

- [x] PR title adheres to the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/) standard
- [x] PR has a
[changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets)
- [x] PR has been tagged with a change label(s) (i.e. documentation,
feature, bugfix, or chore)
- [ ] PR includes
[documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs)
if necessary.
- [x] All [commits have been
signed](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#22-signing-commits)

## Additional Context

If this is a relatively large or complex change, provide more details
here that will help reviewers

<!-- start pr-codex -->

---

## PR-Codex overview
This PR adds `fid` sharding to the `@farcaster/shuttle` package. 

### Detailed summary
- Added `TOTAL_SHARDS` and `SHARD_INDEX` environment variables
- Updated `HubSubscriber` and `EventStreamHubSubscriber` constructors
- Modified `App` class creation with shard configuration
- Adjusted app initialization for backfill and worker functions

>  Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
2024-04-26 05:03:05 +00:00