Skip to content

Instantly share code, notes, and snippets.

Michael Ira Krufky mkrufky

Block or report user

Report or block mkrufky

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
mkrufky /
Last active Sep 7, 2018
Staking a Pirl Masternode from a Hardware Wallet using Pirl's Web Wallet

Staking a Pirl Masternode from a Hardware Wallet using Pirl's Web Wallet


This guide uses the one-click-masternode setup feature. This is an optional feature for those that wish to have a more hands-off experience with the setup of their masternode. This Poseidon feature automatically configures your CentOS7 linux server to be a Pirl Masternode. Updates will be applied automatically. All you have to do is monitor your server to ensure it stays operational. This is as simple as rebooting the server, should it go offline. Manual installation instructions are also provided for those that want a bit more control of the system.


  • a VPS with minimum 4GB RAM and enough storage to run the masternode (minimum 20GB, recommended 60GB)
  • a JSON wallet address or a hardware wallet compatible with You may import your JSON wallet from Nautilus if you so choose.
mkrufky /
Last active Aug 26, 2018
Storing and Staking Akroma Safely using the Ledger Nano S Hardware Wallet

Storing and Staking Akroma Safely using the Ledger Nano S Hardware Wallet

You've been mining and / or trading AKA for some time, and you've finally saved up enough to stake a masternode. It's time to get your wallet ready to send yourself a verification transaction.

After enough searching, you've finally found that JSON wallet on your computer. Time to send that transaction... WHAT?!? A PASSWORD?!? You don't recall setting a password for this wallet! Isn't the whole public / private key thing enough? No. You also have a password, and you just can't remember it.

Does this sound like you? It sounds like me. That's what happened to my first masternode. Oh well. I eventually remembered that password, but I don't want to find myself in that situation ever again.

I don't like the idea of storing cryptocurrency in JSON wallets on my dev boxes. They could get hacked. Even if they don't get hacked, they have passwords that could be forgotten. Instead, I use a hardware wallet to store and stake al

mkrufky /
Last active Aug 8, 2018
EIP-155 Replay Attack protection now available on The Callisto Network for use with the Ledger Nano S

EIP-155 Replay Attack Protection Now Available on the Callisto Network for use with Ledger Nano S

Written by Michael Ira Krufky

As described in Wikipedia, a replay attack (also known as a playback attack) is a "form of network attack in which a valid data transmission is maliciously or fraudulently repeated or delayed. This is carried out either by the originator or by an adversary who intercepts the data and re-transmits it, possibly as part of a masquerade attack by IP packet substitution. This is one of the lower tier versions of a 'man in the middle attack.'"

Another way of describing such an attack is: "an attack on a security protocol using replay of messages from a different context into the intended (or original and expected) context, thereby fooling the honest participant(s) into thinking they have successfully completed the protocol run."[1]

A perfect example of a replay attack is as follows: You had lots o

mkrufky / gist:fa6d3ea298328aef63e1e1be9d1e8c52
Created Oct 5, 2017 — forked from rday/gist:3504674
Abstract wrapper to allow connection pools
View gist:fa6d3ea298328aef63e1e1be9d1e8c52
type InitFunction func() (interface{}, error)
type ConnectionPoolWrapper struct {
size int
conn chan interface{}
Call the init function size times. If the init function fails during any call, then
the creation of the pool is considered a failure.
You can’t perform that action at this time.