サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
tech.bitbank.cc
こんにちは、monjaです。 思った通りに動くプログラムを書き続けることができるプロ・プログラマーになりたいと日々思っていたりいなかったりしますが、残念ながら時々思った通りに動かないプログラムを書いてしまうものです。プログラムは思った通りではなく書いた通りに動きますからね。 そんなとき、思惑と現実の乖離、つまりバグの原因を見つけて直す必要があるわけですが、ソースコードを読み直したり結果を見ても原因がピンと来ないときもあるものです。 とりあえずprintfデバッグ(JavaScriptならconsole.logデバッグですね)をするのも乙ですが、仕込みが面倒であったり、必要な情報を一発で表示できなくて数回実行しなおすハメになったり、原因発見で満足してprintfを消すのを忘れてしまうこともあります。世の中にはデバッガというめちゃ便利ツールがあるので、それが利用できるときは積極的に利用していき
これは、 F# Advent Calendar 2021 の15日目の記事です なぜ F# なのか 皆さん Rust 書いてますか?良い言語ですね。私も好きです。私は C や C++ をちゃんと扱ったことがなかったので、Rust を学ぶことで、ムーブセマンティクスや左辺値と右辺値、スタックとヒープの使い分け、static dispatch と dynamic dispatch やスレッド安全性を徹底する方法など多くのことを学びました。 ゼロコスト抽象化を目標に掲げているだけあり、広い領域に適用できる言語である一方で、業務上は Rust が適さない場面も多くあります。一言でいうと、「借用チェッカがオーバーキルになる場合」です。 例えば 探索的なプログラミング データサイエンス GUI などです。私の場合、コーディングを通してドメイン知識を理解することが業務の殆どを占めるので、借用チェッカに煩
まえがき開発中のソフトウェアのライセンスを策定するため、現時点でのベストプラクティスについて探っていたところ、ここ数年の OSS ライセンスの動向が面白かったので復習も兼ねてまとめました。 特に、Umbrel が採用したという PolyForm という新しいライセンス形態が面白かったので、これについて詳しく述べます。 なぜ今ライセンスについてまとめるのか私はソフトウェアやサービスをマネタイズする方法について興味があり、特にビットコインの応用について調べたりしています。 ビットコイン (Lightning Network) を HTTP で利用することで、Web API の課金方法の可能性は大きく広がることは間違いないのですが、これはあくまで単なる支払いの手法であって、広く使われる事を前提としたソフトウェアの開発を支える手法にすることは(それだけでは)難しいという問題があります。 ソフトウェ
またベースとなっているフロントエンドフレームワークベース以外の SSG と各種比較したものは以下のようになります。 (Next.js と Gatsby の比較 より引用) 静的サイトジェネレーター(SSG)が注目されている理由 近年、SSG が人気となり注目を集めてきています。(上記 Github の Star 数の多さにも表れています) このように SSG が注目されている最も大きな理由は 静的サイトだけで動的サイトのような Web サイトを作成できるから です。 静的サイトについて Web サイトには 動的サイト と 静的サイト の 2 種類が存在します。 動的サイトとは アクセスした時の状況に応じて異なる内容が表示されるWebページ であり、静的サイトとは 何度アクセスしても同じものが表示されるWebページ を指します。 静的サイトの特徴 動的サイトと静的サイトでは多くの場合、それぞ
事前知識 Bitcoin 環境構築とは 自宅に Bitcoin のフルノードを扱うための小さいサーバを作ることです。 Bitcoin が the Internet of Money であるならば、「自宅に固定回線を引くこと」に相当します。すごく雑な言い方ですが。 Bitcoin の金言の一つに、 "Not your keys, not your coins" という言葉があります。 その言葉のとおり、BTC を保有する上で、一番最初に考えなければならないのが、安全に秘密鍵を生成・管理することです。これは専門家に限らず全ての Bitcoin 保有者に共通する話です。 問題は秘密鍵の管理・生成だけでは、保有はできても日常的に Bitcoin の送受金をするには不十分である点です。 安全な受け取りのためには、他人が自分に BTC を送ったトランザクションを見るだけでは不十分で、それが確かにブロッ
これは、2連続のブログポストの1つ目です。 チャットアプリ Signal に Web の未来を見た話 (この記事) Signal Group chat の仕組み 背景 最近、チャットアプリの Signal が注目されています。 発端は Elon Mask が "Use Signal" とツイートしたことらしいですが、 Jack Dorsey や Edward Snowden なども以前から推奨しています。 Signal は Whatsapp のファウンダーを含むメンバーによって作成されたチャットアプリですが、アプリそのもの以上にSingal protocol にその価値があります。 これは匿名性とセキュリティに主眼を置いており、他のアプリケーションには存在しない面白い特徴を有しています。 匿名性は、単にサーバー (事業者)に対して情報を隠すのみならず、情報流出の危険性がないという点で、1.
これは ビットバンク株式会社 Advent Calendar 2020 の 25 日目の記事です。 はじめに どうも、ビットバンクのチーフビットコインオフィサーのジョナサンです。 ビットコインが肩書に入っているにも関わらず、ビットコイン以外の通貨のシステムに関わることが多々あります。 今回は入金検知システム全体の刷新に伴い、Ethereumの入金検知システムも作り直しました。 その一部始終及びその過程の上で考えたEthereumの改善について話します。 (2020/12/23の現時点ではまだシステムの移行自体は行っておりません。移行時はサービス面にて予めアナウンスさせて頂きます!) 入金検知ツラたん 痛いほど分かってきたことがある。 Ethereumは仕組みとしてスマートコントラクト無しでの入金検知に向いていません。 ま…そりゃそうだろ、と思う方もいるはずだ。 しかし、皆さんがDeFiや次
これは ビットバンク株式会社 Advent Calendar 2020 の 22 日目の記事です。 はじめに ビットバンクでエンジニアをしているadrenaline0206です。 先日、弊社ジョナサン・アンダーウッドがEthereumのスマートコントラクトを使った入金システムを構築しました。個人的にスマートコントラクトに興味があったので、この仕組みについて理解しようとしましたが、かなり苦戦しました。理由は必要な前提知識が多岐に渡るからです。スマートコントラクトの実用的な使用例について興味のある方も多いのではないかと思い、今回この様な題材を取り上げました。 Exchange Deposit Contractとは 現行のEthereumの入金システムは、1つのシードから複数のアドレスを作成する階層的決定性ウォレット(通称HDウォレット)を採用しています。Exchange Deposit Con
これは ビットバンク株式会社 Advent Calendar 2020 の 17 日目の記事です。 はじめに 皆さん setenforce 1してますか? AWS エンジニアの koarakko です。 普段は DevOps や 統制周りの業務を担当しています。 今回は踏み台サーバでの SELinux 活用事例を交えながら実際にポリシー調査から実装までの方法を紹介したいと思います。 SELinux を本番利用している環境は少なく、貴重な経験ができたと自負しています。 この記事を読むことで SELinux の本番利用の一助になれば幸いです。 当社の踏み台の活用背景 踏み台サーバは本番アプリサーバにログインする場合に経由サーバとして利用しています。 OS は RHEL 8 で2台構成です。 当社では踏み台サーバを2年程度使っていますが、この間に踏み台サーバの置き換えもしています。 以前は am
これは ビットバンク株式会社 Advent Calendar 2020 の 4 日目の記事です。 Bitbank システム部の宮本ジョーです。 普段はビットコイン関連開発を専門としていますが、今回はビットコインに直接関係のない内容について書きます。 C# と Rust を同時に使用して開発するためのプラクティスについてです。 イントロ 私は Bitcoin のライトニングネットワーク関連の処理を .NET で行うためのライブラリを自作しています。 似た内容の Rust ライブラリがユーザーも増え安定してきているらしいため、こちらを直接呼び出すことで自前実装に伴う保守の負担を減らせないか検討してみました。 このアプローチはうまくいき、 C# のウェブアプリケーションフレームワークからライトニングネットワークの処理を行うサーバを現在作成しています。 この記事では、実装時に気付いた C# と R
これは ビットバンク株式会社 Advent Calendar 2020 の 3 日目の記事です。 はじめに ビットバンクでアプリケーション開発をしているおくなもです。 弊社では IPFS は使ってないんですが、前から個人的に面白そうだなと思っていたので今回取り上げてみました。 IPFS とは IPFS は "InterPlanetary File System"の略です。 直訳すると"惑星間ファイルシステム"という壮大な名前ですが、一言で言えばコンテンツ指向のファイルシステムです。 IPFS はただのファイルシステムの枠を超えて異なるアーキテクチャの新しい WEB として注目を集めています。 詳しいことは公式のドキュメントに譲りますが、主な特徴は次の3点です。 コンテンツ指向であること。URI を使用せず、コンテンツ識別子(CID ≒ コンテンツのハッシュ値)をアドレスとして用いる クライ
はじめに はじめまして。 エンジニアのtaptappunです。 我々は普段からビットコインという「お金」を扱ったサービスを開発しています。 そのため、日々バグをなくす努力をしており、その一つとして自動テスト(CI)を導入しています。 ビットバンクでは普段、Node.js(TypeScript)を用いて開発しています。 今回はNode.jsのテストフレームワークであるJestを利用したテストの導入方法と実践的なテストの書き方について紹介していきます。 Jestについて Jestは、Facebookが開発を進めている、オープンソースのJavaScriptのテストフレームワークです。 Jest(Github) TypeScriptで記述したものでも利用できます。 テストフレームワークであるため、テストを書くために必要な一通りの機能が提供されています。 弊社ではTypeScriptで記述したテスト
はじめに こんにちは、ビットバンクのチーフ・ビットコイン・オフィサーのジョナサンです。 最近仮想通貨以外のセキュリティー面を色々と調査しておりましたが、その中でも一番注目している Content Security Policy (CSP) についてお話できればと思っています。 仮想通貨を扱うことのありそうなウェブサービスを運営される皆さんにも是非検討していただきたいものです。 Content Security Policy (CSP)は誰を守る? CSPの仕組みから説明すると分かりやすいと思います。CSPが活用される時、以下のような流れになります。 ウェブサービスはHTTPレスポンスのヘッダ(若しくはタグ)にて Content-Security-Policy のヘッダを返す 利用者のブラウザがそのヘッダを見ると、ヘッダに記載されたルールに従いCSPを有効化する 例: default-src
はじめにはじめまして、デザイナーのtkgです。 玉子かけないほうのtkgです。 普段はビットバンクが提供している全サービスのブランドデザイン、UIデザイン、 名刺や封筒といった営業ツールやグッズなどの企業ブランドとしてのデザイン開発、 採用活動やイベント等で使われるコミュニケーションツールの開発、 また、日々サポートに届けられる要望などを受け、より使い易いものにしていくUI改善業務 など「間口は広く、奥行きは深く。」をモットーに業務を行なっています。 ちなみに、この技術ブログのデザインも担当しています。 前述の通り、幅広く部署を横断してデザイン業務を遂行していくにあたって 業務の効率化というのは全企業の命題だと思いますが、 ビットバンクでは半年ほど前から本格的にFigmaを導入し、効率化へと繋げられ、 個人的に大きな気づきも得られたので、今回は導入前と導入後で変わった事や、 どのようにFi
はじめまして、ビットバンクで情シスを担当している三河屋です。 さっそくですが、みなさん掘ってますか? 字面のまま受け取らないでください。 この業界で掘ると言えばあれしかありません。 マイニングです。 私は趣味でマイニングをしているのですが、 通勤中や休憩中も遠隔地にあるマイニング機器達が心配で、暇さえあればいつも稼働状況を確認をしています。 そんな日々を過ごしていると数ヵ月に1回ぐらいはマイニング機器がハングアップするようなこともあり、そんなことがあった日には仕事も手につきません。 しかも、遠隔地に設置してあると休日にしか駆けつけ対応ができないという制約があるため、最長で1週間も仕事に手がつかなくなってしまう可能性も秘めています。 そんな状況が発生した時のために対処できる方法を趣味の一環として考えてみました。 制約と要件マイニング機器用のネットワークを作るにあたり、個人的に設けた制約と要件
皆さん、はじめまして。 ビットバンクでインフラを担当しているyuukiです。 趣味はバイクとお酒。ソロでキャンプツーリングがマイブームです。 写真は先日走ってきた長野の山です。 ECのバックエンドシステムの運用開発を経て今年、ビットバンクにJOINしました。主にビットバンクのインフラ部分を担当しています。 ビットバンクではインフラ部分に、Amazon Web Services(以下AWS)を使用しています。 AWSをある程度利用していると煩雑になってくるのが、アカウント管理です。 AWSにはIdentity and Access Management(IAM)と呼ばれる素晴らしいアカウント管理の機能があります。 IAMユーザーを払い出し、それぞれのユーザーに必要に応じた権限を割り当てることでアカウント漏洩時のリスク管理やオペレーションミスを未然に防ぐことができます。 この便利なIAMですが
はじめに はじめまして。エンジニアのDannyです。 今回は TypeORM という O/Rマッパー で、エンティティを定義する際のガイドラインについて書かせていただきます。 TypeORMとは TypeScript製の O/Rマッパー です。 リポジトリ 公式ドキュメント 弊社ではTyepScriptで実装しているサーバアプリケーションがいくつかあるのですが、その一部で採用しています。 TypeScriptで開発する際の O/Rマッパー としてはデファクトになりつつあると思います。 Node.js/TypeScriptの O/Rマッパー 比較や、TypeORM の使用感に関しては弊社suzukiの資料をご参照ください。 本記事では、最新バージョンである 0.2.7 を使用します。 コンストラクタの定義 さっそくですが、まずはコンストラクタについて考えてみます。 ここでは、MySQLで以下
はじめまして。エンジニアのjiroと申します。 今回は、最近社内で導入したasanaというプロジェクト管理ツールを紹介できればと思います。 この記事に書いてあること 開発チームの課題 asanaに決定した経緯 導入にあたって もたらされたこと 今後行いたいこと 開発チームの課題 開発チームに起きていたこと ここ数ヵ月の間、僕たち開発チームには2つの変化が起きていました。 ひとつは、メンバーが急増していること。 もうひとつは、CTOが開発に割ける工数が減ってしまったこと。 当時は、開発メンバーとCTOが口頭で同期的にコミュニケーションを取るフローで合意形成・進捗確認が行われていました。 結果として、メンバーとCTOのコミュニケーションをする時間を確保することが難しくなり、スムーズな開発が少しずつ困難になりつつありました。 次に、当時使っていたタスク管理ツールの問題を挙げてみます。 まずは、タ
はじめに こんにちは。bitbankでビットコインなどの仮想通貨やバックエンドシステムを担当しています、ゆあ といいます。 この記事は僕が調べた仕様とBIP39・Electrumに当時関わっていた歴史的背景を知っているブロックチェーン大学校校長のジョナサンに聞いてなんでそうなってるの?という疑問と好奇心を解決するために書いた記事となっています。 自分と同じようになんでそうなってんの?って思った人にもそうでない人にもわかるように書いていきます。 BIP39の考案された理由 秘密鍵には完全な乱数と、ある値を元に楕円曲線の計算式で派生させて作る再現性のある派生鍵があります。 完全な乱数を扱う場合には生成した鍵ごとにバラバラにすべて保管する必要があります。この場合、鍵の管理が大変です。(データベースに保管する必要があるでしょう。)派生鍵を使った場合は元となる鍵を保管しておけば他の鍵は生成に使った式
どうもkoarakkoです。今回はAmazon Web Services(以下AWS)のAmazon Elastic Container Service(Amazon ECS)を使ったBlue Green Deploymentについて書きたいと思います。 Blue Green Deploymentとは? Blue Green Deploymentとは、開発用DB(以下Dev)と本番用DB(以下Prod)を同時に稼働させ、テストが終わったタイミングでバサッとDevとProdを切り替えるデプロイメント手法の一つです。DevからProdまたはProdからDevへの切り替えを瞬時に行うことができるのが特徴です。 さあ、ここで考えてみましょう もし、あなたが本番へ切り替えたあと、何か不都合があった際に、旧環境への切り戻しを早急にやらなければならないシチュエーションがあるかもしれません。 そんな時に、
このページを最初にブックマークしてみませんか?
『tech.bitbank.cc』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く