Giter Site home page Giter Site logo

blockchainr's Introduction

I’m a cryptography engineer and open source maintainer, specializing in Go.

From 2018 to 2022, I worked on the Go team at Google, where I was in charge of the Go Security team. I implemented TLS 1.3 support in the Go standard library; co-designed the Go Checksum Database, a seamless solution for securing the Go software supply chain with transparency trees; and with my team was responsible for developing features such as native fuzzing and the Go Vulnerability Database, as well as handling vulnerability reports.

Before that, I was at Cloudflare, where I maintained the proprietary Go authoritative DNS server which powers 10% of the Internet, and led the DNSSEC and TLS 1.3 implementations.

Today, I maintain the cryptography packages that ship as part of the Go standard library (crypto/… and golang.org/x/crypto/…), including the TLS, SSH, and low-level implementations, such as elliptic curves, RSA, and ciphers. These packages are critical to virtually every Go application, securing HTTPS requests, implementing authentication, and providing encryption.

I also develop and maintain a set of cryptographic tools, including the file encryption tool age, the development certificate generator mkcert, and the SSH agent yubikey-agent.

Professional maintenance

Open-source software, despite being shared critical infrastructure, is maintained by volunteers or by full-time company employees. Neither is a sustainable model, the former for obvious reasons, and the latter because available resources at a single company do not scale with the size and success of the project, leading whole teams to burnout and churn.

I am testing a new model: professional independent full-time maintainers, who bill companies as contractors, providing ongoing maintenance and access to their expertise and to the project’s decision-making process.

I envision open source maintainer as a first-class profession, with independent maintainers organized in personal practices or small and medium-sized firms, earning compensation comparable to what senior software engineers are paid. I want maintainers to be empowered to keep doing what they do best, and be available as a resource to the companies that fund them.

I believe the best way to precipitate this change is to prove the model myself, and I plan to build the missing tools (legal contracts, best practices, professional associations…) and grow the model by example and by employing others.

None of this, both my open source work and establishing this model, would be possible without my clients, who've been forward-thinking enough to invest in something new.

Nine logos in a grid: Sigsum, Latacora, Interchain Foundation, Smallstep, Ava Labs, Teleport, SandboxAQ, Tailscale, Charm

blockchainr's People

Contributors

filosottile avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blockchainr's Issues

compile issue

root@kali:~/blockchainr# make all
make -C src/github.com/bitly/dablooms install
make[1]: Entering directory /root/blockchainr/src/github.com/bitly/dablooms' CC build/dablooms.o CC build/murmur.o AR build/libdablooms.a INSTALL /usr/local/lib/libdablooms.a SO build/libdablooms.so.1.1 INSTALL /usr/local/lib/libdablooms.so.1.1 INSTALL /usr/local/include/dablooms.h make[1]: Leaving directory/root/blockchainr/src/github.com/bitly/dablooms'
env GOPATH="/root/blockchainr" go install github.com/bitly/dablooms/godablooms
env GOPATH="/root/blockchainr" go install blockchainr
env GOPATH="/root/blockchainr" go install analyzr

analyzr

src/analyzr/opcode.go:22: script.Next undefined (type btcscript.Script has no field or method Next)
make: *
* [analyzr] Error 2

analyzr

got 2 files after running blockchainr
blockchainr_bloom.bin blockchainr.json

however have trouble running analyzr:

root@k:~/blockchainr/bin# ./analyzr
blkH blkSha blkTime txIndex txSha txInIndex prevBlkH prevBlkSha prevBlkTime r addr wif
2014/10/18 10:08:49 Skipping at fetch: failed FetchBlockShaByHeight(296715): leveldb: not found

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x402b9f]

goroutine 16 [running]:
runtime.panic(0x7b6e40, 0xb1a513)
/root/go/src/pkg/runtime/panic.c:279 +0xf5
main.printLine(0xc20809d420)
/root/blockchainr/src/analyzr/main.go:115 +0x76f
main.main()
/root/blockchainr/src/analyzr/main.go:180 +0x9f7

goroutine 19 [finalizer wait]:
runtime.park(0x417b10, 0xb1f060, 0xb1d289)
/root/go/src/pkg/runtime/proc.c:1369 +0x89
runtime.parkunlock(0xb1f060, 0xb1d289)
/root/go/src/pkg/runtime/proc.c:1385 +0x3b
runfinq()
/root/go/src/pkg/runtime/mgc0.c:2644 +0xcf
runtime.goexit()
/root/go/src/pkg/runtime/proc.c:1445

goroutine 20 [semacquire]:
sync.runtime_Syncsemacquire(0xc20804d0d0)
/root/go/src/pkg/runtime/sema.goc:257 +0xc0
sync.(_Cond).Wait(0xc20804d0c0)
/root/go/src/pkg/sync/cond.go:62 +0x9d
github.com/conformal/seelog.(_asyncLoopLogger).processItem(0xc208004660, 0x0)
/root/blockchainr/src/github.com/conformal/seelog/behavior_asynclooplogger.go:50 +0xc2
github.com/conformal/seelog.(*asyncLoopLogger).processQueue(0xc208004660)
/root/blockchainr/src/github.com/conformal/seelog/behavior_asynclooplogger.go:63 +0x31
created by github.com/conformal/seelog.newAsyncLoopLogger
/root/blockchainr/src/github.com/conformal/seelog/behavior_asynclooplogger.go:40 +0x70

goroutine 21 [semacquire]:
sync.runtime_Syncsemacquire(0xc20804d250)
/root/go/src/pkg/runtime/sema.goc:257 +0xc0
sync.(_Cond).Wait(0xc20804d240)
/root/go/src/pkg/sync/cond.go:62 +0x9d
github.com/conformal/seelog.(_asyncLoopLogger).processItem(0xc208004720, 0x0)
/root/blockchainr/src/github.com/conformal/seelog/behavior_asynclooplogger.go:50 +0xc2
github.com/conformal/seelog.(*asyncLoopLogger).processQueue(0xc208004720)
/root/blockchainr/src/github.com/conformal/seelog/behavior_asynclooplogger.go:63 +0x31
created by github.com/conformal/seelog.newAsyncLoopLogger
/root/blockchainr/src/github.com/conformal/seelog/behavior_asynclooplogger.go:40 +0x70

goroutine 17 [syscall]:
runtime.goexit()
/root/go/src/pkg/runtime/proc.c:1445

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.