Eris : Fehler beim Kompilieren von Verträgen

Ich versuche, einen Kontakt mit der Eris-Plattform bereitzustellen, ich habe das Tutorial in der Dokumentation von Eris ( https://monax.io/docs/tutorials/getting-started/index.html?redirect_from_eris=true#fnref:1 ) befolgt, aber wann Ich komme zum Schritt der Bereitstellung eines Vertrags. Ich habe diesen Fehler erhalten:

root@abday-Lenovo-IdeaPad-Z510:~/.eris/apps/library# eris pkgs do --chain library_chain --address $addr --compiler 192.168.99.100:2376
Performing action. This can sometimes take a wee while
Executing Job                                 defaultAddr
Executing Job                                 setStorageBase
Executing Job                                 deployStorageK
failed to send HTTP request Post http://192.168.99.100:2376/compile: malformed HTTP response "\x15\x03\x01\x00\x02\x02\x16"
Error compiling contracts
Post http://192.168.99.100:2376/compile: malformed HTTP response "\x15\x03\x01\x00\x02\x02\x16"

Container interactive-58a4f2a7-fe59-40b3-bc2c-90c1c544364a exited with status 1

192.168.99.100:2376: Dies ist die IP-Adresse meiner Docker-Maschine

das ist mein vertrag:

contract Library {
  string storedData;

  function set(string x) {
    storedData = x;
  }

  function get() constant returns (string retVal) {
    return storedData;
  }
}

und das ist meine epm.yaml-Datei:

jobs:

- name: setStorageBase
  job:
    set:
      val: "Book Title"

- name: deployStorageK
  job:
    deploy:
      contract: library.sol
      wait: true

- name: setStorage
  job:
    call:
      destination: $deployStorageK
      data: set $setStorageBase
      wait: true

- name: queryStorage
  job:
    query-contract:
      destination: $deployStorageK
      data: get

- name: assertStorage
  job:
    assert:
      key: $queryStorage
      relation: eq
      val: $setStorageBase

irgendeine Idee dazu? Danke


das ist, was ich habe @Zach, ein anderer Fehler:

root@abday-Lenovo-IdeaPad-Z510:~/.eris/apps/idi# eris pkgs do --chain testchain --address 92B92269AC1E8081B9FD4A4F1F35884B97D8E348 --compiler http://172.17.0.4:9099
Performing action. This can sometimes take a wee while
Executing Job                                 defaultAddr
Executing Job                                 setStorageBase
Executing Job                                 deployStorageK
Executing Job                                 setStorage
ABI Error                                 abi=
                                         data=
                                         dest=
                                       rawErr=Abi doesn't exist for =>  abi

There has been an error in finding or in using your ABI. ABI's are "Application Binary
Interface" and they are what let us know how to talk to smart contracts.

These little json files can be read by a variety of things which need to talk to smart
contracts so they are quite necessary to be able to find and use properly.

The ABIs are saved after the deploy events. So if there was a glitch in the matrix,
we apologize in advance.

The marmot recovery checklist is...
  * ensure your chain is running and you have enough validators online
  * ensure that your contracts successfully deployed
  * if you used imports or have multiple contracts in one file check the instance
    variable in the deploy and the abi variable in the call/query-contract
  * make sure you're calling or querying the right function
  * make sure you're using the correct variables for job results


Container interactive-f048917d-8248-429f-8728-2c393b9425f5 exited with status 1 

Antworten (1)

Das --compilerFlag sollte die IP des Compiler-Dienstes und nicht die IP des docker-machine hosts sein.

Standardmäßig können Sie das Flag weglassen, um die remote gehosteten Compiler zu verwenden.

Da es so aussieht, als ob Sie versuchen, den lokalen Compiler über das Docker-Image zu verwenden, können Sie das --local-compilersFlag in Version 0.12.0 von eris verwenden.

Für Version 0.11.4 müssen Sie Folgendes ausführen: eris services start compilers && eris services inspect NetworkSettings.IPAddressum die richtige IP zu erhalten, und http://an den Anfang und Port „9099“ an das Ende anhängen.

funktioniert es, wenn Sie das Flag des Compilers weglassen?
nein geht nicht :(