Skip to content

Instantly share code, notes, and snippets.

View jaekwon's full-sized avatar

Jae Kwon jaekwon

View GitHub Profile
@jaekwon
jaekwon / plugin.go
Last active January 16, 2017 05:29
Basecoin Plugin Interface
type Plugin interface {
// Name of this plugin, should be short.
Name() string
// Run a transaction from ABCI DeliverTx
RunTx(store KVStore, ctx CallContext, txBytes []byte) (res abci.Result)
// Other ABCI message handlers
SetOption(store KVStore, key string, value string) (log string)
InitChain(store KVStore, vals []*abci.Validator)
@jaekwon
jaekwon / gist:000022471ecb6a4978424efac583c977
Created October 16, 2016 22:38
Issue #304 filtered CSWAL for offending node
{"time":"2016-10-16T20:57:31.752Z","msg":[1,{"height":47595,"round":0,"step":"RoundStepNewHeight"}]}
{"time":"2016-10-16T20:57:32.780Z","msg":[3,{"duration":999834609,"height":47595,"round":0,"step":1}]}
{"time":"2016-10-16T20:57:32.780Z","msg":[1,{"height":47595,"round":0,"step":"RoundStepPropose"}]}
{"time":"2016-10-16T20:57:33.174Z","msg":[2,{"msg":[20,{"ValidatorIndex":1,"Vote":{"height":47595,"round":0,"type":1,"block_hash":"D3645CB2EF4FB03DCC7FB77C5CEE969765EF78BF","block_parts_header":{"total":13,"hash":"C28C08047DABB2E345B09BC77F0384453E3BED7C"},"signature":"E3875E3286F0581BA303C357FCEA9AF20255669A0B83C6318D11D220F6FDC9743F41BF1007B6C9C008C9F44DB1B7F8BE404F672C57DEC5BD26E5175A6F27230C"}}],"peer_key":"AC86D51269961BAAC1FCB58709E2499CD14CC4845DEF847D58A4BF73C578BA9B"}]}
{"time":"2016-10-16T20:57:33.183Z","msg":[2,{"msg":[20,{"ValidatorIndex":2,"Vote":{"height":47595,"round":0,"type":1,"block_hash":"D3645CB2EF4FB03DCC7FB77C5CEE969765EF78BF","block_parts_header":{"total":13,"hash":"C28C08047DABB2E345B09BC
@jaekwon
jaekwon / 2of3.md
Created July 7, 2016 21:29
2-of-3 Escrow Example with Electrum (Updated May 2014)

2-of-3 Escrow Example with Electrum

This is gmaxwell's 2-of-2 escrow example, adapted to Electrum and to a lesser extent, GFM.

The Scenario

Archey wants to pay Bertha 0.001 BTC for a Twitter Platinum invite, but prevent Bertha from cheating him. Archey selects Iceland to act as

@jaekwon
jaekwon / gist:76bcb80081ce39b1588d
Created June 29, 2015 20:33
SortString in Golang
package main
import (
"sort"
"testing"
)
// SortString sorts a string
func SortString(w string) string {
wBytes := uint8Slice([]uint8(w))

Keybase proof

I hereby claim:

  • I am jaekwon on github.
  • I am jaekwon (https://keybase.io/jaekwon) on keybase.
  • I have a public key whose fingerprint is F3E6 04B9 02C6 3CC5 EA2E 4FB6 BBCF 2AC7 7899 206D

To claim this, I am signing this object:

@jaekwon
jaekwon / gist:368238e7b4f4ea4925dc
Created May 24, 2015 22:27
Tendermint + GopherJS
39015 default
5353 gopherjs/js
4667 runtime
847 errors
1926 sync/atomic
22451 sync
4968 io
18733 unicode
6980 unicode/utf8
@jaekwon
jaekwon / gist:0f6e5555ab6a592aa4c8
Last active August 29, 2015 14:21
Example of Go composition
// Compare to https://gist.github.com/jaekwon/8025b9f3a482b3219a21
package main
import "fmt"
type Human struct{}
func (h Human) walk() { h.moveFeet() }
func (h Human) moveFeet() { fmt.Println("Human.walkFeet") }
@jaekwon
jaekwon / gist:8025b9f3a482b3219a21
Created May 22, 2015 15:33
Example of Java inheritance that overrides a baseclass's behavior
import java.util.*;
import java.lang.*;
import java.io.*;
class Human {
public Human() {}
public void walk() {
this.moveFeet();
}
public void moveFeet() {
@jaekwon
jaekwon / default.cfg
Created May 5, 2015 01:34
default.cfg
{
"Remotes": [
"http://navytoad.chaintest.net:46662",
"http://whiteferret.chaintest.net:46662",
"http://magentagriffin.chaintest.net:46662",
"http://greensalamander.chaintest.net:46662",
"http://blackshadow.chaintest.net:46662",
"http://pinkpenguin.chaintest.net:46662",
"http://polkapig.chaintest.net:46662"
],
INFO[04-02|19:50:25] Running round action module=consensus height=72872 round=0 step=RoundStepPrecommit roundAction="RoundAction{H:72872 R:0 A:RoundActionCommit}" startTime=2015-04-02T19:50:15-0700
INFO[04-02|19:50:25] Running round action module=consensus height=72872 round=0 step=RoundStepCommit roundAction="RoundAction{H:72872 R:0 A:RoundActionTryFinalize}" startTime=2015-04-02T19:50:15-0700
INFO[04-02|19:50:28] Running round action module=consensus height=72873 round=0 step=RoundStepNewHeight roundAction="RoundAction{H:72873 R:0 A:RoundActionPropose}" startTime=2015-04-02T19:50:28-0700
INFO[04-02|19:50:31] Running round action module=consensus height=72873 round=0 step=RoundStepPropose roundAction="RoundAction{H:72873 R:0 A:RoundActionPrevote}" startTime=2015-04-02T19:50:28-0700
INFO[04-02|19:50:35] Running round action module=consensus height=72873 round=0 step=RoundStepPrevote roundAction="RoundAction{H:7