Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Remote ai worker rebased #6

Open
wants to merge 91 commits into
base: ai-video
Choose a base branch
from

Conversation

kyriediculous
Copy link

What does this pull request do? Explain your changes. (required)

Specific updates (required)

How did you test each of these updates (required)

Does this pull request close any open issues?

Checklist:

victorges and others added 30 commits March 27, 2024 15:57
* eth/watchers: Create PriceFeed watcher

Makefile: Use mockgen binary from tool dependencies

eth/contracts: Add chainlink interfaces source

Makefile: Generate Chainlink contracts ABI

tools: Add abigen tool to repo

eth/contracts: Generate chainlink bindings

Makefile: Fix abigen bindings generation

Revert everything abigen

Turns out there's already bindings exported from the Chainlink lib.

go.mod: Add chainlink library

eth/watchers: Add pricefeed watcher

eth/watchers: Clean-up event watching code

eth/watchers: Improve price tracking

Revert "go.mod: Add chainlink library"

This reverts commit ac415bd.

Revert "Revert everything abigen"

This reverts commit b7c40b1.

eth/contracts: Gen bindings for proxy iface

eth/watchers: Use local bindings for contracts

eth/watchers: Simplify event subs logic

eth/watchers: Simplify&optimize truncated ticker

eth/watchers: Update decimals on fetch

eth/watchers: Improve handling of decimals

eth/watchers: Fix price rat creation

eth/watchers: Make sure we use UTC on truncated timer

eth/contracts/chainlink: Generate only V3 contract bindings

eth/watchers: Watch PriceFeed only with polling

eth/watchers: Add a retry logic on price update

eth/watchers: Use clog instead of fmt.Printf

* eth: Create separate pricefeed client unit

This will make the code more testable.

* eth: Add tests for pricefeed client

* eth/watchers: Add tests to the truncated ticker

Gosh that was much harder than I thought

* eth/watchers: Add tests for pricefeedwatcher

* eth: Add comments to the new components

* go fmt

* eth: Address minor review comments

* eth,eth/watchers: Improve pricefeed watcher interface

* eth/watchers: Remove truncated ticker tests
…eer#2981)

* eth/watchers: Create PriceFeed watcher

Makefile: Use mockgen binary from tool dependencies

eth/contracts: Add chainlink interfaces source

Makefile: Generate Chainlink contracts ABI

tools: Add abigen tool to repo

eth/contracts: Generate chainlink bindings

Makefile: Fix abigen bindings generation

Revert everything abigen

Turns out there's already bindings exported from the Chainlink lib.

go.mod: Add chainlink library

eth/watchers: Add pricefeed watcher

eth/watchers: Clean-up event watching code

eth/watchers: Improve price tracking

Revert "go.mod: Add chainlink library"

This reverts commit ac415bd.

Revert "Revert everything abigen"

This reverts commit b7c40b1.

eth/contracts: Gen bindings for proxy iface

eth/watchers: Use local bindings for contracts

eth/watchers: Simplify event subs logic

eth/watchers: Simplify&optimize truncated ticker

eth/watchers: Update decimals on fetch

eth/watchers: Improve handling of decimals

eth/watchers: Fix price rat creation

eth/watchers: Make sure we use UTC on truncated timer

eth/contracts/chainlink: Generate only V3 contract bindings

eth/watchers: Watch PriceFeed only with polling

eth/watchers: Add a retry logic on price update

eth/watchers: Use clog instead of fmt.Printf

* eth: Create separate pricefeed client unit

This will make the code more testable.

* eth: Add tests for pricefeed client

* eth/watchers: Add tests to the truncated ticker

Gosh that was much harder than I thought

* eth/watchers: Add tests for pricefeedwatcher

* eth: Add comments to the new components

* go fmt

* cmd: make pricePerUnit flags strings

* cmd: Allow price per unit to be speficied with a currency

Currently ignoring the currency value.

* cmd: Add logic to start price update loop

* cmd: Add flag for specifying price feed address

* cmd: Add a lil test to priceDataToWei

* TODO: Reminder for something I noticed is missing

* cmd/starter: Support currencies for custom broadcaster prices

* eth: Address minor review comments

* eth,eth/watchers: Improve pricefeed watcher interface

* eth/watchers: Fix pricefeed watcher after merge

* cmd,core,server: Support dynamic updates to price in USD

* eth/watchers: Remove truncated ticker tests

* eth/watchers: Finalize pricefeedwatcher docs/tests

* cmd: Address review comment

* core: Create tests for autoconvertedprice

* cmd,core: Move wei default to AutoConvertedPrice

* Address review comments

* cmd: Fix the e2e flow for setting/updating configs

* CHANGELOG

* cmd: Make sure pricePerPixel can be specified with e notation

Parse it directlty as a big.Rat from a raw string, like I was
doing for pricePerUnit in some places.

* Fix tests

Turns out tests were not running on my branch due to base branch

* go fmt

* core: Fix typo in comment

* cmd,server: Use 3 decimal points when logging PPP

Found out that's officially supported precision on the
discovery logic, so let's reflect that here.
* release v0.7.3

* release v0.7.3
* Revert "Bump ffmpeg version and nv-codec-headers (livepeer#2973)"

This reverts commit cad6713.

* Revert "Update CUDA build version from 11.7.1 to 12.0.0 (livepeer#2978)"

This reverts commit 6c09a9f.

* Reapply "Update CUDA build version from 11.7.1 to 12.0.0 (livepeer#2978)"

This reverts commit ebbf210.

* Force ffmpeg reinstall

* Revert "Force ffmpeg reinstall"

This reverts commit 5adb9a5.

---------

Co-authored-by: Victor Elias <[email protected]>
* server: Remove maxPrice check mid-session

* server: Fix tests

* server: Fix erroneous usage of assert.EqualErrorf

When I was writing the tests for validatePrice I found out
we were using that function wrong in a couple places and
never checking any error. We were sending err.Error() to check
the error from err.

* server: Fix error checks after fixing assertion

* CHANGELOG
* server: Allow dynamic (and sometimes >max) prices for Os

* CHANGELOG
…ivepeer#2999)

* discovery: Ignore maxPrice on db_discovery queries

Still kept the feature on the db as it had all the tests
already implemented and could still be useful in the future.
I can remove it if preferred though.

* server: Get prices as big rats for selection

While this may not seem useful now since we just convert
them to floats on the probability calculation, it will be
useful later when comparing prices to max price.

* server: Add maxPrice filter logic on selection algorithm

* CHANGELOG

* server: Break filter in 2 functions
This commit introduces two new AI-specific issue templates, aiming to streamline
the routing of AI subnet-related issues and feature requests to the appropriate team.
This commit adds a pull request labeler action that automatically
attaches the `ai` label when a pull request is created to the `ai-video`
branch.
This commit introduces two new AI-specific issue templates, aiming to streamline the routing of AI subnet-related issues and feature requests to the appropriate team. It also adds a pull request labeler action that automatically attaches the `ai` label when a pull request is created to the `ai-video` branch.
)

* ci: change issue template order

This commit ensures that the main branch issue templates are put above
the AI related issue templates.

* ci(ai): add PR labeler config file

This commmit adds a https://github.com/actions/labeler configuration
file so that all PRs on the `ai-video` branch will be correctly labeled
with the `ai` label.
* ci(ai): fix incorrect labels

This commit fixed the labels that were specified in the Issue Templates
to the one found in the repository.

* ci: rename labeler and remove trailing whitespace
* ci(ai): fix pull request config warning (livepeer#3018)

This commit gets rid of the Pull request labeler configuration file
warning.

* ci(ai): auto assign AI issues

This commit auto assigns the AI issues to the right member of the AI
team.

* ci(ai): cleanup labeler actions

This commit cleans up the labeler actions and ensure they run on the
right triggers.
Signed-off-by: kevincatty <[email protected]>
Co-authored-by: Rafał Leszko <[email protected]>
* refactor: add -gateway and deprecate -broadcaster

This commit adds the `gateway` flag and deprecates the `broadcaster` flag
per core team decision (details:
https://discord.com/channels/423160867534929930/1051963444598943784/1210356864643109004).

* chore: update pending changelog

---------

Co-authored-by: John | Elite Encoder <[email protected]>
* refactor(census): rename Broadcaster metrics to Gateway

This commit renames the metrics related to Broadcaster to Gateway, following
a team decision. More details can be found in the discussion
here:
[Team Discussion Link](.com/channels/423160867534929930/1051963444598943784/1210356864643109004).

* chore: update pending changelog
…vepeer#3056)

* refactor: add -pricePerGateway and deprecate -pricePerBroadcaster

This commit adds the `pricePerGateway` flag and deprecates the `pricePerBroadcaster` flag
per core team decision (details:
https://discord.com/channels/423160867534929930/1051963444598943784/1210356864643109004).

* chore: update pending changelog

* refactor: remove redundant deprecation comment

This commit removes the `PricePerBroadcaster` deprecation comment since
this is already clear from the glog warning below.

* fix: correct the `pricePerBroadcaster` flag check

This commit ensures that the deprecation condition for the `pricePerBroadcaster`
flag properly handles the default empty string value.

* fix: ensure 'pricePerGateway' is used

This commit ensures that the `pricePerGateway` is correctly used instead
of the `pricePerBroadcaster` when it is set.

* refactor: deprecate 'pricePerGateway' broadcasters property in favor of 'gateways'

This commit updates the configuration to replace the `broadcasters` property
specified under the `pricePerGateway` flag with `gateways`. Additionally, it
ensures that a warning is issued when the deprecated property is still used.

* test: fix TestParseGetBroadcasterPrices test

This commit ensures that the TestParseGetBroadcasterPrices function uses
the new getGatewayPrices function.

* test: rename TestParseGetBroadcasterPrices to reflect Gateway naming

This commit updates the `TestParseGetBroadcasterPrices` function to
`TestParseGetGatewayPrices` to align with the new node naming convention.
This commit introduces a safeguard to ensure that the Docker image
tagged
as 'stable' is only pushed when a new tag is created on the stable
branch.
This prevents unintended updates to the stable Docker image, ensuring
consistency and reliability for users relying on the stable tag.
* Return appropriate errors when auth fails, not just 5xx

* Fix unit tests for new signature

* Fix remaining tests

* Fix another test

* Refactor Forbidden to error type

* Refactor Forbidden to error type

---------

Co-authored-by: Rafał Leszko <[email protected]>
* ci: fix syntax error in Docker action tags

This commit addresses a syntax error in the Docker image tag creation
step.

* ci(docker): ensure stable tag is created on master branch

This commit ensures that the stable tag is created on the master branch.
* Add logging to selection_algorithm.go

* Add even more logging
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants