Skip to content

Instantly share code, notes, and snippets.

@amitiuttarwar
Last active May 26, 2023 02:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amitiuttarwar/a2c2fefd8ab3670f66234c3cbd7066f7 to your computer and use it in GitHub Desktop.
Save amitiuttarwar/a2c2fefd8ab3670f66234c3cbd7066f7 to your computer and use it in GitHub Desktop.

Here is an overview of where I’ve been spending my time and energy in the bitcoin realm lately:

Engineering coach: scaling impact by supporting other contributors

I strongly believe that my highest impact work is mentoring other contributors to unleash their full potential within the bitcoin community. In addition to the intrinsic joy and satisfaction of helping others on their journey, it has been a meaningful way for me to scale my impact. Increasing my personal impact means multiplying the value of the resources that have been, and continue to be, invested in me.

Working in the bitcoin open-source world is hard. It is a gift to have autonomy in defining our direction of work, but it can sometimes feel overwhelming and isolating. The questions of “what should I be doing?” and “am I doing it well?” are not trivial to answer. In the role of engineering coach, I create space for contributors to answer these questions over a longer time horizon, which is especially relevant when projects occur over years instead of weeks. Contributors have to be an engineer, project manager, team builder, marketer, and more. Support helps.

I have drawn upon specific strategies I have learned throughout my past several years in bitcoin, and am continually learning more. Each mentee has unique needs, and I help them navigate whatever multi-dimensional hurdles arise. The goal of the coaching is not to solve all the problems, but to equip the individuals with tools to overcome the challenges themselves. In the words of Stacie Waleyko- “Every time I felt like I was about to hit a wall, Amiti taught me how to build a ladder and overcome whatever technical, emotional, or social problem I was facing.”

Some examples of ways I help the contributors maximize their impact:

  • Implementing techniques to help sustain motivation and productivity over time; eg. creating roadmaps, regular accountability methods, meaningful reflection on previous projects, breaking down upcoming work to ensure it is achievable.
  • In initial stages, I sometimes identify specific PRs and projects for individuals to contribute or review that are appropriate to their level and interests. Over time, I help them identify and take on larger projects, leave more meaningful reviews or develop engineering expertise in a new area of the codebase.
  • Technical mentorship: giving C++ guidance, reviewing code, designing projects to have a specific implementable scope.
  • Help mentees navigate the social world of bitcoin. From getting concept ACKs on projects to advocating for attention on meaningful work, the open source world works very differently and having strategies for navigating the social aspects is crucial to move important improvements forward.
  • Supporting mentees in forming independent working relationships with other collaborators to resource themselves as they move forward.

Improving Addrman: unlocking privacy & security improvements via alternate networks

Building on my years of experience in P2P in Bitcoin Core, I am working to improve support for alternate networks in bitcoind. Within bitcoin’s lifetime, the number of bitcoin nodes estimated to use Tor has increased by 2 orders of magnitude. We have also introduced support for other networks, namely I2P and CJDNS. While bitcoin users can run nodes on multiple networks right now, the benefits are limited and often require a deep level of understanding from the node operator.

I am working, in collaboration with Martin Zumsande from Chaincode Labs, to improve the security and privacy for all bitcoin nodes by better harnessing the benefits of alternate networks. Our current project is to enable automatic connections to nodes on every network that a user has enabled. With our work in #27213, if a user has enabled clearnet (IPV4/IPV6) and Tor on their bitcoin node, the node will strive to ensure at least one of their 10 outbound connections is to an onion peer on the Tor network.

There is much room for improvement for bitcoin to better utilize the privacy and security benefits enabled via alternate networks. Other potential improvements involve utilizing alternate networks for stronger privacy in initial broadcast, changing the rebroadcast logic, and much more. We are also working to increase the number of outbound block-relay-only connections that a node enables by default. I look forward to discovering what progress we can make over the course of the next year to improve support for alternate networks in Bitcoin Core.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment