[PYTHON] Von der Einführung von Pyethapp bis zur Vertragsabwicklung

Zweck dieses Artikels

Wir haben von der Einführung von Pyethapp für die Verwendung von Ethereum in Python bis zur Ausführung des Vertrags zusammengefasst. In diesem Artikel werde ich bis zum Punkt des Vertragsabschlusses mit Ethereum gemäß dem folgenden Ablauf vorstellen.

--Erstellen einer virtuellen Umgebung für Python

Darüber hinaus wurde bestätigt, dass die in diesem Artikel ausgeführten Befehle mit Ubuntu (16LTS) und CentOS (6.9) funktionieren.

Ethereum Ich werde kurz die verwandten Begriffe von Ethereum erläutern, die in diesem Artikel erscheinen.

Was ist Ethereum?

Ethereum ist eine vollständige Turing-Plattform für die Vertragsverarbeitung und -durchsetzung für Blockchain-Ledger mit vollständig unabhängigen Spezifikationen und Implementierungen anstelle einer Kopie von Bitcoin. Es hat eine eingebaute Währung namens Äther und Sie werden aufgefordert, zu zahlen, wenn Sie den Vertrag ausführen.

Was ist ein Vertrag?

Die Blockchain-Aufzeichnung von Ethereum erfolgt vertraglich. Der Vertrag ist eine einfache Sprache, die in vollständigem Code geschrieben ist, der dem Bytecode ähnelt. Vertrag ist ein Programm, das auf dem Ethereum-System funktioniert und Daten speichern, Äther bezahlen, empfangen und speichern kann. Es kann sich auch um einen dezentralen und autonomen Software-Agenten handeln, der Operationen mit unbegrenzter Länge ausführen kann, die berechnet werden können.

Referenz

Aufbau einer virtuellen Python-Umgebung

Erstellen Sie eine virtuelle Python-Umgebung, um pyethapp zu starten.

--Virtuelle Umweltkonstruktion

$ pip install virtualenv
$ pip install virtualenvwrapper

//Starten Sie das Terminal und den virtuellen Envwrapper neu.mach sh
$ reset

// virtualenvwrapper.Überprüfen Sie den Standort von sh
$ which virtualenvwrapper.sh
/usr/bin/virtualenvwrapper.sh

$ source /usr/bin/virtualenvwrapper.sh

$ export WORKON_HOME=~/Envs
$ mkdir -p $WORKON_HOME

$ mkvirtualenv pyethapp
$ cd $WORKON_HOME/pyethapp/bin
$ source activate

--Ende

(pyethapp)$ deactivate

Referenz

Installieren Sie pyethapp

pyethapp ist ein Python-basiertes Modul, das Ethereum implementiert. In git wird nur die Installationsprozedur mit Ubuntu geschrieben, aber ich konnte sie mit CentOS installieren.

Ubuntu/Debian

$ apt-get install build-essential automake pkg-config libtool libffi-dev libgmp-dev
(pyethapp)$ pip install pyethapp

CentOS

$ yum groupinstall "Development Tools"
(pyethapp)$ yum install kernel-devel kernel-headers
(pyethapp)$ yum install automake libtool libffi libffi-devel gmp

Referenz

Installieren Sie das Pyethereum

Pyethereum ist die Kernbibliothek für die Verarbeitung von Blockchain, Ethereum und Mining. Durch die Installation in pyethapp können Sie jede Bibliothek verwenden.

(pyethapp)$ cd pyethapp
(pyethapp)$ git clone https://github.com/ethereum/pyethereum/
(pyethapp)$ cd pyethereum
(pyethapp)$ python setup.py install

Referenz

Führen Sie pyethapp aus

Das Datenverzeichnis befindet sich standardmäßig unter "~ / .config / pyethapp / leveldb".

Ein Konto erstellen

(pyethapp)$ cd pyethapp
(pyethapp)$ pyethapp -d "~/.config/pyethapp/leveldb" account new

//Geben Sie das Kennwort für den privaten Schlüssel zweimal ein
Password to encrypt private key:
Repeat for confirmation:
...
Account creation successful
Address: 8d69118ca81b5878ad22d40b701ea9ae88190a60
Id: None

Auf der Konsole ausführen

Geben Sie testnet in --profile an, um eine Verbindung in der Testumgebung herzustellen. IPython wird gestartet, indem es mit der Konsole als Argument ausgeführt wird.

(pyethapp)$ workon pyethapp
(pyethapp)$ pyethapp -d "~/.config/pyethapp/leveldb" --profile testnet run --console

Sie können das eth-Objekt verwenden, ohne die Bibliothek zu importieren.

$ eth.latest
<CachedBlock(#0 0cd786a2)>

$ eth.latest.get_balance(eth.coinbase)
0

Die Pyethereum-Bibliothek kann auf der Konsole verwendet werden, indem sie wie IPython importiert wird.


//Importieren Sie Dienstprogramme für Ethereum
$ import ethereum.utils as u

//Testmodul importieren
$ import ethereum.tester as t

//Testkonto 1 Adresse
$ t.a0
'\x82\xa9x\xb3\xf5\x96*[\tW\xd9\xee\x9e\xefG.\xe5[B\xf1'

$ u.is_numeric(t.a0)
False

$ u.is_string(t.a0)
True

//Privater Schlüssel für Testkonto 1(k0)Von in Adresse konvertieren
$ u.privtoaddr(t.k0)
'\x82\xa9x\xb3\xf5\x96*[\tW\xd9\xee\x9e\xefG.\xe5[B\xf1'

//Erstellen Sie einen neuen Blockchain-Status
$ s=t.state()

//Überprüfen Sie alle Blockchains
$ s.blocks
[<Block(#0 565a32e6)>]

//Erhöhen Sie die Ketten durch Bergbau
$ s.mine(n=1)

$ s.blocks
[<Block(#0 50ba5c12)>, <Block(#1 6c0f699b)>]

Referenz

Installation der Schlange

serpent ist eine Programmiersprache auf hoher Ebene zum Schreiben von Ethereum-Verträgen. Es ist eine auf Vertragsprogrammierung spezialisierte Sprache, die eine ähnliche Beschreibungsmethode wie Python aufweist, eine saubere und einfache Codierung ermöglicht und viele Vorteile von Low-Level-Sprachen mit einem einfachen Programmierstil kombiniert. Der Serpent Compiler ist in C ++ geschrieben.

Installation

Es gibt zwei Installationsmethoden, aber es spielt keine Rolle, welche.

--Installieren Sie aus dem Quellcode

$ git clone https://github.com/ethereum/serpent.git
$ cd serpent
$ git checkout develop
$ make && sudo make install
$ python setup.py install

--Installieren Sie auf Pyethapp

(pyethapp)$ git clone https://github.com/ethereum/pyethereum.git
(pyethapp)$ cd pyethereum
(pyethapp)$ git checkout develop
(pyethapp)$ pip install -r requirements.txt
(pyethapp)$ python setup.py install

Lauf

Erstellen Sie die folgende Schlangendatei direkt unter dem Pyethapp-Projekt.

mul2.se


def double(x):
 return (x*2)

Kompilieren Sie mit der Schlange.

$ serpent compile mul2.se
//Bytecode zurückgegeben
6100...

Auf der Pyethapp-Konsole kann der Vertrag nach dem Kompilieren mit Gas verbraucht werden.

$ d=s.abi_contract("mul2.se")
$ s.block.gas_used
98065
$ d.double(2)
4
$ s.block.gas_used
119618

Referenz

Referenzzusammenfassung

Recommended Posts

Von der Einführung von Pyethapp bis zur Vertragsabwicklung
Einführung in Scapy ① (Von der Installation bis zur Ausführung von Scapy)
Von der Einführung der GoogleCloudPlatform Natural Language API bis zur Verwendung
[Ansible Installationsverfahren] Von der Installation bis zur Ausführung des Playbooks
Einstellung zur Ausgabe des Protokolls zur Ausführung von cron
Ändern Sie den Dezimalpunkt der Protokollierung von, nach.
Die Geschichte vom Umzug von Pipenv zur Poesie
Die Wand beim Ändern des Django-Dienstes von Python 2.7 auf Python 3-Serie
Wird ab der Einführung von Node.js in der WSL-Umgebung verwendet
Ich möchte das Ausführungsergebnis von strace erfassen
[Einführung in cx_Oracle] (Teil 11) Grundlagen der PL / SQL-Ausführung
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
[Einführung in cx_Oracle] Übersicht über cx_Oracle
Zusammenfassung von Anfang bis Kapitel 1 der Einführung in Entwurfsmuster, die in der Java-Sprache gelernt wurden
Eine Einführung in die Objektorientierung: Ändern Sie den internen Status eines Objekts
Einführung in die Statistik Die University of Tokyo Press Kapitel 2 Übungen
Berechnen des aus ABC134-D gelernten Rechenaufwands
[Einführung in matplotlib] Lesen Sie die Endzeit aus den COVID-19-Daten ♬
Die Geschichte des Kopierens von Daten von S3 auf Googles TeamDrive
Immerhin die Geschichte der Rückkehr von Linux zu Windows
[Einführung in das logarithmische Diagramm] Prognostizieren Sie die Endzeit jedes Landes anhand des logarithmischen Diagramms der Infektionszahldaten ♬
Nimm das Ausführungsprotokoll von Sellerie
Existenz aus Sicht von Python
[Einführung] Von der Installation von Kibana bis zum Start
Python (vom ersten Mal bis zur Ausführung)
Ab Ubuntu 20.04 Einführung in die Umgebungskonstruktion
Ergänzung zur Erklärung von vscode
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.
[Einführung in StyleGAN] Ich habe mit "The Life of a Man" ♬ gespielt
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von setgroups bis wchan ~
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von cwd bis loginuid ~
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von map_files bis numa_maps ~
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von oom_adj bis sessionid ~
[Python3] Definition eines Dekorators, der die Ausführungszeit einer Funktion misst
So überwachen Sie den Ausführungsstatus von sqlldr mit dem Befehl pv
[Einführung in das SIR-Modell] Betrachten Sie das passende Ergebnis von Diamond Princess ♬
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von attr bis cpuset ~
Kapitel 1 Einführung in Python Schneiden Sie nur die guten Punkte des Deeplearning aus, die von Grund auf neu erstellt wurden
Die Geschichte des Versuchs, den Client wieder zu verbinden
Über die Reihenfolge des Lernens von Programmiersprachen (vom Anfänger bis zum Fortgeschrittenen) Teil 2
Skript zum Ändern der Beschreibung von Fasta
So überprüfen Sie die Version von Django
Die Geschichte, MeCab in Ubuntu 16.04 zu setzen
Notizen vom Anfang von Python 1 lernen
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
Erstellen Sie eine Ausführungsumgebung für Jupyter Lab
Vom Erwerb der MuJoCo-Lizenz über die Erneuerung bis zur Ausführung
Wahrscheinlich die einfachste Einführung in TensorFlow
Von der Aufmerksamkeit von Zero Tsuku 2 zum Transformator
So bedienen Sie Linux von der Konsole aus
So greifen Sie von außen auf den Datenspeicher zu
Holen Sie sich den Songtitel aus dem Titel des von Ihnen gesungenen Videos
[Einführung in Python] Eine ausführliche Erklärung der in Python verwendeten Zeichenkettentypen!
Die Geschichte von pep8 wechselt zu pycodestyle
[Einführung in Python] Wie wird mit der continue-Anweisung wiederholt?
Notizen vom Anfang von Python 2 lernen
[Einführung in Data Scientist] Grundlagen von Python ♬
Übertragen Sie Benachrichtigungen über die Linux-Befehlszeile oder das Skript auf Ihr Smartphone. (Einführung eines Tools namens ntfy)