Github: kulpreet and pool2win
Twitter: @jungly
Blog: blog.opdup.com
The shape of Bitcoin’s adoption curve is, as of yet, unknown. What we do know is that there is a lot we still need to build.
P2Pool Reboot
I am working on rebooting P2Pool that addresses the problems encountered by the original P2Pool. The aim is to account for all miner work (i.e. eliminate orphans) and handle payouts to bypass the coinbase size limit imposed by antminers.
You can read more about the pool on my blog and follow progress on the p2poolv2 repository.
Past works
Braidpool
I have been working on Braidpool an effort resist mining centralisation by building a peer to peer mining pool that can scale to support thousands of miners.
I am using TLA+ to specify the protocols that make up braidpool. The specifications are in the docs folder on this repository.
The latest braidpool developments are on my blog.
Specifying Bitcoin Contracts
Bitcoin DSL provides high level declarative syntax for experimenting with Bitcoin contracts. You can run DSL scripts in jupyter notebooks or using good old command line. Detailed Docs with examples for LN, ARK and other contracts is also available.
Currently the DSL allows easily doing the following:
- Automatically start/stop a bitcoin node.
- Extend chain to generate coinbases or confirm transactions.
- Build transactions using a high level DSL
script_pub_key
can be specified using miniscript, descriptors or Script.script_sig
can be specified using high level constructs that are extensions for descriptors and Script.
- Assert that a transaction will be accepted by mempool.
- Submit bitcoin transactions to a node.
- Query a bitcoin node to assert a transaction is confirmed.
- Query bitcoin node for transactions and blocks - these responses are available as objects for further introspection and manipulation.
Verifying Contract using TLA+
I have long wanted to use TLA+ for specifying behaviours of layer 2 bitcoin contracts. I have started work on specifying lightning contracts using justice transactions. As a consequence of this work, we finally have a TLA+ module to capture the behaviour of the bitcoin network that can be used as the environment for specifying any L2 contract. The work’s progress is tracked on the README of the repo for now.
More of my earlier work can be found on Github.
- I started work on specifying a DSL for helping compose and test L2 contracts. This was built on Racket to enable an external DSL.
- I used to run a small service that tracked node centrality in the Lightning Network. My older blog post on a commercial platform are on Medium.
- I briefly engaged with the Rebooting Web of Trust community and helped build tools to develop DIDs using the BTCR spec.
- I am a contributor to libbitcoin - the best way to figure out how bitcoin works.
Fu (remote past tense in Italian)
I studied consensus algorithms for my PhD. My post academic life has been spent working with startups building products for Web 2.0 and Mobile.