Einrichtung der kontinuierlichen Integration mit bitcoind regtest auf travis-ci

Untertitel: travis-ci kann die generateJSON-RPC-Methode bei Regtest nicht ausführen

Ich versuche, den CI-Prozess auf der Plattform https://travis-ci.org einzurichten, um Bitcoin zu installieren und eine neue Blockchain im regtestModus zu starten.
Ich möchte dies tun, um Komponententests meiner Anwendungen auszuführen, die Brieftaschendaten verwenden. Methoden gegen Bitcoin funktionieren gut, mit Ausnahme der generateMethode, die benötigt wird, um einige Bitcoins in der Regtest-Privatkette abzubauen.

Es sieht nach einem bitcoind/travis-civerwandten Problem aus.

  1. generateMethode funktioniert in meinem lokalen CI-Prozess (nicht Travis).
  2. Travis-CI funktioniert gut, wenn ich den generateMethodenaufruf in CI-Tests kommentiere.

generateMethodenaufruf bei Verwendung von travis-ci schlägt mit folgendem Fehler fehl:

{"code":-32601,"message":"Method not found"}

bitcoin.conf:

server=1
regtest=1
gen=1
rpcuser=someuser
rpcpassword=somepass

.travis.yml:

language: r
sudo: required

before_script:
  - sudo apt-add-repository ppa:bitcoin/bitcoin -y
  - sudo apt-get update -qq
  - sudo apt-get install bitcoind -y

r_github_packages:
 - jangorecki/rbitcoind

after_script:
 - cat $(find . -maxdepth 1 -name "*.Rcheck" -type d)/tests/tests.Rout

Gibt es einen Trick im Setup, den ich verwenden sollte, um travis-ci in die Lage zu versetzen, CI on regtestChain auszuführen, einschließlich der generateMethode?

Lassen Sie die Build-Links nur als Referenz:
- generateMethode kommentiert - CI bestanden: https://travis-ci.org/jangorecki/rpc.generate/builds/77207297
- verwenden generate- CI fehlgeschlagen: https://travis-ci.org/ jangorecki/rpc.generate/builds/77208666

Antworten (1)

v0.11.0 und später:

Überprüfen Sie und stellen Sie sicher, dass Ihre Daemon-Version v0.11.0 oder höher ist. Wenn dies der Fall ist, sollte die Generate-Methode funktionieren.

Vor v0.11.0:

Die setgenerate trueMethode sollte verwendet werden.

In einem Standardnetzwerk (z. B. testnetoder main) setgenerate truewird das Mining auf unbestimmte Zeit aktiviert. Im Regtest wird nur ein Block abgebaut. Sie können auch tun

setgenerate(TRUE, 10)

Um 10 Regtest-Blöcke abzubauen. Der zweite Parameter wird Generationsgrenze genannt.

Laut der Referenz zum Generieren von Methoden sollte die Methode insbesondere im regtestModus zum sofortigen Minen von Blöcken ohne Rechenkosten verwendet werden, und diese Funktion ist ein Muss für eine Plattform wie travis-ci. generate()Wenn Sie nach Körper fragen , sehen Sie sich das an . Es funktioniert nur in zwei CI-Umgebungen: Ubuntu und vm Ubuntu.
@jangorecki Das muss in v0.11.0 hinzugefügt worden sein, ich verwende derzeit v0.10.2. Die Versionshinweise sagen jedoch nicht, dass eine generateMethode hinzugefügt wurde. Welche Version von bitcoindhast du?
OK, ich sehe, ich habe 0.10.2auf Travis, das ist der Grund, warum keine Methode gefunden wurde. Ich verwende das gleiche PPA, also sollte es die neueste Version von Bitcoin bekommen, nicht wahr? Sie können Ihrer Antwort Informationen zur Version hinzufügen, damit ich sie akzeptiere. Danke
@jangorecki Ich denke, der PPA ist veraltet. Es ist zumindest nur eine Version veraltet. Ich habe meine Antwort aktualisiert, um Versionsinformationen aufzunehmen.
launchpad.net/~bitcoin/+archive/ubuntu/bitcoin haben sie die Builds für Ubuntu 12.04 gestoppt?
Nein, Builds für 12.04 sind fehlgeschlagen und wurden nie behoben.
@MattCorallo ist es so schwierig, sie zum Laufen zu bringen? Dies würde es jedem Github-Projekt ermöglichen, das travis-ci verwendet, Unit-Tests gegen die eigene Blockchain durchzuführen, eine ziemlich große Erweiterung.