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.
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.
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.
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
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
https://github.com/ethereum/pyethapp
Es gibt keine verwandten Pakete. Fehler-Gegenmaßnahmen (hauptsächlich CentOS) http://stackoverflow.com/questions/31508612/pip-install-unable-to-find-ffi-h-even-though-it-recognizes-libffi http://www.techblogistech.com/2012/03/installing-build-essentials-in-centos-make-gcc-gdb/ http://blog.goo.ne.jp/asakurah/e/7f9cdf8cbada8841c388ece8cd421432
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
Das Datenverzeichnis befindet sich standardmäßig unter "~ / .config / pyethapp / leveldb".
(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
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)>]
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.
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
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
Ethereum Technologie, die Bitcoin- und Blockchain-Kryptowährung unterstützt (NTT Publishing) https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI
virtualenvwrapper http://virtualenvwrapper.readthedocs.io/en/latest/
pyethapp https://github.com/ethereum/pyethapp https://github.com/ethereum/pyethapp/wiki/The_Console
Es gibt keine verwandten Pakete. Fehler-Gegenmaßnahmen (hauptsächlich CentOS) http://stackoverflow.com/questions/31508612/pip-install-unable-to-find-ffi-h-even-though-it-recognizes-libffi http://www.techblogistech.com/2012/03/installing-build-essentials-in-centos-make-gcc-gdb/ http://blog.goo.ne.jp/asakurah/e/7f9cdf8cbada8841c388ece8cd421432
pyethereum https://github.com/ethereum/pyethereum https://github.com/ethereum/pyethereum/wiki/Using-pyethereum.tester
Serpent https://github.com/ethereum/wiki/wiki/Serpent http://mc2-umd.github.io/ethereumlab/docs/serpent_tutorial.pdf
Recommended Posts