Golem JavaScript Library: Latest Updates

We are excited to publicly announce the latest set of releases of Golem's JavaScript library. This briefing summarises: golem-js 0.8.x; golem-js 0-9.0; golem-js 0-10-x and golem-js 0.11.1 Let's dive into the key features, bug fixes, and other enhancements that these updates bring to the Golem ecosystem.

The Objective of the Release

The primary goal of these releases is to add new features, address bugs, improve performance, and enhance the development experience for both requestors and providers in the Golem Network.

🌟 Key Features/Enhancements

1. Library Name Update

We've simplified our library naming for better clarity. Say hello to @golem-sdk/golem-js, the new name for our JavaScript library, previously known as yajsapi.

2. GFTP over WebSockets

With this feature, requestors can now transfer data in scripts that run within web browsers. This opens up exciting possibilities for creating Golem apps that seamlessly handle data transfer.

3. Payload Manifest and Outbound Support

Requestors can now create apps that initiate connections to external URLs. This feature adds flexibility to your applications, however, requires the provider's permission to use the service for the requested URL.

4. Default Agreement Selection Strategy

We've revised the default agreement selection strategy to prioritize already engaged providers, leading to improved execution performance.

5. Price Filtering

Managing costs just got easier. With the addition of limitPriceFilter, requestors can filter providers based on price criteria, providing more control over resource allocation.

6. Logging Control

We understand the importance of clean development. To that end, we've added a flag that allows you to enable or disable logging entirely, so you can focus on what matters most.

7. Golem Network API

This new API empowers developers to manage long-running jobs effectively, offering even more flexibility.

🤖 How It Affects Requestors and Providers

These new features significantly expand the potential use cases for Golem apps, improve overall execution performance, and provide a straightforward cost management solution for providers. We're excited to see how these enhancements will inspire innovative applications within the ecosystem.

🐞 Bug Fixes

In addition to these exciting new features, we've also addressed several bugs to ensure a smoother experience:

  • Batch Improvements: Batches will no longer be rejected due to a single-step error, allowing users to analyze the cause.
  • Payment Initialization: Initializing payments on the `yagna` service is no longer a prerequisite for creating an allocation.
  • Proposal Filtering: Proposals are now correctly filtered for demands with the minCPU constraint.
  • Agreement Selection: The AgreementSelectionStrategy now correctly selects providers for the next task.
  • Timeout Measurement: Timeout measurement for tasks executed in a loop has been corrected.

🔗 Upgrade Instructions

To take advantage of these improvements, make sure to update your import statements to reflect the new library name:

  • import { TaskExecutor } from "@golem-sdk/golem-js";
  • import { TaskExecutor } from "https://unpkg.com/@golem-sdk/golem-js";

Additionally, follow the respective package manager procedure to update the library in your existing projects.

🚫 Deprecations and Breaking Changes

Please note that the yajsapi library is now deprecated. Make sure to update your projects accordingly to use @golem-sdk/golem-js.

📚 Documentation and Resources

Explore our new documentation bundle available at docs.golem.network. This updated resource features a refreshed look and a completely new structure, including guides, examples, tutorials, and instructions for tool usage. We hope it serves as a valuable reference for your development journey with Golem.

📣 Feedback and Reporting

Your feedback is invaluable to us. Join our Discord js-discussion channel to share your thoughts or report any issues. Alternatively, you can report issues on the golem-js GitHub repository or golem-docs GitHub repository for the library and documentation, respectively.

🌐 Conclusion and Looking Forward

We are committed to improving the Golem ecosystem continuously. Our team is hard at work on new features and API enhancements to further improve the developer experience and fully support yagna features. Stay tuned for more exciting updates, and thank you for being a part of the Golem community!