yagna | open platform and marketplace for distributed computations
kandi X-RAY | yagna Summary
kandi X-RAY | yagna Summary
An open platform and marketplace for distributed computations
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of yagna
yagna Key Features
yagna Examples and Code Snippets
Community Discussions
Trending Discussions on yagna
QUESTION
I tried running a task on Golem via the Python API Yapapi, but it says I don't have enough funds for the allocation. When I then checked the yagna payment status --driver zksync
, it says I have a lot of funds in the reserved state.
How do I get them out?
...ANSWER
Answered 2021-Nov-24 at 13:32Golem doesn't have any built in functionality at this current stage (v0.8.0) to automatically empty the reserved state. So what you can do is use this bash script to contact the local API to clear the reserved funds.
QUESTION
I have a container running a requestor inside, and I was wondering if I could send a HTTP request to that container to somehow stop a currently running task. Is there any built in method in Yagna or Yapapi that will allow me to do this?
...ANSWER
Answered 2022-Jan-01 at 02:06Great question! Assuming you are referring to a single task or group of tasks launched in a Golem execute_tasks call, the answer is No, you cannot directly and completely cancel a task using the REST API. (prove me wrong!, see about me at end)
However, a task can be indirectly cancelled (but subsequently retried) by terminating its associated agreement via the REST API!, provided you can discover (presumably by means other than the REST API) a task's associated agreement id.
Terminating an agreement to cancel and retry a task can be done via a POST http method. I give an example below.
use this reference to see the available endpoints and affirm for yourself:
read on only if you want to see an example of how to hack a cancel and retry
pre: container is running on 192.168.1.100 and yagna daemon on port 7465
the key to making this work is discovering a task's agreement id. here i show how obtaining the agreement id is possible indirectly by monitoring events in the requestor script. alternatives may include monitoring for new activities in the yagna daemon log file and parsing the associated activity id.
Given that every task is associated one-to-one bidirectionally with an agreement id, i will describe how to terminate a specific agreement and consequently cancel and retry its task one at a time with said id.
Here is how cancelling (and retrying) a specific task by way of terminating its agreement can be done in the context of the task model with curl for example in a bash script
QUESTION
I am looking to create a plugin on yagna where providers will only accept tasks from whitelisted requestors utilizing private/public keys for authentication.
Are there any documentation or how can I go about doing it? Workflow as follows:
- Requestor sends task in a specific subnet(do requestors also need a plugin, or are yagna ids unique?)
- Providers on that subnet check if it's a whitelisted requestor by checking yagna id or other task information which cannot be faked
I am not entirely sure on how I would format it because I don't know how the system works behind the scenes - so any advice there might be necessary if my workflow is too bad.
...ANSWER
Answered 2021-May-28 at 12:55It's a nice idea & it's doable.
You can differentiate requestors by their id's. To get the nodes' id (requestor or provider) just run yagna id list
(yagna daemon has to be running - yagna service run
).
Probably the most challenging part would be to modify ReactToProposal
handler of CompositeNegotiator
. Current implementation casts Proposal
(Demand
in this context) into ProposalView
. Unfotunatelly at this point requestor_id
is lost. For testing purposes you can just filter requestors directly in fn handle()
and return Ok(ProposalResponse::RejectProposal {....})
when you want to block a requestor. Your field of interest is msg.demand.issuer_id
.
If you want to introduce some kind of public/private key pair functionality, it could achieved by adding custom * demand/offer constraint* that is understood by both your requestor and provider. Unfortunately at this time there is no public documentation on this topic.
Please feel free to reach out if you have further questions.
QUESTION
When trying to start Yagna I receive this error, what can I do? I can probably get some DEBUG logs if needed?
...ANSWER
Answered 2021-May-10 at 15:56I'm not sure what is the reason here, but it seems like DNS is not able to resolve _net._tcp.dev.golem.network
SRV record yielding 'Not Implemented'. It is very odd, since Yagna is using Google's DNS servers as a default.
When you face this again pls try to check output of following command
QUESTION
I tried following this guide to compile golem from source but I don't see golemsp in any of the output folders. Do I have do something specific to compile golemsp and its necessary binaries also?
...ANSWER
Answered 2021-Apr-27 at 00:35You can use
QUESTION
So recently I have been compiling a rust project for ARM. It compiles perfectly for x86, but whenever I switch to an ARM target it can't find the Openssl installation, I have pkg-config installed and working so its not that error. Not sure how to set the OPENSSL_DIR variable successfully either or where to find the installation myself. The error is pasted fully below
...ANSWER
Answered 2021-Apr-11 at 22:23If you're compiling something with OpenSSL for armhf
, then you'll need to have the libssl-dev
package installed for that architecture. That will involve setting up dpkg for it via dpkg --add-architecture armhf
and then doing an apt-get update
and apt-get install libssl-dev:armhf
.
Note that it may not be possible to install multiple versions of libssl-dev
at once, and resolving the dependencies in a way that doesn't end up removing a lot of packages may be tricky. Debian-style multiarch is very capable, but it can be a bit fiddly at times.
You definitely should not vendor OpenSSL because it frequently comes out with security updates. Similarly, it is also a bad idea to statically link OpenSSL. If you do vendor or statically link it, unless you are extremely careful to keep it up to date, your code will contain security vulnerabilities.
QUESTION
This is a complex and hard issue, but I will break it down to the best of my abilities. It comes down to when I am compiling a rust project for ARM64 (goal is to run on rasp pi 4).
A large majority of the libraries compile (704 / 740) but it breaks during compilation when it goes to compile a zksync directory. The the yagna client for golem is what I am compiling, I am using
target - target.arm-unknown-linux-musleabi linker - arm-linux-gnueabihf-ld
I'd love to hear ideas solutions, or what I am doing wrong so I can get this project running on ARM. The error code I am getting is
...ANSWER
Answered 2021-Apr-09 at 02:25stat
is a Statvfs
structure, the return type of Statvfs::blocks_available()
is fsblkcnt_t
, and the return type of Statvfs::fragment_size()
is c_ulong
. These two types are defined in the libc
package, which is a paper-thin wrapper around the low-level C OS-calls. The types are equivalent to the C types in the OS-specific *.h
files. The sizes of the types vary from platform to platform.
The library you're compiling appears to have some assumptions baked in about these sizes and their arithmetic compatibility.
Some bug reports to the library authors would be in order.
If you're willing to patch the library yourself, then you should first investigate your platform's libc
package and check the definitions of all types involved in the errors you're seeing. Then fix the arithmetic expressions so the types are compatible and they don't overflow.
I don't think Rust's type system is smart enough to support one body of code that handles all potential combinations of type sizes both safely (without overflow or truncation) and efficiently (without needlessly casting everything up to u128) . It might be that platform-specific patches are necessary.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install yagna
Rust is installed and managed by the rustup tool. Rust has a 6-week rapid release process and supports a great number of platforms, so there are many builds of Rust available at any time. Please refer rust-lang.org for more information.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page