yagna | open platform and marketplace for distributed computations

 by   golemfactory Rust Version: pre-rel-v0.13.0-rc5 License: GPL-3.0

kandi X-RAY | yagna Summary

kandi X-RAY | yagna Summary

yagna is a Rust library typically used in Big Data, Ethereum, Spark applications. yagna has no bugs, it has no vulnerabilities, it has a Strong Copyleft License and it has low support. You can download it from GitHub.

An open platform and marketplace for distributed computations
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              yagna has a low active ecosystem.
              It has 299 star(s) with 49 fork(s). There are 31 watchers for this library.
              There were 4 major release(s) in the last 12 months.
              There are 297 open issues and 961 have been closed. On average issues are closed in 87 days. There are 24 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of yagna is pre-rel-v0.13.0-rc5

            kandi-Quality Quality

              yagna has 0 bugs and 0 code smells.

            kandi-Security Security

              yagna has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              yagna code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              yagna is licensed under the GPL-3.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              yagna releases are available to install and integrate.
              It has 1263 lines of code, 63 functions and 23 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of yagna
            Get all kandi verified functions for this library.

            yagna Key Features

            No Key Features are available at this moment for yagna.

            yagna Examples and Code Snippets

            No Code Snippets are available at this moment for yagna.

            Community Discussions

            QUESTION

            My funds are stuck in a reserved state. How do I get them out?
            Asked 2022-Jan-28 at 09:32

            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:32

            Golem 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.

            Source https://stackoverflow.com/questions/70097006

            QUESTION

            Can I cancel a Yapapi task by contact a yagna REST endpoint?
            Asked 2022-Jan-01 at 02:06

            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:06

            Great 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

            Source https://stackoverflow.com/questions/70421902

            QUESTION

            Creating a plugin in the provider client
            Asked 2021-May-28 at 12:55

            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:

            1. Requestor sends task in a specific subnet(do requestors also need a plugin, or are yagna ids unique?)
            2. 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:55

            It'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.

            Source https://stackoverflow.com/questions/67712391

            QUESTION

            Failed to bind handlers: DNS Error: Not Implemented; retrying in 2 s
            Asked 2021-May-25 at 10:39

            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:56

            I'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

            Source https://stackoverflow.com/questions/67414799

            QUESTION

            When building from source where is golemsp is located at?
            Asked 2021-Apr-27 at 00:35

            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:35

            QUESTION

            Openssl can't compile when compiling for ARM, otherwise works fine
            Asked 2021-Apr-11 at 22:23

            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:23

            If 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.

            Source https://stackoverflow.com/questions/67046689

            QUESTION

            Usize breaking zksync when compiling for ARM
            Asked 2021-Apr-09 at 02:25

            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:25

            stat 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.

            Source https://stackoverflow.com/questions/67013986

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install yagna

            You can download it from GitHub.
            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

            For a more in-depth look at how Golem works, head over to our documentation.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link