Proto commits in sonm-io/core

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:bf3d23c
Author:Evgeny Safronov
Committer:GitHub

feat: remote secure shell (#1895) This commit allows exposing a server on a host, which act as a remote secure shell, executing allowed commands within the security policy.

The documentation is generated from this commit.

Commit:49c2360
Author:Andrew Zavgorodny
Committer:ALex Nikonov

feat: add bid and ask tags to dwh deal (#1896)

Commit:8fd7537
Author:ALex Nikonov
Committer:Evgeny Safronov

Revert "feat: ablitily to extract bid and ask tags from DWH (#1886)" (#1893) This reverts commit 76bbd8cf0e9724bf7e22bd81e9e02091d7c8344f.

Commit:a3c7b56
Author:Evgeny Safronov
Committer:GitHub

feat: sys init capability for QoS service (#1891)

Commit:76bbd8c
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: ablitily to extract bid and ask tags from DWH (#1886)

Commit:cb1eb4e
Author:Evgeny Safronov
Committer:ALex Nikonov

feat: task OOM notification (#1879)

Commit:a411094
Author:ALex Nikonov
Committer:Evgeny Safronov

aux: add package name to proto files (#1854)

Commit:0277fa3
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: remote GPU tuner (#1853)

Commit:d5785da
Author:Evgeny Safronov
Committer:GitHub

fix: flush IFB on demand when using remote service (#1844)

Commit:fc8a05a
Author:Evgeny Safronov
Committer:GitHub

feat: remote QoS (#1841) Changelog: exclude. Required for TE.

Commit:3d8c35e
Author:Evgeny Safronov
Committer:GitHub

feat: worker inspection (#1835) Currently, if something goes wrong on a Worker we're still able to gain access to the remote computer via SSH to find of what's going on there. In the future, due to obvious trusted platform limitations, we will lose those capabilities, since there will be no direct access to the machine. This leads us to a situation where we still need to collect debugging information, but more likely in a post-mortem way. This feature introduces the inspection service on the Worker side, which is capable to collect various runtime and history information and provide it to the subject that is explicitly allowed by Worker's admin. New methods include config, list of open files, network information, various Docker info and of course - logs. Now it is possible both for Worker's admin and allowed users to subscribe to Worker logs. Also, Worker's API now allows to add and to remove additional capabilities like inspection service access or SSH'ing into the host.

Commit:2246bcc
Author:Anton Matveenko
Committer:Evgeny Safronov

refactor: drop devices storage (#1837)

Commit:0101e64
Author:Evgeny Safronov

WIP

Commit:742d17a
Author:quasisamurai
Committer:Anton Matveenko

feat: devices storage (#1738) Smart contract for storing worker devices in blockchain. This PR includes contract which stores transparent worker data as byte array, and node and cli interface for fetching that data. Worker updates it's devices during startup as json-serialized Hardware structure (including benchmarks), which can be fetched for each worker via cli interface.

Commit:840168f
Author:ALex Nikonov
Committer:Evgeny Safronov

fix: proper RAM metrics collection (#1769)

Commit:90f597d
Author:Anton Matveenko
Committer:Evgeny Safronov

refactor: drop unused abi bindings (#1760)

Commit:c274d8b
Author:Andrei Zavgorodnii

added method stub

Commit:cd58835
Author:Andrei Zavgorodnii

feat: intoducing tensor server

Commit:f6461c2
Author:Anton Matveenko
Committer:Evgeny Safronov

docs: add description for expose parameter and provide example (#1743)

Commit:942d557
Author:Evgeny Safronov
Committer:GitHub

feat: experimental QUIC protocol support (#1724) Tread lightly. What is it now? Speak, fool. At last. No one orders me around! Introducing QUIC protocol support in most of the components. QUIC is an experimental transport layer network protocol, which we use as an alternative to TCP to achieve reliable communication between our components. The main reason to include this is to increase connection establishing stability between any 2 peers, which are located under private networks. QUIC is designed at top of UDP, which is more predictable and investigated for NAT penetration, unlike we do for TCP in a hacky way. Since QUIC allows to multiplex many connections into a single socket there is no need to penetrate NAT for the same client-server pair multiple times. After the first successful attempt, the punched hole will be reused. The Rendezvous server has been updated to support UDP hole punching using QUIC protocol. It additionally exposes its gRPC server on the same UDP port as for TCP, since it is possible to reuse ports in case of different network protocols used. The wire-level left the same - gRPC. Affected components: Worker, Node, Rendezvous. Both Node and Worker now expose its gRPC services on both TCP and UDP sockets, the port number is the same. At last, Windows users now can utilize our NAT punching feature, since multiplexed UDP communication does not require SO_REUSEPORT flag. So relaying now isn't the only single option for Windows. Note, that this feature is currently in an experimental stage. You can try it by specifying "SONM_ENABLE_QUIC=true" environment while starting Node server.

Commit:eb787da
Author:ALex Nikonov
Committer:GitHub

feat: background metrics collector for worker (#1715) This PR Introduces hardware metrics of the worker, consists of the following parts: * MetricsHandler plugin bound to worker's instance, it's responsible for handling hardware-specific metrics providers (currently for GPUs only), updating the whole set of metrics by the timer, return last known state. * gRPC method for WorkerManagement API, can be used to retrieve metrics by the master or admin address.

Commit:ef846bb
Author:Evgeny Safronov
Committer:GitHub

feat: worker geolocation (#1692) Now Workers are capable to detect the country ISO code where they are located and provide it in the status handler.

Commit:0a82260
Author:Evgeny Safronov
Committer:GitHub

feat: extended network metrics in Worker (#1691) The extended network metrics are now returned when requesting container/task stats. This includes traffic/packet minute-averaged rates. Required for determining the network pressure caused by a task.

Commit:dfcb668
Author:Evgeny Safronov
Committer:GitHub

feat: return order IDs after price prediction (#1682)

Commit:268a3b6
Author:Evgeny Safronov
Committer:GitHub

chore: migrate metrics protofile to proto3 (#1653) It is required for some gRPC generators, which doesn't support proto2. No wire breaking effects noticed.

Commit:587cded
Author:Anton Matveenko
Committer:Evgeny Safronov

feat: multiple pools (#1579) This PR introduces separate resource pools for spot resources, forward resources and committed (involved in the deal) resources, providing an ability to control worker more smoothly.

Commit:c167a8f
Author:Andrei Zavgorodnii

feat: added BidTag to DWHDeal

Commit:3710d7e
Author:ALex Nikonov
Committer:Anton Matveenko

feat: blacklist purge method (#1639)

Commit:a411671
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: able to stop multiple tasks (#1504) This commit adds a new method to the Node API which provides able to stop several tasks at once.

Commit:85f6ec0
Author:ALex Nikonov
Committer:Evgeny Safronov

aux: migrate to go.mod (#1597)

Commit:228f08b
Author:Anton Matveenko
Committer:GitHub

refactor: deprecate TaskManagement service (#1539) This PR deprecates TaskManagement service, providing raw proxy to worker service via interceptor

Commit:1292f0b
Author:Evgeny Safronov
Committer:GitHub

feat: price prediction for suppliers (#1594) Node service is now capable to obtain an approximate predicted price for devices configuration, i.e. implements price prediction for suppliers.

Commit:efb4d1d
Author:Anton Matveenko
Committer:Evgeny Safronov

change: single shot ask plans (#1541) This PR changes ask-plan behavior, now after the order is canceled, or a deal is closed ask plan is removed. This should work better with Optimus bot, as it does continuous optimization and also simplifies the code, allowing to make separate scheduling for forwarding deals

Commit:11f5586
Author:Andrew Zavgorodny
Committer:Evgeny Safronov

feat: introducing GetOrdersByIDs method in DWH (#1570) This PR introduces a method to DWH API that allows you to get orders with required IDs.

Commit:2da6e34
Author:Andrew Zavgorodny
Committer:Anton Matveenko

feat: dwh stats handle (#1540) The new GetStats() handle returns current DWH stats.

Commit:861c0a9
Author:Andrei Zavgorodnii
Committer:Andrei Zavgorodnii

wip

Commit:326ed7a
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: extended status for Worker (#1456) This commit extends status method with following data: - Master and admin addresses. - Are benchmarks passed? - Is the master address confirmed? We are forced to start gRPC server before benchmarks passed and master confirmed. Now, on worker's startup, only WorkerManagement service will be registered, and no NPP listener used. When all of the setup routines completed, we're closing gRPC server and re-create it with fully-registered services and NPP listener.

Commit:d9ff0a6
Author:Andrew Zavgorodny
Committer:Anton Matveenko

feat: add push_on_stop flag to container desc (#1426) This PR introduces a push_on_stop flag to task specification that makes pushing to remote repository conditional.

Commit:b1659b1
Author:Evgeny Safronov
Committer:GitHub

feat: NPP metrics in Node (#1392) This commit adds NPP metric collection on a client side, allowing to see how exactly connections are established, which kind of NAT punching tool was used and how much time it was consumed. Also there is a new service in Node - monitoring, where one can fetch collected metrics.

Commit:dc4847b
Author:ALex Nikonov
Committer:Anton Matveenko

chore: worker's code cleanup (#1367) - Removed several stale TODOs, which was introduced during previous large refactorings. - Method's docstrings fixed to match the golang's standards. - Import and variable names clashing avoided.

Commit:4d30840
Author:ALex Nikonov
Committer:Anton Matveenko

chore: mark node's Balance method as deprecated (#1357)

Commit:0117261
Author:Anton Matveenko
Committer:Evgeny Safronov

feat: parallel order and deal purging (#1354) This PR extends order and deal API, providing an ability to remove several orders and deals at a time (including full purge). This is done on Node in a parallel manner reducing the time needed for operation.

Commit:c5c362b
Author:Evgeny Safronov
Committer:GitHub

feat: price predictor service (#1254) This commit allows to optionally activate order price predictor service on Node. This service is capable of continuous training on current marketplace's state to be able to predict an order price from its benchmarks and netflags.

Commit:9af1e0c
Author:Andrew Zavgorodny
Committer:ALex Nikonov

feat: show public IPs in deal status (#1335)

Commit:12f336d
Author:Evgeny Safronov
Committer:GitHub

feat: info handle in Relay (#1328) This commit activates info handle in Relay server, allowing to view current server's state, similar how we do in Rendezvous.

Commit:515fc88
Author:Andrew Zavgorodny
Committer:GitHub

feat: dwh l2 (#1295)

Commit:97c08ae
Author:ALex Nikonov
Committer:GitHub

feat: allow to obtain balance by specified wallet (#1294) This commit extends Node API to be able to call blockchain's `balanceOf` with given eth address as parameter. On the CLI-side there is still a single method but with an optional extra parameter.

Commit:17d8d75
Author:Evgeny Safronov
Committer:Evgeny Safronov

refactor: update gRPC

Commit:4833a28
Author:Anton Matveenko
Committer:Evgeny Safronov

refactor: better task tag (#1241)

Commit:0baad5d
Author:Anton Matveenko
Committer:ALex Nikonov

feat: optional tag for task (#1236)

Commit:da46f50
Author:Anton Matveenko
Committer:GitHub

feat: optionaly expand deal's orders in cli (#1238)

Commit:50bd3aa
Author:Evgeny Safronov
Committer:Evgeny Safronov

feat: SNM token transfer for sidechain This commit allows to transfer tokens from the logged in account to another address in the Sidechain.

Commit:5009b64
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: ping worker before deal (#1196) Now node trying to connect to the worker before opening deal (both OpenDeal and QuickBuy). If a worker is not responding to the status request - deal will not be opened and user will be noticed about worker unavailability. User can force deal opening with the `--force` flag passed to related CLI's sub-commands.

Commit:ad7cea4
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: show Ethereum balance on live network (#1203) This commit extends the Ethereum API Client with `GetEthereumBalanceAt` method that allows to obtain Ethereum balance. Now `TokenAPI` returns an `Balance` struct which represents balances in both Eth and SNM tokens. Thus protobuf's API extended to be able to represent both values. And finally, CLI able to print balance also in Ethereum (for Masterchain).

Commit:bab34aa
Author:Andrew Zavgorodny
Committer:Anton Matveenko

fix: validator logo -> kyc_price (dwh) (#1144)

Commit:315f548
Author:Anton Matveenko
Committer:Evgeny Safronov

feat: add ask plan timestamps (#1134) This PR adds creation timestamp orderPlaced timestamp and function to get time for which order has not been sold, which can be useful for Optimus.

Commit:514f308
Author:Andrew Zavgorodny
Committer:GitHub

feat: GetProfiles userID like-search (DWH) (#1125)

Commit:a4f3a21
Author:Anton Matveenko
Committer:GitHub

feat: ability to drop benchmark cache (#1115)

Commit:0ffb7fc
Author:ALex Nikonov
Committer:GitHub

fix: proper check for worker availability for the deal (#1102) This commit adds a check that worker is available when the user making deal with `quick-buy` handle. Also, this commit remove a message that warns the user about the worker inaccessibility when showing deal list.

Commit:42fd9f4
Author:Evgeny Safronov
Committer:Anton Matveenko

refactor: extend NPP identifier with protocol (#1104) This allows to specify some protocol you want to publish/resolve as the Rendezvous allows. It is required for further NAT traversal extensions. What is changed: not relay protocol allows to specify "protocol" field in order to match between different protocols for the same peer ID. In both Relay and Rendezvous meeting groups are now associated with complex string representation a-la URI. This is the BREAKING change. Both Rendezvous, Worker and Node must be updated. Relay, however, does not need to.

Commit:0c65e21
Author:Anton Matveenko
Committer:Evgeny Safronov

feat: worker debug state (#1084) This PR adds handle to worker to retrieve useful debugging info, e.g. current resource scheduler state and salesman state.

Commit:3ba0e78
Author:Evgeny Safronov
Committer:GitHub

feat: uptime in Relay metrics (#1086) Now Relay will return its uptime while answering for its metrics handle.

Commit:8fdbba3
Author:Andrew Zavgorodny
Committer:GitHub

feat: dwh extended validators (#1063)

Commit:271e0f9
Author:Anton Matveenko
Committer:GitHub

feat: allowance handle for node and cli (#1050)

Commit:0b7c6e7
Author:ALex Nikonov
Committer:Anton Matveenko

feat: deposit-withdraw for node and cli (#986) This PR adds able to transfer tokens between Masterchain and SONM sidechain.

Commit:eb9f261
Author:Andrew Zavgorodny
Committer:Evgeny Safronov

feat: AnyUserID field for DealsRequest in DWH (#1031) This introduces a new search field to DealsRequest: AnyUserID. If provided, supplierID, consumerID, and masterID fields are ignored. Any of the mentioned IDs must match the provided value.

Commit:fc237d6
Author:Anton Shchukin
Committer:Anton Matveenko

aux: redeploy contracts (#998)

Commit:2ac0da7
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: profile management for cli and node (#1002) This PR adds profile management support for cli and node: - The `profile status` command shows profile details; - The `profile remove-attr` commands removes attribute from current user's profile. - Profile list can be obtained via the node API, but not implemented in cli.

Commit:12c6fe7
Author:ALex Nikonov
Committer:GitHub

feat: order purge handle for cli and node (#997)

Commit:4869b92
Author:ALex Nikonov
Committer:GitHub

fix: store certificate id in DWH (#1001)

Commit:532fe3a
Author:ALex Nikonov
Committer:Anton Matveenko

feat: quick buy for cli and node (#990) This PR adds able to perform quick buy for given ASK order on market.

Commit:21336e5
Author:Anton Matveenko
Committer:GitHub

feat: maintenance for worker (#960)

Commit:f3cc334
Author:Andrew Zavgorodny
Committer:Evgeny Safronov

feat: implemented GetBlacklistsContainingUser for DWH (#973) GetBlacklistsContainingUser() returns IDs of all users that blacklisted target user ID. This is a BREAKING change.

Commit:879afe5
Author:Andrew Zavgorodny
Committer:GitHub

feat: dwh orders blacklist filters (#978)

Commit:a7f48cf
Author:Anton Matveenko
Committer:GitHub

refactor: fix and refactor netflags (#962)

Commit:926fff7
Author:Andrew Zavgorodny
Committer:GitHub

fix: profile stats & updates (#961)

Commit:3abdabe
Author:ALex Nikonov
Committer:Andrew Zavgorodny

feat: fake GPU device (#927) This PR adds new GPU driver that allows to emulate GPU-device persistence for any testing purposes.

Commit:0d127d9
Author:Andrew Zavgorodny
Committer:Anton Matveenko

feat: MasterID field for orders (#912)

Commit:dcbead5
Author:Anton Matveenko
Committer:GitHub

fix: mangle registry host inside reference (#871)

Commit:fc31f53
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: change requests API (#793) Added: - Extend blockchain API with `CreateChangeRequest` and `CancelChangeRequest` methods. - Extend Node API and cli with change request management commands.

Commit:22e0093
Author:Andrew Zavgorodny
Committer:Anton Matveenko

fix: CounterpartyID (DWH) (#867)

Commit:cc8de1b
Author:Evgeny Safronov
Committer:GitHub

feat: manually allow to expose ports (#850)

Commit:22e9ace
Author:ALex Nikonov
Committer:Evgeny Safronov

refactor: drop meaningless embedding of StatusMapReply (#840)

Commit:bd91bc8
Author:Andrew Zavgorodny
Committer:Anton Matveenko

feat: country & identity level multiselect (DWH) (#848)

Commit:faab35a
Author:Anton Matveenko
Committer:Evgeny Safronov

refactor: start task is splitted to settings and dealID (#833)

Commit:4666db5
Author:Evgeny Safronov
Committer:Anton Matveenko

feat: container restart policy (#830)

Commit:9f9e765
Author:Evgeny Safronov
Committer:Evgeny Safronov

refactor: parse task config like a god This commit allows task configs to be loaded directly from YAML file without intermediate boilerplate parsing. This was real pain in ass. Snake case is also supported. This change allows to remove large chunk of code, opening a door for easier refactoring or/and new feature additions. Changed: - Removed top-level "task" container - no need for this. - Field "name" renamed to "image". - Registry "user" renamed to "username" to match Docker spec. - Registry "name" renamed to "server_address" to match Docker spec. - StartTaskRequest can now be validated. - Replace assertions with require in tests.

Commit:1c5ff16
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: manage blacklists from Node (#766) Added: - `list` and `remove` methods into cli and node. `list` accepts an optional parameter to observe other user's blacklists. - Blockchain's BlacklistAPI implementation now waiting for transaction results.

Commit:77fb29f
Author:ALex Nikonov
Committer:Anton Matveenko

feat: 'ask-plan purge' handle (#818)

Commit:7d636f7
Author:Anton Matveenko
Committer:GitHub

refact: rename all hub mentionings (#784)

Commit:2bee4b1
Author:Anton Matveenko
Committer:GitHub

refact: drop miner proto (#782)

Commit:4ee44ab
Author:Evgeny Safronov
Committer:Andrew Zavgorodny

refactor: dead code elimination (#781)

Commit:41923af
Author:Anton Matveenko
Committer:GitHub

feat: master-worker relationships (#775)

Commit:0a5e8af
Author:ALex Nikonov
Committer:Anton Matveenko

feat: add --blacklist flag for deal finish cmd (#764)

Commit:32ebeb5
Author:Andrew Zavgorodny
Committer:GitHub

chore: dwh refactoring (#739) This PR introduces vast changes to DWH code structure. * All DB-specific code is removed from DWH-server to sqlStorage, an implementation of the storage interface. * SQL-commands & DB-initialization code shared by various backends (Postgres and SQLite) are decomposed into sqlStorage. * Redundant locks/unlocks are removed (we expect the utilised databases to handle locks). numBenchmarks type is changed to uint64 throughout DWH. * A minor bug is fixed: if Order.DealID was not specified, profile stats were not updated while processing OrderUpdated event. * Tests were prettified (no 700-line tests anymore).

Commit:2ecff4d
Author:ALex Nikonov
Committer:Anton Matveenko

chore: unify counterparty for bid and ask yamls (#760)

Commit:21c455b
Author:ALex Nikonov
Committer:Anton Matveenko

fix: show exposed ports when starting a task (#756) - portMap transfers as mapping between containerPort and endpoints, not string. - converting from Docker's `nat.PortMap` to protobuf performing only once - at response serializing. - Accidentally removed useless `minerID` field from TaskStatus message.

Commit:961998c
Author:Andrew Zavgorodny
Committer:GitHub

Feat: variable benchmarks, cold start & fixes (DWH) (#705) * benchmarks number can grow up to 100 values, * `cold start` is introduced: indices are not built until a certain block is processed, * fixed counterparty filter (zero eth address), * fixed onOrderUpdated for inactive orders (this will fix profile stats) * fixed grpc return codes (added `NotFound`)

Commit:5050561
Author:Andrew Zavgorodny
Committer:GitHub

feat: added count to response (DWH) (#726)

Commit:7c621d8
Author:ALex Nikonov
Committer:Evgeny Safronov

feat: extend deal info with tasks and resources (#712)