GithubHelp home page GithubHelp logo

agix's Introduction

snet-dapp

This Dapp allows you to browse the list of services from the SingularityNET Registry and call them. The beta dapp is under active development and will see several changes in the upcoming weeks

How to call a Service

  1. Navigate to the SingularityNET beta dapp
  2. Sign up / Login to the DApp account
  3. Every service has a free trial, so you can invoke the service without any payment
  4. If free trial has expired, you need to use your AGIX tokens to make the call using Metamask (this is on the mainnet)
  5. Authorize and Transfer tokens to the Multi party escrow in the Accounts page
  6. Follow the service execution steps on the service details page
  7. The result from the operation is displayed in the result tab

Development instructions

  • Install Node.js and npm
  • npm install to get dependencies
  • npm run start to serve the application locally and watch source files for modifications

UI for Services

Currently the UI needed by a service to capture inputs and render the output must be provided by the service developer as a PR. It must be provided in the form of a React component. This approach will change in the future as we support a generic mechanism to declaratively describe a service's API. See this for more details

Sandbox mode for Services

git clone [email protected]:singnet/snet-dapp.git
cd snet-dapp
npm install
cp .env.sandbox .env
  1. Update .env file to reflect the actual values for each environment variable.

    1. REACT_APP_SANDBOX_SERVICE_ENDPOINT

      The endpoint of the service running locally. snetd defaults to http://localhost:8088.

    2. REACT_APP_SANDBOX_ORG_ID & REACT_APP_SANDBOX_SERVICE_ID

      The org_id to which the service belongs and the service_id of the service. The values set for these variables will be used for registering the custom ui.

    3. REACT_APP_WEB3_PROVIDER

      The infura endpoint to be used for the Web3 connection.

  2. Start the AI service locally along with the snet daemon. Make sure the blockchain is disabled in the daemon configuration.

  3. Building the custom ui

    1. Generate js stubs from .proto files

      For the custom ui to talk to the services on SingularityNET platform via the DApp, we are using gRPC-web by improbable-eng. Apart from the steps mentioned at the official documentation to generate js stubs from .proto definitions, you also need to provide the namespace_prefix flag to the generator. Here is an example which illustrates the usage

      protoc \
      --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts \
      --js_out=import_style=commonjs,binary,namespace_prefix=<uniq_name_space>:. \
      --ts_out=service=true:. \
      example_service.proto
      

      <uniq_name_space> should be a combination of package_name + org_id + service_id. For the following proto file with org_id=snet and service_id=example-service the namespace_prefix would be example_service_snet_example_service.
      PS: All the - should be replaced by _.

    2. You need build the custom UI following the steps

      Create a new directory named after the org-id to which this service belongs inside src/assets/thirdPartyServices. It could be possible that the directory already exists, in which case you can use it instead of creating a new one.

      Create a new directory named after the service-id under the newly created directory in the above step

      e.g. for a service with org-id: snet and service-id: example-service you will have to do the following assuming you are at the root of the snet-dapp

       cd src/assets/thirdPartyServices
       mkdir snet
       cd snet
       mkdir example_service
       cd example_service
      

      Put the all the resources used by the custom ui under this directory including the js stubs.

  4. Register the custom ui

    Add an entry for the new service in src/assets/thirdPartyServices/index.js if it does not already exist. Add the following line towards the end of the file. Make sure to replace orgId, serviceId and CustomUIComponent accordingly.

     thirdPartyCustomUIComponents.addCustomUIComponent(orgId, serviceId, CustomUIComponent);
    
  5. Assuming that the snet daemon is running on port 8088, running the bellow commands should bring up the DApp in sandbox mode for local development.

     npm run sandbox
    

agix's People

Contributors

vivek205 avatar dasari-ananya avatar raamb avatar ksridharbabuus avatar arturgontijo avatar chetankothari avatar rajeevbbqq avatar yisehak-awm avatar sreeshnap avatar dhivakharvenkatachalam avatar habush avatar shyam-khokhariya avatar keshrisohit avatar daddywesker avatar sujithvarma avatar bulidiriba avatar israelabebe avatar glautervl avatar raghu-snet avatar sagarikakatikam avatar vinthedark avatar ananya-2019 avatar noskill avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.