8000 Releases · sonm-io/core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: sonm-io/core

v0.4.11

19 Sep 11:09
383931d
Compare
Choose a tag to compare

Added

  • Restrict Optimus CPU usage via cgroup (#1244).
    This commit allows restricting Optimus CPU usage via cgroups from the config. Since Optimus can consume a significant amount of CPU this can be useful for semi-automatic resource restrictions.
  • Disabled anti-fraud modules in Connor (#1370).
    This commit adds null log and pool processors for Connor's anti-fraud module. It can be used for testing purposes or if the user wants to run custom (non-mining) tasks with external quality tracking.
  • Detect duplicate orders in Optimus (#1359).
    During learning the following situation may appear: there are a set of orders that are planned to replace existing ones, but some of them are technically equal, i.e. have the same resources, price, and duration. Current Optimus just replaces ask-plans, which results in deal cancellation, which is not good. This commit teaches Optimus to detect duplicate orders when it's time to replace ask-plans with more profitable ones and not to touch them if any.
  • Store Connor's task logs (#1390).
  • 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.
  • Counterparty address for Connor's orders (#1401).
    This commit adds an ability to set counterparty address and place orders only for the required supplier. Also, migration code was added. If a user wants to change non-main benchmark or set counterparty or change netflags, Connor should be able to detect that new requirements are changed. It reached with partial order hashing when we decide to restore existing order or not.
  • Worker address flag for CLI (#1431).
    This PR adds an ability to specify custom worker address in CLI to work with.
  • 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.
  • Verbose filtering in Optimus (#1443).
  • Log requests in Rendezvous (#1455).
  • 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.
  • Generate SSH key instead of requiring (#1462).
    This commit simplifies SSH server configuration on a Worker by deprecating "private_key_path" option in "ssh" section. Now SSH key is generated at Worker startup and cached in boltdb.
  • Connor's log processor for xmrig (#1472).
    This commit adds a new log processor type for Connor's anti-fraud module. Brand new processor able to read logs from the xmrig miner, which is used to mine Monero (cryptonight) on CPUs.

Changed

  • Process blockchain in Worker in parallel (#1377).
    This PR enables parallel blockchain processing in the salesman, which results in a boost in massive ask-plan creation or purging.
  • Show tags in orders list (#1503).

Fixed

  • Proper deal closing when a price is changed in Connor (#1352).
    Such problem occurs in the following conditions: Connor detects price deviation and starts replacing orders, also it starts to close non-profitable deals. When the deal is closed, a worker on another side can pick the order that we schedule for cancellation. This order is turned into a deal that immediately will be closed because of the low price. So this shitfall will perform until all of the orders isn't replaced. This commit fixes that behavior: now Connor checks that the cancel chan is empty before really closing an active deal.
  • Remove repo & tag from an uploaded image (#1353).
  • Allow gRPC logger to truncate specific methods output (#1360).
  • Proper (un)marshaling for empty SSH keys (#1375).
    This commit fixes couple bugs introduced in #1281.
    • Failed to start a task without providing ssh pubkey.
    • Marshalling an empty pubkey crashes worker.
  • Show allocated resources in TaskStatus (#1368).
    This commit fills the AllocatedResources field from the deal's ask-plan. Actual resources info gives an ability to show what part of deal's resources are acquired by task, at least what GPUs is used.
  • Properly parse docker load output (#1373).
  • Kill tasks if deal was closed (#1387).
  • Proper init for disabled processor in Connor (#1388).
  • Node hanging on failed startup (#1395).
    This commit fixes race when Node starts with some failed condition, for example, when SSH port is occupied, and then hangs forever.
  • Properly close read/write part of sockets in Relay (#1398).
  • Proper deal id comparison (#1408).
  • Socket leak in Node (#1424).
    This commit fixes socket leakage in Node by draining pending channels in case of timeout errors.
  • Unregister closed deal despite the result of order deregistration (#1433).
    Due to some strange circumstances, that could be possible if we received stale data from blockchain after deal registration, or failed to save data in boltdb, an order could be removed before a deal, resulting in a neverending cycle of deal removal. This PR fixes this behavior.
  • Restore deals only if Connor is a consumer (#1427).
  • Proper task tag printer (#1451).
  • Proper error if the profile doesn't exist (#1450).
  • Proper identity level checking worker SSH (#1444).
    This commit fixes invalid identity level verification while performing SSH access to a container using NPP API. Previously an identity level of ask-plan was checked, while actually it must be the consumer's level checked.
  • Properly detect IPv4 addresses (#1460).
    For some unknown reasons, Go developers keep IPv4 addresses in a slice of size 16(!). It's so logical, yes.
  • The proper formula for XMR price calculation (#1459).
    This commit fixes calculation algo for XMR. Also, a signature of the PriceProvider's calculateFunc has been changed because we want to use all available token params, not only reward and net difficulty.
  • Proper env params applying in Connor (#1474).
  • Restrict image push with KYC level (#1458).
    This PR introduces ACL which checks KYC level and allow only users of a specific level to push custom images on the worker. Also, it's made configurable and it is reused in whitelist configuration.
  • Drop task if the deal was closed during startup (#1476).
    This PR fixes bug, when a deal was closed during task start and the task was not released properly.
  • Underflow in price prediction service (#1498).
  • Show all balances when with output=JSON (#1500).
  • Keep container info after task stop (#1441).
  • Activate onCertificateUpdated handler in DWH (#1502).
  • Configurable EWMA for Connor's processor (#1478).
  • Properly initialize tinc network (#1505).
    This PR fixes ability to add tinc network alongside shaped interface. As Docker does not accept multiple networks du 8000 ring container creation we do connect them afterward.
  • Log the supplier's address in Connor (#1510).
    This commit extends Connor's logger (bounded to a deal) with the supplier eth address. Also, use proper logger instance in the startTaskOnce method.
  • Proper logging on price deviation in Connor (#1511).
    Early we logging price-per-second-per-hash from the PriceProvider, this commit replaces this value with full order price per second which is more easy for future analysis.
  • Proper log processor for Connor (#1514).
    This commit fixes several issues with log processor:
    • Wrap calculated hashrate value with atomic to make it thread-safe.
    • Perform initializing tick for EWMA.
    • Add timestamps for stored logs.
    • Read logs with tail. It prevents us from reloading full task log when Connor restarts or when connection was lost and Connor should start read logs again.
  • Proper systemd config (#1516).

v0.4.10

30 Aug 09:07
f7a8268
Compare
Choose a tag to compare

Added

  • DWH L2 (#1295).
    DWH now stores events history, allowing to perform data analysis over the entire history of our sidechain.
  • Close unprofitable deals in Connor (#1310).
    This activates price checking for Connor's deals. If mining profit becomes less that we paying for a deal - Connor will close it without adding the supplier to the blacklist.
  • XMR price provider for Connor (#1321).
    This commit replaces incompleted ZEC's price provider with the XMR one. Also, this commit replaces ZEC token with XMR_CPU in the config.
  • Activate request logging in Relay (#1329).
    Now all gRPC requests will be logged as they come.
  • Info handle in Relay (#1328).
    This addition activates info handle in Relay server, allowing to view current server's state, similar how we do in Rendezvous.
  • Blockchain errors for humans while opening a deal (#1291).
    This commit activates special interceptor on Node that performs userland verification before opening a deal. This allows returning human-readable errors instead of just "Transaction failed" in case of where it is impossible for some reasons to open a deal, which helps to figure out what's exactly wrong in two orders and why they cannot match.
  • Relative price threshold in Optimus (#1334).
    This commit allows specifying either absolute or relative price threshold in Optimus. It works the following way: if Optimus finds a new more profitable orders set it looks at the relative price difference in percents between the new orders set and the existing one.
  • 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. A simple multidimensional regression model with non-negative coefficients is used. It is exposed as a separate gRPC/REST service and can be accessed the same way others methods are.
  • Allow passing output to the logger (#1348).
    This commit extends logger config with the desired output. Can be "stdout" as it previously works, or it can be a path to log file. Logs are written to the stdout will be colorized. However, redirected descriptors are automatically detected, switching off colorizing if a new descriptor is not a TTY.
  • Remove extra orders in Connor (#1355).
    This commit brings code that looks at the desired and existing order sets which present on the Market and decide what orders should be removed. Extra orders can appear when the configured hash rate range was changed, for example by decreasing.
  • 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.
  • SSH into containers through Node (#1216).
    This allows performing SSH'ing into containers by specifying only deal and task identifiers independent of wherever those containers are being run. This is done by proxying the traffic through local Node. The idea is to hijack to incoming TCP connection with further resolving the real endpoint of a Worker where a container is being run by deal ID using NPP with further traffic forwarding directly into it. The Worker may not be having a public IP address. This is an experimental feature and should be optionally activated both on Worker and on Node. Note, that on Node you should also configure an SSH agent to be able to obtain credentials with which an access into a container will be performed.

Changed

  • Show only public IPs in deal status (#1335).
    Previously all networks including private were shown, but such information is completely unusable.
  • Drop excessive logging in Connor (#1333).
  • Start services when the network becomes online (#1336).
    This change touches the default systemd configuration, forcing our services to start strictly after the network is fully configured and upon a system.
  • Mark node's Balance method as deprecated (#1357).
    Use BalanceOf instead, which is more flexible and allows to specify the target address.

Fixed

  • Counterparty matching in DWH (#1315).
    After this fix, DWH should properly match orders, doing the proper identity level check.
  • Zero creator identity level in DWH (#1317).
    Now a meaningful value is used instead of just zero.
  • Gradually decrease blacklisting in Connor (#1318).
    This commit fixes worker unblacklisting in the following way: each tracked success decreasing the next possible blacklist step by the value of time in which task was correctly worked. Each failure doubles a period of time in which a worker will be placed on the blacklist. So if a worker is unblacklisted after the previous failure (1hr) and correctly work for 30 minutes, then, next blacklist time is 2hr minus 30 minutes.
  • Treat none benchmarks as min in Optimus (#1322).
    This fixes a bug when Optimus created ask-plan for orders that specified CPU cores benchmark with the value greater than on the system. That results in order that can't be matched with the target one.
  • Support old samba servers (#1327).
    This fixes a bug when specifying "vers" option for CIFS plugin resulted in an error (seen in dmesg) that CIFS doesn't support "vers" option. This means that either too old CIFS compatibility layer is installed or there is an old smb server. Now we just ignore unspecified "vers" option.
  • Connor should ban worker if cannot start a task (#1326).
  • Proper CertificateUpdated event processing (DWH) (#1331).
  • Attach antifraud to restarted task (#1330).
    Previously, if the task was restarted antifraud module does not restart log processing for the new task instance. This commit fixes that behavior.
  • Use flags to control blacklisting in Connor (#1332).
    This commit adds extendable flags to control the antifraud behavior in different cases. Also, it fixes a problem when we blacklisting a worker which picks-up a deal which we decide to re-create due to price changes.
  • Proper order price setting in Connor (#1337).
    This commit moves a price calculation code into a "sendOrderToMarker" method, it allows us to calculate the actual price on each order re-creation. Also, it fixes a bug when Connor replaces order on price deviation by an order with absolute same parameters.
  • Show DWH endpoint in worker status (#1343).
    Now we show actual DWH endpoint instead of a blank line.
  • Remove IFB dev on ask-plan remove (#1347).
    We use IFB (intermediate functional block) devices for more smooth traffic shaping. However, they were not properly collected after the associated ask-plan is removed, which led to garbaging on a system with dead link devices. Now everything should be properly cleared.
  • No peer found error in Relay (#1350).
    Such error appeared when a server was under pressure. It worked the following way: a server announced itself and waited for a connection. When a client came it consumes that connection, causing "noPeerFound" errors for other clients that tried to resolve a server at the same time. This commit fixes that behavior by putting clients into a short-waiting queue. In the future, we can improve this by checking whether a server was ever seen by Relay.
  • Proper task start in Connor (#1349).
    This commit increases task starting timeout and makes it configurable. Also, on "StartTask" retrying we'll check that previous attempt doesn't really start a task.
  • Increase connection timeout in Connor (#1358).
  • Allow NetworkIn only with public IPv4 addresses (#1342).

v0.4.9

15 Aug 13:05
3ccd305
Compare
Choose a tag to compare

Added

  • Network shaping (#1280).
    This enables network traffic shaping on a worker, making it possible to limit network bandwidth for each deal separately. Internally this is achieved using linux kernel traffic control mechanism and making friendship with Docker. At the first attempt, we achieved this by using policing, which drops excess packets, throttling TCP window sizes and reducing the overall output rate of affected traffic streams. Overly aggressive burst sizes (which is tricky to set properly) led to excess packet drops and throttle the overall output rate, particularly with TCP-based flows.
    All the above is relevant to the TBF (token bucket filtering) classless discipline, which is the easiest way to shape network traffic. An alternative approach is using the HTB (hierarchical token bucket) queueing discipline, which is classful and allows to build hierarchical rules for traffic shaping and policing. For egress traffic, intermediate functional block (IFB) devices are used which has separate packet queueing.
    All this allows both to build hierarchical rules for each packet type, network device, etc; and moreover to restrict traffic for each container and/or for the entire worker.
    It is clear for now that both direction shaping works without packed dropping spikes. Epic win. After an ask plan is created the following actions are performed:
    • Create bridge device with its own iptables rules, where all containers for a specific deal will live. This bridge allows tasks to communicate with each other, but not with tasks spawned within another deal. For that purposes, you have to use overlay network drivers.
    • Apply TC rules to that bridge, that will limit ingress traffic. Yep, ingress, because container's egress traffic seems as an ingress traffic for the Docker device.
    • Create IFB virtual device.
    • Mirror egress traffic to that IFB by applying TC filters and create another rule for that traffic.
  • Print order identity in CLI (#1286).
  • Allow obtaining balance by specified wallet (#1294).
    This commit extends Node API to be able to call blockchain's "balanceOf" with given eth address as a parameter. On the CLI-side there is still a single method but with an optional extra parameter.
  • Network shaping for BTFS (#1299).
    This commit activates network shaping for BTFS volume plugin. Previously BTFS was run under a separate bridge network, which was not connected with the network under which the deal tasks are being executed. However, now we are capable of performing task's network shaping under the constraints specified in a supplier's order. This commit changes the previous behavior with starting BTFS container under the same network with the task it manages, so network limitations should properly work.
  • Prometheus metrics for Connor (#1296).
    This adds Prometheus metrics which gives us some info about orders and deals lifespans.
  • Simulation mode in Optimus (#1308).
    This commit allows Optimus to be executed in simulation mode, fetching only specified orders from the marketplace. Also fixed a bug when Optimus removed ask-plans in dry-run mode.
  • Update price changes in Optimus (#1307).
    This teaches Optimus to update auto-accepted price changes for deals. Previously it only considers a price specified in ask-plan, not the real one, which may change during deal's lifetime.

Changed

  • Default DWH config update (#1288).
  • Tune dry-run in Optimus (#1301).
    Now Optimus while being run under dry-run option will show removing candidates ask-plans.

Fixed

  • Parse BID and ASK strictly (#1282).
    This fixes a bug when a user can accidentally create BID or ASK with fields that are unknown to the Node/Worker. Such behavior is a source of confusion and frustration, so we just forbid unknown fields when doing "sonmcli order create" and "sonmcli worker ask-plan create".
  • Properly calculate free devices in Optimus (#1285).
    This fixes a bug where during the calculation of free devices a mutation of meant-to-be-immutable field occurs, which lead to improper free devices state. As a side effect, one could see that Optimus performed invalid optimization in the case where the most optimal ask-plans already exist.
  • Sudden EOF while connecting through NPP (#1253).
    The problem is - both client and server successfully connect to each other, so there are at least 2 different connections. The server must serve both of them with further dropping the hanging one. The client must return the first one and close another. If we are a server - we just put the successful connection in a queue and return on next "Accept" called. If we are a client - do as we did before.
  • Processor shutdown in DWH (#1270).
    Hitting Ctrl-C could lead to a long and painful shutdown if DB and other resources were closed before the last iteration of the processor loop. This problem is fixed by making sure that the processing loop is fully locked, not just its parts.
  • Proper blacklisting in Connor (#1292).
    This fixes the blacklist timer behavior on failures and successes. Also, resetting the timer if a user was un-blacklisted on the market.
  • Properly discover loopback links (#1297).
    This fixes a bug where our components, like Node and Worker resolved loopback devices using self-localhost-resolution. This sometimes led to a problem on systems with disabled IPv6 but misconfigured /etc/hosts.
  • Proper BTFS initialization (#1298).
    This fixes error ignoring while initializing BTFS volume plugin.
  • Proper JSON errors for task list cmd (#1300).
  • Check BID identity level in Optimus (#1287).
    This is required due to #1293.
  • Proper order cancel in Connor (#1306).
  • Proper own ask filtering in Optimus (#1312).
    Optimus should no longer create plans for its own asks.

v0.4.8

07 Aug 11:26
7f2f38b
Compare
Choose a tag to compare

Added

  • Feat: BTFS volume plugin for Worker (#1274).
    This commit activates an ability to spawn SONM tasks with torrent filesystem attached as a volume. Internally this is achieved by using BTFS application that constructs a torrent client and mounts itself on a filesystem via fuse. It's the read-only solution designed to distribute large amount of data across multiple task without single point of failure - all tasks help each other to share the data, which reduces network pressure and improves application scalability.
  • Enable pprof for Node (#1272).

Changed

  • Update gRPC library (#1258).

Fixed

  • Proper config for Connor (#1265).
  • Proper Connor's binary path in systemd-unit (#1271).
  • Load keystore even if "--insecure" flag is set (#1276).
    This commit fixes a problem when "--insecure" flag is used with the CLI and some sub-command wants to load a key or obtain a default eth address from the key store. Therefore, now we'll load keystore prematurely for any command. Now if insecure mode is activated, only TLS credentials creation will be skipped for gRPC's client connection.
  • Show Order's price per hour (#1277).

v0.4.7

03 Aug 13:21
cef9831
Compare
Choose a tag to compare

Added

  • Connor, the auto-buy mining bot (#1227).
    This introduces Connor, the bot which buying resources for mining. The current implementation can:

    • Places BID orders according to config.
    • Restores orders, deals, and tasks between restarts.
    • Loads actual price of the target token, create orders according to price and marginality coefficient.
    • Tracks token price changes using CoinMarketCap, re-create orders if the price changed sufficiently.
    • Looks for actual hashrate by logs and mining pool statistics.
    • Closes deals which give us less hash-rate than offered.

    Note that current implementation is strongly coupled with the Ethereum mining on the DwarfPool. Next, we'll make it more modular and configurable for other popular tokens and pools.

  • Enable pprof in Optimus (#1255).

Changed

  • Fast benchmark mapping in Optimus (#1256).
    Added smart benchmark mapping algorithm, which indexes benchmarks in a flat map backed with array. This increases performance of genetic algorithm in 2-3 times.
  • Use proper combinations limits in Optimus (#1261).
    It doesn't make sense to building combinations of GPUs with k more than n, which is the length of currently free GPUs.
  • Avoid extra copying in Optimus (#1262).

Fixed

  • Avoid global logger in puncher (#1252).
    After this fix no strangely formatted logging messages should appear.
  • Nil pointer dereferencing in Optimus (#1257).
  • Find leaf node in Optimus even with no price (#1260).
  • Use context without timeout for stream methods (#1263)

v0.4.6

01 Aug 09:02
43b3e93
Compare
Choose a tag to compare

Added

  • Non-negative LLS solver for Optimus (#1090).
    This adds a new more-physically-correct optimization method - the non-negative multidimensional linear least squares (NNLS). It constraints the result vector values to be a non-negative, which in its turn means that each of them will show to the real benchmark price per basis. Also this shows an extremely performance boost - million of orders are optimized in less than for a second.
  • Pre-request logging interceptor (#1229).
    This commit activates automatic request logging for gRPC services. This includes logging service and request names with tracing attributes if activated. Both unary and streaming API are supported. Internally this is done by using gRPC request interceptors, that are invoked before the actual method called.
  • Optionally expand deal's orders in CLI (#1238).
    The new flag "--expand" works as follows: if specified it also fetches information about both BID and ASK orders in a deal and prints it.
  • Genetic optimization in Optimus (#1234).
    This commit introduces a new genetic optimization algorithm helping Optimus to find the best orders set. The core idea is to create multiple knapsack populations with random orders inside and try to pack them. Failed populations should die, while successful ones will live. Sometimes random mutation occurs, which results in random order addition or removal from the set. The best individuals will cross each other attempting to produce more adapted children.
    BEWARE OF DRAGONS: this is quite CPU intensive algorithm, so there are predefined generation and age limits. However even with them it may eat all your CPU. Additionally now it is possible to combine several models to run them parallel and to select the best one.
  • Branch bound model in Optimus (#1239).
    This adds a new model - Branch Bound Tree, which finds a global optimum solution for knapsack problem. However, its complexity is still exponential, so it must be activated only when the number of matching orders is relatively low.
  • Optional tag for task (#1236).
    This allows to specify used-defined tag when starting a task. This tag can be fetched back later when monitoring running tasks.

Changed

  • Make masterchain gas price configurable (#1195).
    This option now useful for deposit and gatekeeper withdraw; If option not defined gas price is determined by the latest blocks median gas price.
  • Add comments in default bid config (#1233).
  • Reduce default price threshold in Optimus (#1235).
    The new value is equivalent of ~0.48$ per day or 175.2$ per year.
  • Optimus config description - init everything from config (#1240).
    Now the "optimization" settings can be specified to each worker Optimus monitor independently. The config itself now allows to specify much more things. Changed regression settings (previous "classifier"), it was slightly flattened. Also dropped "optimization.interval" option. It is highly recommended to switch to the new config instead of using old ones because otherwise some settings will fall back to defaults.
  • Drop order fusion from time in Optimus (#1232).
    The removed field from the config was named as "logistic" function. This weighted function no longer needed and even considered harmful.

Fixed

  • Handle tasks correctly in case of worker reload (#1188).
  • Add to matching orders existing ones in Optimus (#1248).
    Previously they were added but then immediately filtered out, because those orders are ASKs, not BIDs.

v0.4.5

24 Jul 11:47
71b24cd
Compare
Choose a tag to compare

Added

  • Deployment scripts for livenet (#1087).
  • Show Ethereum balance on live network (#1203).
    CLI is able to print balance also in Ethereum (for Masterchain).
  • Assign tags in Optimus orders (#1209).
  • Gas limits in blockchain API (#1200).
  • SNM token transfer for sidechain.
    This commit allows to transfer tokens from the logged in account to another address in the Sidechain. * Removed: drop sqlite3 support in DWH (#1201).

Changed

  • Log order id when creating ask plans in Optimus (#1183).
  • Worker's status handle available for anyone (#1193).
  • Licence changed to GPLv3.
  • Complete Node refactoring (#1202).
    Fixed race conditions while failed to start some parts of the Node servers. For example when REST server failed to start there was resource leakage.
  • Added default sort to GetWorkers DWH (#1214).
  • Ping worker before deal (#1196).
    Now node will try 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.

Fixed

  • Classify for all orders, not only matching in Optimus (#1180).
  • Assign created timestamp for worker's own orders in Optimus (#1184).
  • Properly cut orders with 0 GPU count in Optimus (#1185).
  • DWH proper exit (#1167).
  • Keep task-to-ask-plan data till the deal is finished (#1190).
    When the container dies, or the task is stopped we keep all the task's data until the deal is finished, but we don't keep the task-to-ask-plan data deleting in ReleaseTask method. So when we ask for logs or any other data on an already stopped container. This patch proposes keeping this info until the deal is closed, so we can, for instance, still ask for logs on a stopped container.
  • Proper logs following (#1206).
  • Ignore orders with zero price in Optimus (#1204).
  • HasActiveCR status for deals in DWH (#1215).
  • Ignore conflicts on AddedToBlacklist events (DWH).
  • Oracle config (#1222).
  • Close puncher after dialing (#1224).
    This should prevent fd leak in Node.
  • Print ask plan tags as strings (#1226).
    This fixes the previous ask-plan printing behaviour where the "tag" field was printed as a byte array, which is not human-readable. This is done via type erasure hack with reflection. The only reason this is done this way is not to break the backward compatibility.

v0.4.4

09 Jul 14:28
35fdc2b
Compare
Choose a tag to compare

Added

  • Blacklist support in Optimus (#1175).
    This change activates blacklists support in Optimus. Now orders whose author is in worker's blacklist are now filtered out. The same thing happens at the opposite: when the worker's address is in the order's blacklist.

Changed

  • Better error handling for the cli (#1152).
  • Cli can now read it's config from --config flag (#1162).
  • Adds node_addr config variable to cli (#1163).
  • No longer strip binaries (#1170).
    This allows to debug binaries via debuggers like delve.
  • Optimus decomposition (#1165).
    Two-way optimization algorithms introduced here. Its main aim is to reduce false-positive ask-plan creation. One way to achieve this is to do optimization for both virtual devices and for natural ones. Preparing worker input such as fetching its devices and ask-plans are now performed concurrently to save some time. Its duration is limited using new option: "prelude_timeout". Fetching orders from the DWH is now performed on-demand, however caching still exists.
  • Disable Node's REST encryption (#1173).

Fixed

  • Relay check matching node (#1046).
    It might be the case that cluster reconfigures between Discover and Handshake; this PR checks that we only work with appropriate peers. It also adds dial retries for clients that experienced Discover/Handshake inconsistency.
  • Properly join host with port everywhere (#1168).
    In case of IPv6 addresses it properly wraps the given address with [] braces.
  • Avoid extra request for worker if user is not consumer (#1172).
    This commit adds checking that current user's key is a consumer key, if so - the node will try to connect to the related worker using NPP, otherwise - skip connection.
  • Spurious continuum devastation (#1177)
    This fixes a bug in the Relay server, when it suddenly devastates the continuum, returning 0.0.0.0 on any discovery request. Also it fixes a bug introduced in #1046, when an improperly configured node stopped to work.

v0.4.3

03 Jul 14:10
76cf6c3
Compare
Choose a tag to compare

Changed

  • Increase ulimit for relay, rv and dwh (#1155).
  • Enable pprof servers on Rendezvous and Relay (#1156).

Fixed

  • Expand keystore path passed via flags (#1149).
  • Process certificate/change request events in order (DWH) (#1150).
  • Handle temporary network errors in Relay (#1154).
    This fixes a bug when Relay server finished accepting new connections when a temporary error occurs, such as EMFILE. Now it will sleep for some period of time, but still interrupting on non-recoverable error. This is the same how gRPC handles this. Also the entire server now will stop on such non-recoverable errors instead of waiting for interruption signal.

v0.4.2

30 Jun 12:55
365a8fe
Compare
Choose a tag to compare

Fixed

  • Default configs for all published components now should be pointed
    to livenet endpoints instead of testing ones.
0