DX企業で働くエンジニアのブログ

DXエンジニアとして働いています。ブロックチェーンも時々やります

【2021年版】NFTを発行してほしいという問い合わせが多いので発行方法とサンプルコードを公開します

NFT

タイトル通りですが、NFTを発行して欲しいと問い合わせがたくさん来ており、直近忙しくしているので方法だけまとめておきます。 OpenZeppelin + Solidity0.8 + Hardhat + ethers.jsが良さそう Hardhatでプロジェクトを作る NFTコントラクトを、OpenZeppelin…

B2BSaaSのプロダクトマネジメントで気をつけていること。「体験の品質保証」の重要性

この記事はLayerXアドベントカレンダーの企画の一部です。 ここ1年ほどは所属しているLayerXにて、LayerXインボイスという、請求書処理プロダクトの立ち上げ開発を行ってました。特に最近はプロダクトマネージャー(PdM)業務を行っており、事業部内で上半期MV…

業務システム担当者は内製・SI・SaaSのどれを選択するべきなのか - 「ソフトウェアの入れやすさの4象限」を作る -

DX

DXの波で企業はシステムの内製が必要だ、SIは不要。SaaSがSIを代替しつくす等々の話題がよく出ています。果たしてそれは正しいのでしょうか。 私のスタンスとしてSIerに寄っているわけではないのですが、表面的で加熱気味なSIer不要論が出てきており、少々技…

B2BプロダクトのPMF

プロダクト作りにおいて、開発したプロダクトがユーザーにとって価値提供が成り立つのかを検証する作業のことをプロダクトマーケットフィット(PMF)と呼びます。これもふわりふわりとした概念で、元々はBenchmark Capitalの創業者であるアンディー・ラフレ…

The GraphとVue Apolloを組み合わせてVue.jsからEthereumのイベントを取得する

前回はEthereum上のイベントをGraphQLで取得するThe Graphの使い方について書きました。 www.blockchainengineer.tokyo 今回はより実践的に、Vue.jsを用いてThe Graphを使ってみます。 curlで投げてみる Vue Apolloで投げてみる Vue Apolloのセットアップ ク…

Ethereum上のイベントをGraphQLで取得するThe Graphの使い方

The GraphというSaaSを使うと、Ethereum上のイベントをGraphQLで取得することができます。3年ほど前に同じことをしようとしたら、せこせことノードにリクエストを投げていたのですが、今は非常に便利になって他サービスに乗っかることができるようになってい…

事業のどのタイミングでテストコードを書くべきか

テストコードをどこまで、どのタイミングで書くべきか、ということは悩ましい問題です。ここでいうテストコードとはプログラムコードでのテストであり、即ち自動テストに組み込む話です。テストコードがない場合は一般的に何らかの代替手段を取ります。QA(Qu…

LayerX エンジニアブログに投稿しました

LayerX エンジニアブログに「プロセスがプロダクト」というタイトルでブログを書きました。 tech.layerx.co.jp ブログでの経歴が創業したとき(catabira)で止まっていたのですが、一昨年catabiraは解散し、フリーランスを経て現在LayerXにてエンジニアとして…

B2Bサービス開発の隆盛と求められるAsIsの視点

前回の記事が思ったより反響があったので、今回もDXという文脈で感じたこと、学んだことを書いていきます。僕は過去にSI案件の業務システムの開発に携わってきた他、複数のB2B SaaSの新規事業、開発に携わってきて、主にB2Bのソフトウェア開発を主戦場として…

デジタル化の流行と「上流工程」の終焉

DX(デジタルトランスフォーメーション)という言葉が流行し、猫も杓子もデジタル化という言葉を使い始めました。さて、デジタル化とは何なのか、そして流行しはじめたのはなぜなのか。 端を発するのは経産省の「2025年の崖」のレポートだと言われていますが…

カスタマーサクセスとは何か。エンジニアリングとの関係性

直近、ブロックチェーンに関係ないソフトウェア開発もしているということで、今月から少しブロックチェーン以外のことも書いていきます。 カスタマーサクセスについて学びました。プロダクト開発においてはユーザーのニーズを汲み取って機能に落とし込むこと…

MoneroのRingCTにおける金額の秘匿方法

MoneroのRingCTにおけるMLSAG,その元になったLWWのLSAGについて前回、前々回で解説してきました。 www.blockchainengineer.tokyo www.blockchainengineer.tokyo 今回は、RingCTにおける金額の秘匿方法について記載します。 Ring Confidential Transactions …

MoneroのRingCTに使われるMLSAGについて

前回はLWWのLSAGについて記事を書きました。こちらの知識を元にして、MLSAGはどのようなものかをこの記事では述べていきます。 MLSAGはRingCTの導入時にMultilayered Linkable Spontaneous Anonymous Group signaturesとして提唱された署名方法です。 元論文…

MoneroのRingCTに使われる署名の基本となるLWWのLSAGについて

MoneroのRing Confidential Transactionによって利用された技術にMLSAGがありますが、元となった技術としてLWWのLSAG(Linkable Spontaneous Anonymous Group)があります。これはAdam Backが修正を加えることでRingCT利用可能だと伝えたものです。 MLSAGにつ…

サーベイ論文: A Survey on Privacy Protection in Blockchain Systemの読書メモ

2018年の Journal of Network and Computer Applicationsに掲載されたブロックチェーン上のプライバシー技術のサーベイ論文について読みました。A survey on privacy protection in blockchain system 以下は読書メモです。 概要 論文のゴールは、ブロックチ…

Moneroにステルスアドレスに加えてリング署名が必要な理由

Moneroにはステルスアドレスという受取人を秘匿する技術と、送金者を秘匿するリング署名技術が利用されています。しかしながら、ステルスアドレスは送金者のアドレスを秘匿化する仕組みになっています。ここでさらに送金者を秘匿するリング署名が必要な理由…

ethers.jsでENSの機能を使って名前解決をする

ENS 前回のethers.jsでBIP39のニーモニックフレーズとBIP44準拠のHDWalletを使うに続き、今回はENS(Ethereum Name Service)の機能を使ってみます。 バージョン node.js v10.16.3 npm 6.10.3 ethers.js 4.0.45 ethers.jsとは(再掲) 公式のFeaturesには以下…

ethers.jsでBIP39のニーモニックフレーズとBIP44準拠のHDWalletを使う

ethers.jsが最近人気とのことで使ってみます。ethers.jsはweb3.jsに近しい、node.jsでethereumを用いることができるライブラリです。みた感じ、web3.jsにはbip39のニーモニックフレーズ(文字列から秘密鍵を作成する機能)が見当たりませんでしたが、ethers.…

送金量を秘匿するConfidential Transactionsについての簡単な説明

liquid(elements)やMoneroにおいてはConfidential Transactions(コンフィデンシャルトランザクション)と呼ばれる技術が使われています。(MoneroはRing Confidential Transactionsと呼ばれる応用手法にしています) Confidential Transactionsはblockstream…

2019年に登壇・発表した資料まとめ

2019年に発表した資料を振り返ります。登壇は4つあり、登壇以外でも発表できたものが2つありました。 ブログ更新が時々途絶えていたのですが、資料作成で忙しくリアルで発表していた分です。 埋もれると勿体無いのでまとめて掲載いたします笑 2/27 「セキュ…

solidity-coverageとTruffleを用いてSolidityのテストカバレッジを出力する

Solidityを書く時、テストカバレッジを出すツールにsolidity-coverageがあります。solidity-coverage自体は以前からあるツールですが、最新の書き方は少し変わっているので使い方を書いておきます。 バージョン solidity-coverage : 0.7.0-beta.3 テストカバ…

【書評】マスタリングイーサリアム(Mastering Ethereum)は、Ethereumで何ができるかが分かる良書

マスタリングイーサリアム SECURITIZEに買収が発表されたブロックチェーン・コンサルティング会社のBUIDLのVPであり、監訳者である宇野さんより、マスタリングイーサリアムをご恵贈いただきました。 頂いたので、僭越ながら書評を書かせていただこうと思いま…

ERC1820 Pseudo-introspection Registry Contractについて

EthereumのERC1820 Pseudo-introspection Registry Contract(擬似説明を行うレジストリコントラクト)について説明します。 このEIPはERC | Ethereum Improvement Proposals においてファイナライズされた提案であり、ERCとして正式登録されています。 ERC1…

Devcon5で見た面白いプロジェクト

devcon5 エントランス 10月8日〜11日まで大阪で行われたEthereum Devconに参加してきました。面白いプロジェクトをいくつも見つけたのでざっと紹介していきます。 verX verx.ch Ethereumのsolidityコントラクトの形式検証用ツールです。solidityのテストツー…

HAKODATE Developer Conference 2019に登壇します

函館で行われるDeveloper Conferenceに登壇します。開発者向けに行われる函館市のイベントで、先端の技術について知る機会にするイベントです。ブロックチェーンをテーマに話をという事で枠を頂戴しました。 devcon.hakoika.jp 主催の方からお話を伺い、函館…

ganache2.0のコントラクト管理機能を試す

GanacheはGUIでローカルにEthereumのブロックチェーンネットワークを生成できるツールです。 実行方法はとても簡単で、公式サイトからダウンロードして、クリックで起動するだけです。 ganache起動画面 Ganache2系が正式リリースされたのは2019年3月で結構前…

文章力の訓練用に読んでよかった本

今回はブロックチェーンとは少し離れた投稿になります。チーム開発をする中では、コーディング同様に文章を書く機会がかなり多くあります。僕はITコンサル(兼エンジニア)からキャリアを始めました。システムは実装する仕様を明確にする必要がありますが、…

講談社サイエンティフィク様から「Solidityプログラミング ブロックチェーン・スマートコントラクト開発入門 」が発売されます

「Solidity Programming Essentials」という書籍を翻訳し、「Solidityプログラミング ブロックチェーン・スマートコントラクト開発入門 」というタイトルで、講談社サイエンティフィク様から9月7日に発売されます。私が監修し、松本さんと小池さんというエン…

Solidityの構造を可視化してくれるツールPiet

Solidityで書かれたスマートコントラクトを可視化してくれるツールが出てきました。 Pietというツールでとても使いやすく、役立ちそうだったので紹介します。 公式の紹介はこちらです。 blog.slock.it Pietの使い方 MCHのHeroトークンコントラクトを可視化し…

経理業務用にERC20トークンのICOや取引をノード無しでBigQueryで集計する

こんにちは。ERC20のICOや取引をまとめて簡単に集計する方法を話します。 実は、こちらの集計方法でとても困っていると、ある会社から私個人宛に相談を受けて、抽出手法をアドバイスさせていただいたのですが、デモまでしたらこれなら簡単に取れる!とのこと…