アルゴリズムとかオーダーとか

仕事で勉強したことなどをまとめてます

EIP-1679 istanbulで導入候補のEIPを整理する その4

今回も引き続き、福岡ブロックチェーン勉強会#29 エキスパートコースでQ&A形式で発表した、EIP-1679についてまとめていきます。 github.com本記事は連載記事となっております。よろしければ前回の記事もご覧ください。 y-nakajo.hatenablog.com y-nakajo.hat…

EIP-1679 istanbulで導入候補のEIPを整理する その3

今回も引き続き、福岡ブロックチェーン勉強会#29 エキスパートコースでQ&A形式で発表した、EIP-1679についてまとめていきます。 github.com本記事は連載記事となっております。よろしければ前回の記事もご覧ください。 y-nakajo.hatenablog.com y-nakajo.hat…

EIP-1679 istanbulで導入候補のEIPを整理する その2

今回も引き続き、福岡ブロックチェーン勉強会#29 エキスパートコースでQ&A形式で発表した、EIP-1679についてまとめていきます。 github.com本記事は連載記事となっております。よろしければ前回の記事もご覧ください。 y-nakajo.hatenablog.comこのEIP-1679…

EIP-1679 istanbulで導入候補のEIPを整理する その1

今回は、先日の福岡ブロックチェーン勉強会#29 エキスパートコースでQ&A形式で発表した、EIP-1679についてまとめていきます。 github.comこのEIP-1679は次のEthereum1.0のアップデートであるIstanbulで導入されるEIPについてまとめたものです。EIP-1679は現…

EIP-615 - サブルーチンと静的ジャンプをEVMに導入する

今回は、次期updateの提案、EIP-1679 Hardfork Meta: Istanbulで導入候補に上がっている、EIP-615について解説します。 eips.ethereum.org

dydxをローカルに構築して遊んでみる。

今回はDefiでおなじみのdydxのv2 protocolである、soloで遊ぶためにローカルでsoloを構築する手順を説明します。 dydx.exchangeマージントレード、デリバティブトレードとして有名なdydxですが、最近プロトコルがバージョンアップされv2 soloとなりv1 expoと…

Contract Application Binary Interface(ABI)とは

今回はEthereumでDappsを開発した経験のある人は1度は目にしたことがある、「ABI」について解説します。ABIの仕様は以下のSolidityのドキュメントにまとめられています。 solidity.readthedocs.io ABI仕様の技術的な説明は上記ドキュメントに譲るとして、本…

EthereumのPending TransactionとTransaction Poolについて

今回はEthereumで発行されたTransactionがPending状態である場合にどの様にpoolに保持されているのか。また、Transaction Poolはどの程度のtransaction数を保持するのか?などのTransaction poolの動きについて調べたことをまとめていきたいと思います。今回…

Constantinopleで導入されるEIP-1014について

今回は、いよいよ来週の2019/01/16にupdateされるConstantinopleで導入されるEIPのうちの一つである、EIP-1014について解説します。 eip-1014.mdにも書かれているとおり、これはstate channelに対して非常に重要な機能であり、個人的にConstantinopleで導入…

secp256k-1には整数解は存在しないことの証明

久しぶりのブログ投稿になります。こんにちは。今回はsecp256k-1であるに整数解は存在しないことの証明を行いたいと思います。元々はgemとC Libraryで書かれたsecp256k-1のライブラリが返す加算結果が違っていて、どっちのライブラリが正しい値かを手計算で…

ganache-cliのデータを永続化する

今回はganache-cliのデータをファイルに吐き出して永続化する方法について説明します。 ganache-cliのデータを永続化できるとDappsのサンプルを提供する時にセットアップ済みのnodeもセットで提供できるため、非常に有用ですよね。 0x protocolでもganache-c…

IntelliJ Idea(Ultimate)からmochaのdebuggerを使う

今回はタイトルの通り、IntelliJ Ideaを使ったmochaのdebuggerを使う環境構築の方法を紹介します。 いい加減、mochaのtestを書くためにconsole.logで変数を追っていくのに疲れたので、重い腰をあげてdebugger環境を作ってみました。結論としては非常に簡単に…

AWS上にbitcoin-seederを立てる

今回はDNSを使ったことはあるけど設定したことがないNetwork初心者の僕がbitcoinのdns-seederを立てたので、その時の作業ログ的なものをまとめたいと思います。seederのプログラムはこちらを使いました。 github.com

Solidity Assembly入門 ~ Function Selector ~

今回の記事はSolidity Assembly入門という連載記事の第5回目です。この連載ではSolidityのコードをコンパイルした時に生成されるopcodeについて解説していきます。 この連載ではSolidityのコードをデバッグするのに必要な知識を得られることを目的としていま…

Hi-Ether Meetup #7 Fukuoka 参加レポート

福岡では第2回目の開催となるHi-Ether Meetup #7 Fukuokaに参加してきましたのでそのレポートをまとめます。 techplay.jp

Node.jsのtestでsinonを使ってspyする

今回の記事はNode.jsのTest用ライブラリの紹介です。 Node.jsでtestを書く時に今までmochaとchaiを使ってきました。今回はconsole.warnの呼び出しをspyしたくてどうやったらいいのか?を調べていた時にこのライブラリを発見しました。 sinonjs.orgちょっと触…

debug_traceTransactionとprogram counterとsource mapping

y-nakajo.hatenablog.com 今回は上記の以前の記事で触れた、Ethereumのdebug機構について調べたことをまとめていきます。 Ethereumでは任意のtxをdebugするための機能が、またSolidityではbyte codeとソースファイルをmappingするための情報が提供されていま…

sol-trace - truffleのtestでエラー行を表示する

今回はみんなが待ち望んでいたと思われる非常に便利なツールを紹介します。 それがこちら。sol-traceです! github.comReadme.mdを見て分かる通り、truffleのtestに組み込むことでrevertが発生した時に、エラーの対象のソースファイルと行数を表示してくれま…

OmiseGoのeWalletをRuby on Railsで利用する

OmiseGoのeWalletのv1.0.0-pre.1がリリースされました。今回の記事ではeWalletの構築とRuby on RailsからeWalletを利用する方法についてまとめます。 github.com

非中央集権的なPausableの提案

今回はこちらの記事を読んで思いついたSmartContractの紹介記事です。 btcnews.jp今回、BancorはPausableを継承したSmartContractを作成していたことで、BNTに関してはすぐにpaused状態にして流出を防ぐことができました。 しかし、この処置に関しては上記の…

Solidity Assembly入門 ~ 配列について storage/memory ~

今回の記事はSolidity Assembly入門という連載記事の第4回目です。 この連載ではSolidityのコードをコンパイルした時に生成されるopcodeについて解説していきます。 この連載ではSolidityのコードをデバッグするのに必要な知識を得られることを目的としてい…

コードから読み解くCasper FFG

github.com Casper FFGの実装をVyperからSolidityに変換するProjectを実行していました。(一人で。。。) 今回はこの作業の中で理解したCasperの仕組みについてまとめていきます。 ちなみに、理解に合わせて疑問もでてきているのでその辺も合わせて書いてい…

Plasma 勉強会3回目の参加レポ

y-nakajo.hatenablog.com y-nakajo.hatenablog.com毎月恒例となってます。Plasma #3に参加してきましたので、そのレポートをまとめていきます。 リアルタイムツイートはいつもの通りtogetterにまとめております。 togetter.com今回の会場はPlasmaの本拠地(…

Solidityとvyperの変換tips

最近は暇があればcasper FFGのSmart ContractをvyperからSolidityに変換しています。 github.com作業をしていくにあたり、vyperのコードからSolidityのコードへ変換する際のtipsが思ったよりも溜まってきたので、忘れないうちに記事にしてまとめておきます。…

Solidity Assembly入門 ~ フリーメモリポインタ ~

今回の記事はSolidity Assembly入門という連載記事の第3回目です。 この連載ではSolidityのコードをコンパイルした時に生成されるopcodeについて解説していきます。 この連載ではSolidityのコードをデバッグするのに必要な知識を得られることを目的としてい…

Solidity Assembly入門 ~ 5つの記憶領域 ~

今回の記事はSolidity Assembly入門という連載記事の第2回目です。 この連載ではSolidityのコードをコンパイルした時に生成されるopcodeについて解説していきます。 この連載ではSolidityのコードをデバッグするのに必要な知識を得られることを目的としてい…

Hi-Ether Meetup #4 Fukuoka 参加レポート

先日、Hi-Ether Meetup #4 Fukuokaに参加してきましたので今回はそのレポートをまとめます。今回は初の福岡開催です!開催場所はGMO ペパボ研究所さんのイベントスペースをお借りしました。 僕も運営メンバーとして参画していたのですが、他のメンバーが非常…

Solidity Assembly入門 ~ Remixデバッガーの使い方 ~

今回の記事はSolidity Assembly入門という連載記事の第1回目です。 この連載ではSolidityのコードをコンパイルした時に生成されるopcodeについて解説していきます。 この連載ではSolidityのコードをデバッグするのに必要な知識を得られることを目的としてい…

Plasma 勉強会2回目の参加レポ

y-nakajo.hatenablog.com 前回に引き続き、Plasma #2に参加してきましたので、そのレポートをまとめていきます。 plasma-research.connpass.com

EthereumのContract Creationの仕組み

Solidityをコンパイルして生成されたopcodes=SmartContractが、Contract CreationのときにEthereumのStateDBに保存されるまでの仕組みがどうなっているのか興味が湧いたので調べてみました。というわけで、今回の記事はContract Creationの仕組みについてま…