Skip to content

Releases: golemfactory/yagna

v0.6.5 Kord

06 May 11:48
v0.6.5
6317bb3
Compare
Choose a tag to compare

Beta.1 Patch.4 Release

This release contains the next portion of networking performance improvements which are intended to stabilize the network, especially when it comes to underlying market broadcasts and payment-related requests.

This release is a tribute to recently died Kazimierz Kord Polish conductor, and former long-term Music Director of Warsaw Philharmonic Orchestra.

Full Changelog:

Net Service

  • #1291 Added metrics to get track how often network reconnects happen and for how long it is broken

Market Service

  • #1265 Added queue for sending broadcasts so they are rate-limited to 5 seconds per broadcast.
  • #1252 Added DEFAULT_SUBSCRIPTION_TTL env var to configure offer expiration (for integration tests)
  • #1288 Additional metrics for market broadcasts
  • #1237, #1250 semi-integration tests hardening

Payment Service

  • #1290 More logs and metrics for send_invoice, cancel_invoice, accept_invoice, send_debit_note, cancel_debit_note and accept_debit_note to track how often they report Gateway Timeout (504) and why.

Others

  • #1243 fix for yagna version reporting within logs

Compatibility

This version is backward compatible with yagna v0.6.0 which means nodes with versions 0.6.0 through 0.6.5 can cooperate to form a single Golem Network.

API Library Compatibility

This version is compatible with below high-level libraries

Library Version Suggested Version
yapapi 0.5 0.5.4 or higher 0.5.x
yajsapi 0.3 0.3.4 or higher 0.3.x

By installing & running this software you declare that you have read, understood, and hereby accept the disclaimer and privacy warning published at https://handbook.golem.network/see-also/terms

v0.6.4 Edmund Gettier

15 Apr 12:40
v0.6.4
4fc7211
Compare
Choose a tag to compare

Beta.1 Patch.3 Release

This release contains mainly performance improvements related to networking and broadcasting because we are observing a significant increase in the number of nodes joining the Golem Network. Yay! We are glad to see things going in that direction.

This release is a tribute to recently died Edmund Gettier best known for his short 1963 article "Is Justified True Belief Knowledge?" aka Gettier problem.

Full Changelog:

GSB (Golem Service Bus)

  • #1191 (GSB#18), #1221 (GSB#19) increase network connectivity check frequency from every 60s to every 20s and fix local router recconnection issue (GSB#21).

Provider

  • #1192 incremental delay for invoice resending: start with 15s and increase it by 150% with every failed attempt, with maximum 1h interval repeating forever (instead of previously used strategy: resend every 50s)

Market Service

  • #1203 Increase mean broadcasts interval from 1min to 4mins and make it configurable via env
  • #1211 Offers broadcasts performance improvements:
    • use broadcasts interval with a random factor (uniformly distributed) from the range0.5-1.5x instead of 0-2x
    • do not send empty broadcasts
    • skip broadcast handling when processing other (broadcasts are repeated so eventually will reach all nodes)

Payment Service

  • #1184 Check account balance before making a zkSync account unlock or withdrawal
  • #1227 update zkSync RPC url to point at Glolem's proxy server in preparation of the batch tx provider

Metrics Service

  • #1185 Increase metrics pusher interval from every 5s to every 60s

Others

  • #1197 Upgrade AWC to 2.0 to fix DNS resolution on Ubuntu 20.04 and match AWC version with the rest of the project.

Compatibility

This version is backward compatible with yagna v0.6.0 which means nodes with versions 0.6.0 through 0.6.4 can cooperate to form a single Golem Network.

API Library Compatibility

This version is compatible with below high-level libraries

Library Version Suggested Version
yapapi 0.5 0.5.3 or higher 0.5.x
yajsapi 0.3 0.3.3 or higher 0.3.x

By installing & running this software you declare that you have read, understood and hereby accept the disclaimer and privacy warning published at https://handbook.golem.network/see-also/terms

v0.6.4-rc1 #163

22 Jul 21:01
pre-rel-v0.6.4-rc1
6993489
Compare
Choose a tag to compare
v0.6.4-rc1 #163 Pre-release
Pre-release

By installing & running this software you declare that you have read
understood and hereby accept the disclaimer and
privacy warning found at https://handbook.golem.network/see-also/terms

v0.6.3 Snowbird

25 Mar 17:05
v0.6.3
6cee83e
Compare
Choose a tag to compare

Beta.1 Patch.2 Release

This release contains a single performance improvement, to increase the number of Providers, that can work for a single Requestor at the same time.

This release is in memory of the events at Snowbird, Utah in 2001 (XX anniversary) when 17 devs met to discuss lightweight development methods, which yielded:
Manifesto for Agile Software Development.

Full Changelog:

Provider

  • #1182 Send less Debit Notes

Compatibility

This version is backward compatible with yagna v0.6.0 which means nodes with versions 0.6.0 through 0.6.3 can cooperate to form a single Golem Network.

API Library Compatibility

This version is compatible with below high-level libraries

Library Version Suggested Version
yapapi 0.5 0.5.2 or higher 0.5.x
yajsapi 0.3 0.3.2 or higher 0.3.x

By installing & running this software you declare that you have read understood and hereby accept the disclaimer and privacy warning found at https://handbook.golem.network/see-also/terms

v0.6.2 Zagajewski Armstrong

22 Mar 23:12
v0.6.2
6947e44
Compare
Choose a tag to compare

Beta.1 Patch Release

After the Beta.1 release, we saw the yagna network falling into unresponsive state from time to time.
We took out our blasters flappers and went hunting for bugs within our low-level GSB protocol.
At the same time we reworked our local data persistance layer -- fare well r2d2] database is locked!

Some of our most active users were asking for prolongation of default maximum Agreement duration,
so here it is: we increased it from 30 mins to 3h.

We strongly encourage upgrading from v0.6.1 to v0.6.2 to fix previous daemon instability issues

This release is a tribute to recenlty died Adam Zagajewski and to famous Neil Armstrong, to paraphrase him:
That's one small step for the provider, one giant leap for the network's functionality.

Full Changelog:

GSB (Golem Service Bus)

Provider

  • #1108 Agreement termination when there is no activity created within arbirtrary timeout
  • #1117 Agreement idle timeout made configurable with default of 90 sec.
  • #1166 Increase default maximum agreement expiration from 30 sec to 90 sec.

Local Persistance Service (SQLite)

  • #1082 Get rid of "Database is locked" during normal operation

Market Service

  • #1020 Added timeout (3sec) for getting offer details over GSB, to not block broadcast handling

Payment Service

  • #1158 added trace logs to hunt down 504 Gateway Timeout when accepting Invoices & Debit Notes.

Version Service

Goth (Golem Test Harness)

Others

  • #1139 Filter only v[0-9]* and pre-rel-[0-9]* git tags when determining compile time version
  • #1166 Make time gray in logs

Compatibility

This version is backward compatible with yagna v0.6.0 which means nodes with versions 0.6.0, 0.6.1 and 0.6.2 can cooperate to form a single Golem Network but we highly encourage you to upgrade to the v0.6.2 as v0.6.1 is causing instability.

API Library Compatibility

This version is compatible with below high-level libraries

Library Version Suggested Version
yapapi 0.5 0.5.2 or higher 0.5.x
yajsapi 0.3 0.3.2 or higher 0.3.x

By installing & running this software you declare that you have read understood and hereby accept the disclaimer and privacy warning found at https://handbook.golem.network/see-also/terms

v0.6.1 Grace Hopper

08 Mar 22:03
v0.6.1
a282c32
Compare
Choose a tag to compare

Golem's New Implementation First Public Beta

Three weeks ago we created the final Alpha stage release for the new implementation of Golem (Yagna). It was already capable to operate using the Ethereum mainnet through both: plain ERC-20 token transfers and Layer 2 ZkSync.

Now Golem enters the Beta phase, which is a hardened and polished version of the above.
While it still lacks P2P support, verification mechanisms and low-level protocol encryption and signing, it has all other features that we wanted to achieve as the MVP for the Golem:

  • Decentralised market implementation
  • Computational environments: VM and WASI
  • Support for per task and per-usage pricing schemes
  • Payments with GLM (L1 and L2)

(See README for the full list).

We're excited to see this Beta release in action and to hear from anyone joining the network to give us feedback.
Not only that, soon you can benefit from breaking our tools, as we are re-starting our bug bounty program. So we encourage you to try and break something.

Have fun!

This release is a tribute to Grace Hopper, AKA "Grandma COBOL" or sometimes even the "Queen of software" (which she more or less agreed with).

Full Changelog:

Payment Service

  • #1003 Safely decode received payment details
  • #1013 Use GLM in user facing parts instead old GNT-related
  • #1037 Zero-amount Invoices & Debit Notes to be settled immediately
  • #1105 Rename REST API's pollTimeout to timeout to conform with Payment API specification

Payment drivers

  • #1071 Fallback for failing DNS resolution

ZkSync

  • #926 Retry submitting transaction
  • #1000 Get faucet URL from env var or resolve SRV record
  • #1039 Increase faucet call timeout from 5s -> 60s
  • #1065 Updated zkSync SDK to 0.3.0
  • #1068 Fix DNS resolution in zkSync faucet same way as for Erc20 (due to a bug in awc crate on Windows)
  • #1072 Unlock wallet before withdrawal
  • #1077 Fixed token name in withdraw

Erc20

  • #1114 Fix: do not panic when Geth node is down

Activity Service / ExeUnit

  • #1061 Increase GSB call timeout by 1s to handle remote timeouts properly
  • #1097 Fix ExeUnit to properly handle shutdown conditions (due to changed GSB errors)
  • #1105 Rename REST API's pollTimeout to timeout to conform with Activity API specification

Market Service

  • #1038 Reject Agreement mocked to return 200 OK instead 500

Provider

  • #1102 Fix Debit Notes property within Agreement to properly support "Debit Notes keep-alive"
  • #1106 Terminate Agreement on unreachable requestor
  • #1109 Fix: process Activity events sequentially and each event only once
  • #1116 Decrease default maximum Agreement expiration (from 3h to 30min) used with Debit Notes keep-alive
  • #1125 Change default subnet to public-beta

GSB (Golem Service Bus)

  • #1027 Use UNIX socket as default GSB endpoint (with TCP fallback for Windows)
  • #1067 Bump ya-sb-proto to 0.3.0 and ya-service-bus to 0.4.1

Goth (Golem Test Harness)

  • #1047 Use self-hosted runners for goth integration tests
  • #1054 Use Python 3.8.0 for integration tests

Others

  • #1001 Bump dependencies: ya-client to the newest version and BigDecimal to 0.2
  • #1073 Update .env-template file regarding payment drivers

Compatibility

This version is backward compatible with yagna v0.6.0 which means nodes with both versions (0.6.0 and 0.6.1) can cooperate to form a single New Golem Network.

API Library Compatibility

This version is compatible with below high-level libraries

Library Version Suggested Version
yapapi 0.5 0.5.1 or higher 0.5.x
yajsapi 0.3 0.3.1 or higher 0.3.x

By installing & running this software you declare that you have read understood and hereby accept the disclaimer and privacy warning found at https://handbook.golem.network/see-also/terms

v0.6.0 Tytus, Romek & A'Tomek

15 Feb 18:46
v0.6.0
ed55e85
Compare
Choose a tag to compare

Hello Mainnet

With this release, New Golem users are able to use real GLMs for payments.

Event API

We have also seriously reworked our REST APIs by unifying Event-related calls across all of them (Market API, Activity API, and Payment API), which is called internally "Event API".

Longer tasks via Debit Notes "keep alive"

Providers and Requestors are able to negotiate and conclude long-lasting Agreements for long-running tasks/activities. This requires the Requestor to continuously accept Debit Notes issued by the Provider (aka "keep alive").

This release is a tribute to recently died "Papcio Chmiel" - the author of Tytus, Romek & A'Tomek.

Full Changelog:

Payment Service

  • #912, #936 Payment Service multi-network (mainnet/rinkeby) support
  • #795 allocation validation
  • #796 gasless transactions readme
  • #845 allow receiving funds without initialising an account
  • #855 payment notification to send order ids
  • #887, #978 run payment "cron" jobs more often
  • #908 query string serialization refactor
  • #931 payment enter/exit/transfer CLI commands introduced
  • #935, #941 payment status CLI upgrade
  • #952 payment status/init/accounts CLI unified + NGNT --> GLM rename
  • #982 zero-amount invoices not being paid + non-binding debit notes payment amount fix
  • #998 core-model and CLI update + disable filtering Provider(receiver) Payment account via REST

Payment drivers

  • #947, #974 ERC20 driver multi-network (mainnet/rinkeby) support
  • #957, #1016 zkSync driver multi-network (mainnet/rinkeby) support
  • #903 replace Ethereum's GNT token address with GLM one
  • #909 zkSync driver withdrawal
  • #825 require at least one payment driver (feature) enabled
  • #853 verify zkSync transaction hash
  • #964, #996 zkSync driver to support fund command
  • #939 zkSync driver to support exit command
  • #976 tGLM fix for zkSync on rinkeby
  • #984 env vars for the contract addresses
  • #999 env var for zkSync RPC
  • #1017 use proxy for rinkeby geth's

Payment's part of Event API refactor

  • #857 REST API regrouping
  • #861 Payment events with new parameters
  • #867 new events
  • #870, #876 payment updates
  • #871 support filtering by app_session_id
  • #877 persist data during DB migration
  • #879 examples adjusted to Event API
  • #888 DB views
  • #894, #898 invoice events fix (backward compatibility)

Activity Service / ExeUnit

  • #767 ExeUnit Runtime API: propagate process status
  • #844 fix for used CPUs within the VM & hardware change detection
  • #929 default log level within exe-unit set from DEBUG to INFO
  • #983 fix activity status CLI
  • #927 preserve runtime output stream order
  • #881 transfer retries
  • #840 tool for debugging server-mode runtimes
  • #848 forbid activity creation for not approved Agreement

Activity part of Event API refactor

  • #902 adapt to the new Activity API spec

SGX

  • #735 limit subset of SGX metrics

Market Service

  • #858 simplification of the Proposal/Agreement rejection reason
  • #873, #930, #995 "respawn" Proposal after Agreement termination (disabled)
  • #914 forbid reaction to own Proposal
  • #953, #1014 fix race condition during Agreement approval
  • #988, #993 reject initial Proposal (Requestor's side) fix
  • #1015 Agreement approval ack introduced to comply with Market Service Specification and fix Agreement state inconsistency between Provider and Requestor
  • #1036 negotiation events ordering: counter-proposals in incoming order, but new proposals randomly to shuffle offers

Market's part of Event API refactor

  • #832 terminate agreement endpoint
  • #793 support app_session_id
  • #864 GetAgreement via GSB with Role
  • #859 reject proposal + adaptation to new Market API spec (e.g. deprecated endpoints removal)
  • #889 align HTTP response codes to the new Market API spec
  • #765 fix REST API responses
  • #803 use NewOffer/NewDemand/NewProposal aliases
  • #869 agreement events with common fields

Service Bus

GFTP

  • #954 improve transfer speed
  • #968 gftp -V version reporting unified with yagna -V

Metrics Service

  • #822 metrics CLI clean-up
  • #863 use https to send the metrics
  • #933, #1009 report yagna version (major, minor, patch) as three separate metrics

Identity Service

  • #981 key backup command in CLI yagna id export

Version Service

To inform users there is a new Yagna version released (pre-releases do not count).

  • #934 yagna GitHub releases checker
  • #961 version service introduced
  • #955, #966 version REST API
  • #958 SQL migrations for versions
  • #959 do not prune version entries in DB
  • #960 fixed GitHub API release date parsing
  • #985 fix version.skip metric invocation
  • #991 skipped versions still visible via CLI and GSB

Provider

  • #1004 golemsp and ya-provider multi-network (mainnet/rinkeby) support
  • #808 support for multi-activity within single Agreement
  • #897, #990 debit note keep-alive (enables longer agreements for long running activities)
  • #830 clean ya-provider datadir on start
  • #905 provider runtime testing (at start) added
  • #915 fix runner app_session_id
  • #944 golemsp status CLI refresh & upgrade
  • #952 golemsp status and ya-provider CLI unified + NGNT --> GLM rename
  • #956 lower default price (0.1 GLM per hour) in golemsp
  • #986 time based (flaky) tests behind compilation flag (feature)
  • #997 prepare for agreement approval
  • #1025 golemsp run CLI fix
  • #1033 fix Agreement termination attempt in already terminated state

goth

  • #723 integration tests made part of CI workflow
  • #860 yagna-integration renamed to goth (aka Golem Test Harness)
  • #865 disable goth's interactive tests in CI workflow
  • #875 use poetry to setup goth
  • #924 remove goth logs after CI finish

Others

  • #786 bump web3 lib dependencies
  • #862, #963 code ownership updated
  • #872 resolve ya-provider compilation errors
  • #895 logging to the file for yagna and ya-provider
  • #904 rust 1.49 build fix
  • #911 bump flexi_logger version
  • #925 ya-requestor dropped
  • #938 bump secp256k1 version + cargo update
  • #943 bump prost to improve security
  • #946 housekeeping (Cargo.toml and main.rs)
  • #965 fix Payment API example
  • #975 check Cargo.lock within CI builds
  • #980 SSL certificates fix
  • #1025 log colors improved
  • #1024 agreement view pretty display in logs
  • #1041 bump sub-crates versions for publishing some of them @ https://crates.io

Compatibility

This version is not backward compatible with previous versions of yagna, because we have optimized our GSB (a low-level protocol that is used to transport network traffic between the nodes and within the nodes).

API Library Compatibility

Library Version
yapapi 0.5.0
yajsapi 0.3.0

By installing & running this software you declare that you have read
understood and hereby accept the disclaimer and
privacy warning found at https://handbook.golem.network/see-also/terms

v0.5.0 Golem: Layer 2 Payments. Public Devnet.

01 Dec 09:26
v0.5.0
d33058b
Compare
Choose a tag to compare

With this release, we are excited to share zkSync L2 Payment Driver support.
The default payment method is now "GLM on zkSync" with fee's paid in GLM.

  • Providers will support both L1 ( GLM on Ethereum ) and L2 ( GLM on zkSync ) out of the box.
  • Requestors yagna payment init -r will now use zkSync as default payment method
  • Faucet will deposit funds on zksync directly, no need to wait for ETH, making faucet requests much faster.
  • This is the minimum viable implementation of zkSync: We only support transfers, not yet deposit and withdrawal.

Existing L1 on-chain Payment Driver is also available to be used as a fallback or simply by the user's choice. Just restart yagna service and run payment init -r --driver=ngnt ( NOTE: we will rename this next release to GLM )

Another cool payments-related feature is the ability to use your existing (eg. MetaMask) wallet address to receive tokens being Golemr Provider (#826).

CHANGELOG:

  • GolemSP:

    • Support golemsp stop (#787)
  • Provider:

    • Reduce timeout for closing agreements when no activity is made from 30 minutes to 90 seconds (#835)
    • Update provider agent readme (#750)
  • Metrics:

    • Yagna Deamon is now pushing the metrics to the central metrics server ( metrics.golem.network:9091 by default). It can be changed or disabled via CLI option (#762)
  • ExeUnit:

    • Add metrics for SGX runtime (#831)
    • Update secp256k1 crate (#733)
    • Update runtime Supervisor args (#716)
    • Add SGX support (#461 - exe-unit/sgx-poc)
  • Payments:

    • Add payment platform negotiation in preparation of zkSync (#678)
    • Ensure max 18 digits in compute_costs() (#828)
    • Ensure max 18 decimals in invoice (#807)
    • Enable all drivers for providers, let requestors pick driver (#823)
    • Add timeout to yagna payment init -r when driver is zksync (#790)
    • Check available funds before allowing to make allocation (#791)
  • Payment driver:

    • Add zksync driver (#737 - pay/zksync)
    • Make zksync the default payment driver (#784)
    • Freeze zksync version for release (#801)
    • Add persistance to zksync payment driver (#779)
    • Store zksync nonce locally for each batch of transactions (#811)
    • Update zksync-rs to version 1.1 (#815)
    • Add retry to zksync faucet requests (#797)
  • Market:

    • First step on market event API implementation (#758)
    • Update market API to support upcoming event refactoring (#775)
    • Improve logs based on feedback from alpha.2 release (#715)
    • Print agreementId after finishing agreement (#707)
  • Others:

    • Fix breaking build with rust update to rustc 1.48.0 (#810)
    • Update awc crate to solve "too many open file descriptiptors (#770)
    • Fix build after openssl errors (#766)
    • Clean up unused requestor-sdk, moved to yarapi (#759)
    • Integration tests in CI (#706)

By installing & running this software you declare that you have read
understood and hereby accept the disclaimer and
privacy warning found at https://handbook.golem.network/see-also/terms

v0.4.1 Golem Provider Sneak Peek Release

19 Oct 10:55
Compare
Choose a tag to compare

By installing & running this software you declare that you have read
understood and hereby accept the disclaimer and
privacy warning found at https://handbook.golem.network/see-also/terms

v0.4.0 Decentralized Marketplace

14 Oct 07:56
a1a50fd
Compare
Choose a tag to compare

We are proud to introduce a Decentralized Market implementation to yagna.

With this release, we are supporting all three main OS platforms: Linux, macOS and Windows for the Requestor side.
Being a Provider is also supported this time:

  • Linux with both VM and WASM/WASI runtimes
  • and for macOS with WASM/WASI runtime only.

There are lots of minor improvements and fixes included:

  • Metrics endpoint introduced (open; without authorization) #534, #599, #622, #683
  • New binary to facilitate Provider setup (golemsp aka Golem Sneak Peak) #515, #623, #645, #668
  • Windows compatibility #499, #623
  • Payment Service
  • ExeUnit
  • ya-provider
    • Proper signal (SIGTERM, SIGINT...) handling #585
  • More user friendly log messages across most of the internal crates #512, #548, #581, #655
    • REST API access logs hidden by default #682
    • Payment account not registered with hint #632

By installing & running this software you declare that you have read
understood and hereby accept the disclaimer and
privacy warning found at https://handbook.golem.network/see-also/terms