Try Cross Compile Then Fail

F4a94c818da7c943420763ba0541d0cf?s=47 wshino
April 24, 2019

Try Cross Compile Then Fail

F4a94c818da7c943420763ba0541d0cf?s=128

wshino

April 24, 2019
Tweet

Transcript

  1. Try Cross Compile Then Fail
 Powered by DMM Blockchain Labs

  2. 自己紹介
 @ DMM.com Shinohara Wataru ・DMM.com Blockchain Engineer ・Rollercoaster @shinanonozenji_

  3. 書籍紹介
 @ DMM.com

  4. Substrate
 @ DMM.com 自分のブロックチェーンを作ることができる
 Rustで書かれている
 関数はマクロで定義し、WebAssemblyで保持する
 コンパイルが激重い(私のマシンがMacbook12だから)
 paritytech/substrate 6. Building

    https://github.com/paritytech/substrate#building
  5. こうなるともっと遅い
 @ DMM.com

  6. リモートビルドしよう
 @ DMM.com CLion(IntelliJ)にはSFTP経由のリモートデプロイがある
 自動で変更があったファイルをアップロードしてくれる
 GCPハイパワーインスタンスにビルドさせよう
 GDBデバッグもできる
 Remote Development and

    Debugging of Rust with CLion https://medium.com/nearprotocol/remote-development-and-debugging-of-rust-with-clio n-39c38ced7cc1
  7. SSHの躓き
 @ DMM.com OpenSSH 7.8以降はデフォルトでOpenSSH形式の鍵を生成する
 私のMac(Mojave) -> ssh -V ->

    OpenSSH_7.9p1, LibreSSL 2.7.3
 OpenSSH形式の鍵はIntelliJは未対応
 PEMフォーマットで鍵を生成して登録し直す
 Support OpenSSH format private keys https://youtrack.jetbrains.com/issue/PY-33521
  8. リモートビルドすごい
 @ DMM.com ビルド高速化成功
 Macbookがパフォーマンス低下しない
 ただ、手元で確認するには他の環境用も欲しい


  9. Ubuntu以外でも動かしたい
 @ DMM.com 作成するバイナリにWebSocketで接続したい
 ローカルmacOSで動かしたい
 異なる環境のノードでP2P通信したい(ユーザーにビルドさせたくない)
 手始めにLinuxでmacOSのバイナリをCross Compile


  10. 簡易的なものをCross Compile
 @ DMM.com jp(Like jq, but with json pointers)で検証


    諸々clangなどを入れて `rustup target add x86_64-apple-darwin`
 .cargo/configにlinkerの設定をしてビルド
 成果物はmacOSで動く(嬉しい)
 Cross compiling Rust from Linux to macOS https://wapl.es/rust/2019/02/17/rust-cross-compile-linux-to-macos.ht ml OS X cross toolchain for Linux, *BSD and Windows (Cygwin) https://github.com/tpoechtrager/osxcross
  11. SubstrateをCross Compile
 @ DMM.com cargo build --target x86_64-apple-darwin
 error: linking

    with `cc` failed: exit code: 1
 fatal error: 'os/availability.h' file not foundとか
 OpenSSLのバージョンがあかんとか
 胆力が足りず諦めた

  12. お悩み
 @ DMM.com ベストプラクティスは?
 https://github.com/japaric/rust-cross

  13. Thank you for the attention.
 Powered by DMM Blockchain Labs