特定文字列を含むファイルを検索する

NOMP(node-open-mining-portal)を使ってオレオレプールをつくってひっそりとソロマイニングしていたけど、恐らくsegwitが有効化されてから、getblocktemplateがエラーでこけるようになってしまった(全然気づかなかった)

ぐぐってみると、bitcointalkにドンピシャの話が。getblocktemplateの引数に”rules”:[“segwit”]を追加しなさい、と。

なるほど~と思ってgit pullとかnpm updateとかしてみたけど、なんだかうまく取り込まれなかった気がした…ので、自分でなんとかしてみることにした。

 

というわけで、getblocktemplateという文字列を含むファイルを検索する。

grep一発でおk

$ grep -rnw hoge -e "PATTERN"

今回は「カレントディレクトリ内にgetblocktemplateという文字列があるファイルを検索する」のが目的なので、

$ grep -rnw . -e "getblocktemplate"

あとは適当に修正していけばなんとかなった。よかったよかった。

動かせないデータを隣のストレージに動かしてなんとかする

Windowsの話。

C:\Windows\Installerが死ぬほど肥大化して死んで欲しい場合とか、あと今回はMinerGateでETH掘ってるときのDAGデータが大きいとか

要は、その大きすぎるデータを隣のストレージに移動させたいが、そこに移動させたという設定をアプリケーション側で行うのが面倒、というパターン。

 

JunctionというのがMSから提供されているので、これを使う。

 

今回はDAGデータを移動させる。DAGデータ本体はC:\Users\user\AppData\Local\minergate\.ethash-minergate以下にあるので、これを事前に他のストレージに(今回はE:\.ethash-minergateとして)移動させておいてから、以下のような感じで

E:\>junction.exe C:\Users\user\AppData\Local\minergate\.ethash-minergate E:\.ethash-minergate

Junction v1.07 - Creates and lists directory links
Copyright (C) 2005-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Created: C:\Users\user\AppData\Local\minergate\.ethash-minergate
Targetted at: E:\.ethash-minergate

 

要はシンボリックリンクみたいなものを張っているだけ。これでいくらでも移動させられるぜ

ちなみにC:\Windows\Installerが60GBくらいになってるマシンもあったんだけど、普通に使っているだけでここまでOSを肥大化させられちゃうOSってのも、なんだかなぁという感じだよね

multerを使ってアップロードしたときのファイル名

Node.js + Expressでなんか作ってるとき、multerを使ってファイルをアップロードしたときのファイル名の操作

githubに書いてある通りなのだけど、メモ

 

「filenameを指定しないと拡張子を一切含まないランダムな名前が付加されるぜ!」

 

つーわけで以下のような感じでfilenameを指定する

const multer = require('multer');

const multerStorage = multer.diskStorage({
destination (req, file, cb) {
cb(null, './public/uploads/');
},
filename (req, file, cb) {
cb(null, Date.now() + file.originalname);
}
});
const upload = multer({ storage: multerStorage });

 

cbの第二引数(ここではDate.now() + file.originalname)でファイル名を指定する。file.originalnameを付けているので拡張子も保持されるはず