Created
February 18, 2019 18:38
-
-
Save tcejorpniocanom/6c3c71ee51dfc5c08f0fdd64e94a55be to your computer and use it in GitHub Desktop.
プラグイン更新(19/2/19)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
monacoindにMonoを組み込み、プラグインで使えるようになりました。 | |
luaと同じく、現在linuxのみサポート。 | |
(どうしてもWindowsでやりたい人はwindows subsystem for linuxで) | |
ソースは後先考えないplugin_devブランチ | |
> git clone -b plugin_dev https://github.com/monacoinproject/monacoin.git | |
Mono 5.18以上がインストールされた環境でビルドすると有効になります。 | |
https://www.mono-project.com/download/stable/#download-lin | |
を参考にMonoをインストール後、下記の手順を実行。 | |
・./autogen.sh | |
・./configure | |
・(必要なら) make clean | |
・make -j? (←?はCPUコア数+2くらいの数を指定) | |
サンプルは sample/plugin_cs に入っています。 | |
MonaPluginクラスのOnInit(), OnTerm(), OnWalletNotify(), OnBlockNotify() がcoindから呼び出されます。 | |
使い方は、wallet.datと同じフォルダにpluginフォルダを作成し、そこにプラグインのdllを入れてください。 | |
ロードと削除はluaの時と同じく | |
> monacoin-cli loadplugin プラグイン.dll | |
> monacoin-cli unloadplugin プラグイン.dll | |
簡単なサンプルがsample/plugin_csに入っています。 | |
サンプルを実行するには以下のコマンドで.csをコンパイルし、出来た.dllをpluginフォルダに入れてください。 | |
> mcs simple.cs -target:library -out:simple.dll | |
参照が必要なものは-r:で指定してください。 | |
> mcs -r:System.Json.dll cmd_test.cs -target:library -out:cmd_test.dll | |
-monoconfig、-monolib、-monoetc をmonacoindの引数かmonacoin.confに書くと、Monoの設定やランタイムアセンブリのパスを指定できますが、Mono込みでmonacoindをビルドした環境なら必要ないです。 | |
gdb上で実行するとプラグインアンロード時のmono_domain_try_unload()内でmonacoindが落とされる。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment