15
2022
Take sovereign control of your Bitcoin
Why hold your own Bitcoin?
There’s a saying among Bitcoiners – “Not your keys, not your coins“. This has never been more evident than now, a few days after the spectacular end of one of the world’s largest exchanges, FTX.
Many of you have learned this the hard way, finding out that you can no longer access your assets on FTX, Voyager, BlockFi, Celcius, Mt. Gox, etc., etc., etc. Why did this happen to you? Because you trusted them with your money. It’s the same fate that happened with customers of Bernie Madoff.
What does not holding your keys mean? Well, it means that when you don’t hold the keys to your Bitcoin, you are TRUSTING an entity to hold them for you, and that entity can via malfeasance, negligence, fraud, governmental pressure backed by violence, or many more reasons can cause you to be unable to access YOUR asset that YOU paid for. 2022 has been a tough year for many, as they didn’t practice this mantra, and instead trusted someone else with their asset.
For those reading this that lost their Bitcoin, I’m sorry. We in the Bitcoin community have been trying to evangelize the importance of keeping your own keys, but unfortunately, this message has been muffled and muted because people want convenience over security, greed, or just simply don’t know any better.
And if what you lost was “crypto” other than Bitcoin, it’s a good time to check yourself and realize that you’re NOT going to get rich trading garbage alt-coins (ETH included) because you’re so smart. My advice – sell them / convert them all now for Bitcoin and Bitcoin only and be done with it. Take this advice, or leave it. Bitcoin will wait. There’s another saying in Bitcoin – “Everybody gets Bitcoin at the price they deserve“.
This guide is for anyone that has Bitcoin on an exchange now. It’s not too late to move it off. The best time was yesterday. The second best time is right now. Here’s a simple guide on the steps needed to take control and custody of your Bitcoin and protect yourself from the failures of others.
Two ways to hold your own Bitcoin – you choose
- Unchained Capital – My friends at Unchained will help you with their white glove concierge service. They will walk you through securing your Bitcoin on multiple Trezors, ensuring you’ve properly backed up your seed phrase, know your pin, etc. I really recommend them, and the small fee they charge for their personalized collaborative custody service is well worth it. To get started, go here, and no need to read the rest of this post.
- Personal Trezor – If you want to do it completely yourself, read on for the details.
Securing your Bitcoin on a Trezor
Buy a Trezor
There are many hardware wallets available, and if I had to pick one, I would pick Trezor. Trezor was one of the first hardware wallets and is still one of the best and going strong. You can buy one (any model is fine) directly from Trezor or Amazon.
Trezor has their own extensive guides which you can follow, and/or continue on for my more curated simple steps below.
Set up your Trezor
- Unboxing: Once you receive your Trezor, ensure that the device is indeed in its original packaging and hasn’t been tampered with. Click here for Trezor’s guide on how to do this.
- Install Trezor Suite: Download Trezor Suite on your computer and install.
- Run Trezor Suite: Launch Trezor Suite, plug in your Trezor, and follow the instructions:
- Update the firmware of your Trezor
- Create a PIN code – and do not forget it!
- Create a Bitcoin wallet, and write down your seed words on the included paper booklet, twice
Send your Bitcoin to your Trezor
Click on your newly created Bitcoin wallet, and click “Receive”. This will show you an address and a QR code. More details here with screenshots.
Mobile: If you use your exchange’s mobile app on your phone, launch the app -> wallet -> send. From there you will usually see a scan icon where you can point your phone at the QR code on your computer. Send it all by tapping ‘Max’.
Desktop: If you’re logged into your exchange on the same computer you’re running Trezor Suite, simply copy the address under the QR code to the clipboard. Next, go to your exchange’s website, login -> wallet -> send, and paste the address from Trezor suite as the receiving address. Send ‘Max’ (all of it).
The Trezor will also confirm the address on the device. Follow the extra verification your exchange requires, which is typically an email or additional prompt for 2-factor authentication.
Secure your Trezor and seed words booklet
You’re done, but what to do with your Trezor and seed word booklet? SECURE THEM. Treat them carefully. It’s like having cash in your mattress. You need to know who can access it. If someone has access to your seed words or your Trezor and PIN, your coins can easily be stolen, and you’ll never see them again. Be careful out there. Here are some strategies for “where” to secure your Trezor and seed words. I do not recommend storing your seed words in a safety deposit box – bank employees can get to those boxes. Again, it’s about trust, and sadly, history has taught us that you should trust no one.
Congratulations!
If you made it this far and you’ve successfully removed your Bitcoin from the exchange, and now have it yourself, you’ve taken a huge step towards self-sovereignty. Your Bitcoin is now really yours. This is a huge step. Doesn’t it feel good?
For more, check out “Brett’s Bitcoin Rabbit Hole Guide” and follow me on Twitter.
31
2020
Reflections of 2020
I took this photo of a Snowy Egret over a reflexive lagoon in Santa Barbara this morning, on the last day of 2020. And rather than just post a short caption I thought I would take some time to really reflect.
There’s so much to write – so many perspectives and feelings. I cannot possibly write them all here. I just want to address a few items I often consider.
Let’s start with loss. We’ve all experienced some sort of loss. Whether it was a close family member, a friend, a job, a relationship, an opportunity, or a piece of our mind – it was a loss. When there’s a loss – there’s a new inspiration. The energy of that loss can propel us to new places. Life is temporary. We are all just here, spinning around in space, and one day we will be gone, and everyone that we’ve ever known will be as well. It’s immutable. It will happen. You can accept it and welcome it – or you can fight it. Let’s start by having gratitude for what we do have – breath.
Let’s consider our liberty. Our liberties were certainly tested and pushed this year. What we’ve seen from governments around the world is highly concerning and trending towards tyrannical. Tyranny starts with a thought from an ego and a desire to control. The rise of Nazi Germany didn’t happen overnight – and yes humans can fail to learn from the past and repeat it again. While they’re patting themselves on the back – we are crying from our hearts. There is a reason for this – and it starts and ends with money and the government central banks quietly hoping no one will notice. Understand something – the money to pay for all the 2020 stimulus packages, the 9 trillion dollars – was printed out of thin air. This isn’t tax revenue being re-allocated from the Defense Department, the National Parks, or anywhere else. The money is being manufactured by government. What does that mean? It means government is negligent in its duties that they were elected and sworn to perform. There is only ONE senator-elect (Cynthia Lumis) who sees how dangerous this is and understands what I’m talking about and cares enough to use her voice and speak about it. This means that all of our USD is worth less – and we will see inflation. It will start outside this country where other currencies are valued against the dollar, and then it will hit us here in the U.S.. Watch it. Mind the signals. Some countries will see hyperinflation – and once that happens we will unfortunately see great suffering. I hope I’m wrong about that – because there is a solution. There is an end to the suffering. There is true freedom that cannot be taken away. The solution to this problem is Bitcoin. Bitcoin may just seem as a way to make money to many of you. I am telling you there is much, much, more to Bitcoin than that. Bitcoin is not just an “investment”. Bitcoin is the response to tyranny and Bitcoin will change the world dramatically more than we can imagine. (If you’re interested in learning more, PM me and I’ll send you some podcasts and other links to get you started down the rabbit hole). We are still in the early phases. It is still the beginning. It is not too late. Mark my words. This is going to happen. Let’s recognize that the energy of true freedom starts with a B. 😉
Let’s start and end with love. The world needs more love. That’s not a cliché, it’s a fucking mandate and it needs to happen. Divisions, sides, and opposition have no place outside of sports. We are one people. We are one species. We are one planet. Fear is our only enemy. Love is our solution – and it always has been. It’s right there for all us. More kindness and understanding has no downside. Let’s start doing more loving individually and we will see how the world joins in as a collective.
Let’s get this out of the way first – like many grown adults, I don’t use TikTok. I’m obviously pretty much “aged out” of the appeal for it – but that’s besides the point. If you don’t care about what I’m about to say because it doesn’t affect you – you’re missing the big picture. That’s like saying you don’t care about racism because you’re not black.
You need to care if government decides to ban any software, whatever its origin.
TikTok, made in China, by Chinese Engineers, is indeed a sneaky app. And that’s why I installed it on a sandboxed, isolated phone, something few people would ever do. TikTok is indeed full of surreptitious motives and questionable data gathering. This post last week by Richie Koch of Proton Technologies outlines exactly why this is so and is a very informative read.
This isn’t about what software you should or shouldn’t run. It’s about government telling you what software you can or cannot run. As a computer scientist, I recommend you do not run TikTok for the reasons stated in Koch’s analysis. That’s a recommendation – not a government edict issued by a want-to-be dictator. The difference is not subtle.
The only reason this app is under scrutiny is because it’s become wildly popular. Apps and desktop software have had spyware, malware, and other nefarious methods embedded in them for decades. This is nothing new. The onus has been on Apple, Google, Microsoft and other companies to try and educate, warn, and in some cases block apps or services that they choose to – but they’re not government. It has been and it should remain that each of us, as sovereign individuals be able to freely choose what we do or do not do on our own computers and phones. We do not need or want the government telling us what we can or cannot run.
When Americans visit China, Iran, and many other countries they find they cannot use Facebook, Google, YouTube, and more. Why not? Because authoritarian governments prohibit it. That’s not OK there and it’s not OK here, in the “land of the free”. How is the U.S. banning TikTok any different?
I’ve said it before – uncensored Internet is a human right. And that means we can run whatever software we please – spyware or not. The onus is on ourselves and industry to stay informed and make decisions. Some people don’t run Amazon Echo in their home because they don’t trust Amazon. That’s their choice. I don’t think people would be too pleased if our government decided to “ban” the Amazon Echo from existing.
It’s up to individuals to understand what’s happening on their phones and computers. It’s also up to operating system vendors – Google, Apple, Microsoft, etc. to provide warnings – which they already do. They, along with anti-virus / anti-malware vendors have been doing it for decades. We need to pay attention and understand – we are trusting the operating system and application developers every time we install a piece of software we cannot analyze ourselves. I’m not saying that’s always a good idea, I’m saying that’s our choice, our risk, our privacy threshold for us to decide – not government.
Reading lengthy terms-of-service agreements and understanding data and networks is not practical for most people. And it shouldn’t have to be. Computers and phones and the complexities behind them are becoming more and more invisible as they become easier to use, and that’s a good thing. But that’s why we trust independent security auditors to look at software and make recommendations, and we can quickly check app ratings and reviews and make our own decisions. Well you say, how does that stop my teenager from installing TikTok? Well – it doesn’t. Guess what – it also doesn’t stop your teenager from installing Snapchat, from a U.S. company. When you choose to provide location data and submit any user generated content (UGC) you are already giving up privacy with every post. Privacy is only as good as what you’re willing to NOT put on the Internet – whatever the vehicle is. TikTok is no different – other than it’s from China.
In TikTok’s case, the primary concern is that the Chinese government can compel the parent company ByteDance to provide unrestricted access to data. Well, in the U.S. it’s a bit harder, but is it really? The U.S. Government is constantly, on a daily basis, submitting requests for data from every technology company with more than a few thousand users, and companies usually provide it out of fear of authority.
As of this writing, President Trump suggested that he will “ban” TikTok by Executive Order. Whether he succeeds with that or via an act of Congress is to be determined. There’s also some well substantiated rumors floating that Microsoft will acquire TikTok. I imagine their first move would be to isolate all the U.S. based accounts into Microsoft Azure data centers, where they have control over it, and the U.S. Government will suddenly have jurisdiction to all of that juicy UGC, instead of China. I actually hope this happens because I think Microsoft would be a great place to help TikTok thrive and grow as the entertaining juggernaut it has quickly become. It would be incredibly strong brand building block for Microsoft too, because other than XBox, Microsoft doesn’t have the brand awareness that a massively popular mobile-based product or service Facebook (Instagram, WhatsApp), Google (Android), Apple (iPhone) does. Acquiring TikTok and branding it “Microsoft TikTok” will change that instantly, establishing the Microsoft brand in the minds of the younger generation.
Back to basics of government overreach – succeeding in “banning” a popular app makes our government no different than that of the other countries mentioned earlier, and compromises our individual liberties. It also puts a burden on Internet Service Providers (ISPs) and App Repositories (Apple App Store, Google Play) to suddenly have to comply with various “orders” from Government on what apps and traffic is permitted. How is this different from the Chinese Firewall?
This opens a Pandora’s Box to government claws, and I hope our Constitution and our court system are able to fight this challenge to our societal liberties. If not, the U.S. government will be no different than those of authoritarian, anti-democracies that exist on our planet, and there will be a big price to pay for all of us as that happens. I won’t like it, and you won’t like it.
21
2020
An Auspicious Opportunity
And just like that, the world we have known is over. Welcome to the new world.
If it’s not obvious already – this is the most dramatic shift as a collective that the world has experienced in over a century. This crisis dwarfs the events of September 11, 2001 and the aftermath of that.
I had this Utopian vision – right at the beginning of the outbreak, everyone would just “pause” in place, go home, the virus would be contained and die, and then after a short period of time, we would just “play” and pick up right where we paused. Unfortunately, hubris, lies, and, most of all, ego got in the way early on to prevent that dream. And the consequence of that now is death, suffering, and the world economy crumbling. And that’s that. Silly dream.
This is a reminder of just how fragile our systems are. The chain of events leading to this crisis are fascinating to consider and observe.
This is not by choice – this is by force. This circumstance is not what we want, it is not something we asked for, it is just what is. We are forced to accept it – and it makes us uncomfortable. This crisis is a brutal reminder of how we are not in control of things the way we think we are.
What this crisis also is – an auspicious opportunity.
It’s an opportunity to reset our core values.
This is an opportunity to create a new understanding of our own mortality and of death. If you’re reading this – congratulations – because you’re alive – for now. Everything is impermanent. We really don’t know when our life is going to end, and our best laid plans just had a big wrench thrown right into them. So appreciate the time you have had, appreciate that you’re here now, and value your health, taking sensible and reasonable actions to protect it – because for some of us, it will be taken unexpectedly.
It’s an opportunity to understand how we relate to food, our food supply chain, and our relationship and expectations of local, state, and federal governments.
This is an opportunity to work on a passion project and catch up on entertainment and reading. As most of us self-isolate, we all set an example and test ourselves to see how we handle this and make sensible decisions – both large and small.
Most of all, it’s an opportunity to introspect and determine if we will choose fear or we will choose love. What does that mean, you ask? It means that it’s a chance to take a breath before making decisions and not be reactive. It means asking yourself what is the most optimal outcome of what you’re about to do and hopefully having the sense to realize it’s a fear-based decision – choosing to change your mind and do the opposite. It’s that simple. I find that this feeling comes to me after meditation and I use it to propel and guide my day.
To those that are still out, still working at grocery stores, restaurants, hospitals / health-care facilities, and other critical service industries – we thank you. You are all choosing to work not only for a paycheck, but because you want to help others. We cannot appreciate all of those on the front lines enough. You are the new heroes.
Things are changing rapidly by the day. As of today, we do not have martial law, but it’s probably coming. We also have governments creating money out of thin air, which will cause hyperinflation. News is coming into our feeds from friends, family, and outside sources, and we have to triage and distill it so that it fits within our understanding. And with all this comes a new set of challenges and tests of our resolve and of our freedoms. It’s a lot to handle. Cool heads will prevail.
People unite over a common enemy – whether it’s a foreign invader, a potential alien attack, or today’s enemy, COVID-19. Will humanity and governments use this opportunity to pause (stop?) waging war on each other, making bombs, imposing sanctions and other instruments of destruction upon each other and come together as well? Or after this is over, will we just pick up where we left off and continue existing patterns of oppression, fear, and violence? We shall see in the days and years to come. Today, right now, we are living through a reckoning of everything we know and have ever known.
We get to have this auspicious opportunity. How we choose to act and react, both as individuals and as a collective, starts from within. It starts with you.
This is a story about love. It’s about love for driving. It’s about love for adventure. It’s about love for family and each other. It’s a story about love for the environment and a sustainable future. This is a story about love for the freedom to move between points A and B and appreciate the journey.
** NOTE: I know that I’m very fortunate to have had this experience and be able to afford these vehicles. I share it because I think it’s meaningful to understand just how much electric vehicles can impact our everyday life.
Today marks the 5 year anniversary of taking delivery of my first Tesla vehicle. It’s been 5 years and more than 100,000 miles of smiles. My last post about Tesla was the beginning of this journey and ended with a feeling of anticipation and excitement, knowing that I’ll never own a fuel-powered vehicle again. There was no turning back then; now with resolve, more than ever, I know that EVs are our only future for transportation.
So join me down the road of my love story with the Tesla Experience.
I knew that this would be the last time I used a gas pump for my primary vehicle, and wanted to mark the occasion. My son Jack turned 9 on that day, so we had 2 reasons to celebrate!
My wife Sima and I flew into Oakland airport and took a taxi to the Fremont factory to get a tour and pick up my first Tesla, a black Model S 85.
The Tesla staff treated us so well. They really appreciate and value their customers. They did back in 2013, and they continue with a culture of outstanding customer service still today.
Right after taking delivery, I took it to a nearby tinting shop to have the windows tinted. While we were waiting, we went to lunch at a nearby place in a super busy intersection of Fremont. It was multiple lanes wide in all directions, it was noisy and smelly. As we sat there talking about the delivery experience and being overwhelmed by the sounds and smells of the intersection I said to Sima:
Imagine this… Imagine if every one of these vehicles were electric. It would be so quiet and clean. It will be incredible because it WILL happen. It’s not a matter of “if”; it’s a matter of “when”.
It’s just a matter of time.
I used to wear my Tesla hat so much I wore it out. Here it is still looking reasonably fresh.
My first of many pictures where my Tesla has posed so well for me.
In September 2013, we attended the first and only Los Angeles Tesla Rally, where over 100 Model S owners started at the Tesla Design Studio in Hawthorne, caravaned through a police escorted ride through the city and ended the ride at the Petersen Automotive Museum.
A few months later, I decided to “upgrade” the wheels to chrome, to give my Model S a more distinctive look. In hindsight I probably wouldn’t do it again – but at the time I really liked it!
Sima stepping out of the Model S is ALWAYS worth watching. You never know what might happen!
Tucked away in the garage charging via the Tesla High Powered Wall Connector. I plug in every night, just like we do with our phones.
I somehow convinced the electric company to provision me a separate EV charging meter! I’m able to get 80 amps at home, which outputs about 45 mph, so I can go from drained to 90% full in about 5 hours.
We like to charge at destination chargers when we can, and more and more are showing up all around the United States and the rest of the world. Because I’m able to charge easily at home, usually when we’re out and about in Los Angeles I don’t do it, and free it up for others. When I first got the car it was a bit more exciting to do it than it is now! It’s become just normal to charge at home – the way it should be.
In California, we’re obligated to display a front license plate. Most Tesla owners don’t like to and pretty much ignore that law. I created a technique to be able to quickly mount / dismount your plate via magnets and posted the procedure on the Tesla Motors Club forums, so when you park somewhere where they enforce the violation, like in a city public parking lot or street, you just open the frunk, pop it on, and you’re good. You can drive with it, too.
We’ve traveled all over the Western U.S., from Los Angeles to as far north as Portland (twice), countless trips to the Bay Area, and quite a few throughout Arizona. I’ve visited 46 Super Chargers in 5 years (yes, I keep a list). I’ve cut it close a few times – and fortunately have never suffered running out and being stranded.
A Supercharging stop is always an excuse to take some photos of what’s around you – or the obligatory Sima Selfie.
Split screen Nav + NFL = All you need on the giant touch screen.
One birthday, my family made me a cake with some of my interests and passions. Among them Bitcoin, the Philadelphia Flyers, the C# programming language, and top-center, Tesla!
In October 2014 I headed to the big event in Hawthorne where Elon decided to “unveil the D” – and after seeing the autopilot demo, I was sold.
I ordered my second Model S that night. This time in Grey.
I traded in my Black Model S and in December 2014, took delivery of one of the very first P85D configurations!
My first “Insane Mode” launch was INCREDIBLE!
The next week, I upgraded the wheels to the aftermarket TSportline edition. I love how they match so well with the grey body and they look like factory quality stock – understated.
The Model S is a truly beautiful, timeless design. People often ask me what my favorite feature is, and I say – besides the zero emissions, linear torque, head snapping acceleration, giant and intuitive touch screen – my favorite feature has to be that there is no on/off (start/stop) button. The absence of a user interface is the best user interface – and Tesla recognized this early and made that brilliant decision to not put something in the vehicle that isn’t inherently necessary. Less is more.
Now – Sima’s turn to be a Tesla owner. Enter the Model X!
In September 2015, Tesla had a big event in Fremont to show the final production Model X. We had reserved a “Signature” (first 1000) and we’re super excited to attend.
Sima ended up making it into the LA Times and the San Jose Mercury News on a feature covering the event!
In January 2016, we received a phone call from the Tesla Centinela service center, letting us know that her Model X was ready for delivery – one of the first – and a rare “triple white” configuration.
Shortly after, I had the wheels plasti-dipped to black. I wouldn’t recommend it, though. I think it’s better to powder coat or purchase wheels already the color you like. Either way – I think black wheels look orders of magnitude better than the stock silver.
ABG = Always Be Goofin’.
We really could talk about Tesla all day – and I often do. This was during a ride up the Pacific Coast Highway.
I added front and rear dashcams to both cars in 2016, and really recommend them. I caught a valet driver banging my right rear fender into a post. I noticed the dent the next day, and I confronted the valet company manager. He denied it – saying that the valet claim ticket had a drawing on it already showing damage. When I showed him the evidence, he profusely apologized and his insurance handled the repairs.
I wrote this dashcam program to help people download the footage from their dashcam without having to eject the card or touch it in any way.
My colleague kept forgetting to plug his car in when he arrived at the office, and he would have to go running out mid-day to plug in. So I also wrote a program for him that would text him if he was within a certain geo-fence, unplugged, with his remaining battery level below a specified threshold. This saved him lots of time!
Here’s a mobile service technician replacing the 12v battery. Tesla Service has been absolutely fantastic. They’ve handled everything, however minor, and have always provided a Tesla loaner. I’ve been extremely pleased with the customer experience. They really back up their product and support it. They are way more than just talk. They back up their words with actions and I could not be happier with the service I’ve received. They’ve set a tone for excellence early in their history and I expect that they will maintain it as they grow.
Earlier this year, I decided to give my Model S a fresh look, and had it wrapped with 3M satin space grey and a chrome delete, where they wrapped all the chrome in black. It’s like a new skin for the car and it’s really easy to clean. I like that it makes it more unique, distinctive, and really sleek.
I recently added a Reviver Auto RPlate digital license plate. It’s hard wired to the battery, and the company says will be able to display the HoV (carpool) designator as a small icon in the future. You can choose a message from a pre-set list to display at the bottom. I chose “I Love You” because – why not? The world needs more love.
Imagine again… an alternate universe. Imagine if every car were electric now, our roads clean and quiet, and our air clean and fresh. Then imagine if someone introduced a car into which you must pour a smelly, flammable, toxic fluid, burn it, and pump the noxious fumes and smoke out the rear for everyone to have to breathe. Who would want such a car? The answer is obvious. Electric vehicles are indeed our future for sustainable transportation. You can either get on board now and be part of the change, or wait around and be part of the mass adoption. Either way is OK. Tesla will be there and be ready when you are. The Model 3 is the cornerstone of Tesla’s secret master plan and it’s ramping up fast. Autopilot improves every few months and before you know it, Tesla will be the first to offer a truly autonomous vehicle.
Driving in Los Angeles and many other places can often be a grind and a chore. I choose to enjoy every moment driving – and make the best of it. With these cars, it’s easy. It makes life that much better. Road trips and daily trips have all become a joy, an appreciation of the journey with every electric mile, and every fuel station passed by.
If you liked this story, please share it, and when you do decide to purchase a Tesla, please use this referral link and gain credits for both of us. Thanks! #ZeroEmissions #DriveFree
The Lightning Network is Bitcoin’s biggest step in achieving global performance and scalability. To truly achieve scale in the billions of transactions per day, you need what’s called “off-chain” transactions, and the Lightning Protocol lays out exactly how it’s done.
This guide walks you through the steps in running a full Bitcoin Lightning Network node on a Raspberry Pi. When you’re finished, you’ll have a full-featured, decentralized international bank in the palm of your hand contributing to world commerce! How cool is that?
There’s 4 steps to getting this done:
1. Setting up your Raspberry Pi
2. Compiling and configuring a Bitcoin full node, syncing the blockchain, and adding your node to the Internet
3. Compiling and configuring a Lightning Node, and broadcasting its existence to the Internet
4. Funding your wallet
Plow through these steps, and you’ll soon be up, running and doing your part in making Bitcoin and the Lightning Network bigger and stronger!
1. Raspberry Pi Setup
First, you need a Raspberry Pi and an External USB drive with at least 250GB (as of the time of this post) capacity. I found an old, slow 250GB USB 2.0 drive lying around. It doesn’t have to be super fast – it’s more about storage than speed.
Install Raspian and enable SSH. Follow this guide for detailed instructions.
Once you’re up and running, it’s always a good idea to update to latest packages:
pi@raspberrypi:~$ sudo apt-get update
pi@raspberrypi:~$ sudo apt-get upgrade
pi@raspberrypi:~$ sudo apt-get dist-upgrade
pi@raspberrypi:~$ sudo apt-get autoremove
Next, you need to mount your USB drive. The MicroSD card should be used for the operating system and programs only, not for the large and growing Bitcoin blockchain. I recommend formatting the drive as NTFS, but you can also use native Linux EXT4. One of the main reasons you may want to use NTFS, is that if you want to download the blockchain faster, you could download it via a Windows full node, and then use the drive for the Raspberry Pi. For details on other options, here’s a detailed guide. For this example below, it assumes you’ve formatted the drive as NTFS. Plug your drive into your Raspberry Pi. Now you’ll install NFTS on Raspberry Pi and mount it.
pi@raspberrypi:~$ sudo apt-get install ntfs-3g
Confirm that the drive is recognized:
pi@raspberrypi:~$ sudo fdisk -l
At the bottom of the partion list, you should see something like this:
Device Start End Sectors Size Type
/dev/sda1 2048 625072127 625070080 298.1G Microsoft basic data
‘/dev/sda1’ is your mount point. Create a mount point and mount the disk:
pi@raspberrypi:~$ mkdir data
pi@raspberrypi:~$ sudo mount /dev/sda1 /home/pi/data
To ensure it’s mounted each time you reboot, edit /etc/fstab:
pi@raspberrypi:~$ sudo vi /etc/fstab
and add this line:
/dev/sda1 /home/pi/data ntfs-3g rw,default 0 0
Now you will be able to see the contents of the drive:
pi@raspberrypi:~$ ls data
drwxrwxrwx 1 root root 0 Mar 18 22:44 $RECYCLE.BIN
drwxrwxrwx 1 root root 0 Mar 18 20:47 System Volume Information
Great! Now our Raspberry Pi is setup, we’ve got the latest-and-greatest updates, and enough disk space to host a full node. On to Step 2.
2. Compile, configure, sync, and broadcast a full Bitcoin node
First, install the pre-requisites needed to compile and run Bitcoin.
pi@raspberrypi:~$ sudo apt-get install git build-essential autoconf libssl-dev libboost-dev libboost-chrono-dev libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-test-dev libboost-thread-dev libtool libzmq3-dev libevent-dev libtool libssl-dev libboost-all-dev libminiupnpc-dev qt4-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev db4.8-util -y
There’s more… Download, compile, and install Berkeley DB:
pi@raspberrypi:~$ wget http://download.oracle.com/berkeley-db/db-4.8.30.zip
pi@raspberrypi:~$ unzip db-4.8.30.zip
pi@raspberrypi:~$ cd db-4.8.30
pi@raspberrypi:~/db-4.8.30$ cd build_unix
pi@raspberrypi:~db-4.8.30/build_unix$ ../dist/configure --prefix=/usr/local --enable-cxx
pi@raspberrypi:~db-4.8.30/build_unix$ make
pi@raspberrypi:~db-4.8.30/build_unix$ sudo make install
pi@raspberrypi:~db-4.8.30/build_unix$ cd ~
Let’s update all packages again just to ensure we have latest and greatest.
pi@raspberrypi:~$ sudo apt-get update
pi@raspberrypi:~$ sudo apt-get upgrade
pi@raspberrypi:~$ sudo apt-get dist-upgrade
pi@raspberrypi:~$ sudo apt-get autoremove
OK, let’s download Bitcoin and build it. As of this post, Bitcoin is on version 0.16. Change the branch name (-b) below to the latest version.
pi@raspberrypi:~$ git clone -b 0.16 https://github.com/bitcoin/bitcoin.git
pi@raspberrypi:~$ cd bitcoin/
pi@raspberrypi:~bitcoin$ ./autogen.sh
pi@raspberrypi:~bitcoin$ ./configure
pi@raspberrypi:~bitcoin$ make
pi@raspberrypi:~bitcoin$ sudo make install
Be prepared to wait. This may take at least 2 hours!
Now that you’ve got Bitcoin downloaded, compiled, and installed, the next step is to RUN it. First, cd into your USB drive and let’s make a bitcoin.conf file:
pi@raspberrypi:~$ cd data
pi@raspberrypi:~/data$ mkdir BitcoinData
pi@raspberrypi:~/data$ cd BitcoinData
pi@raspberrypi:~/data/BitcoinData$ vi bitcoin.conf
Add these lines (change the rpc password, this is just an example):
server=1
daemon=1
txindex=1
rpcuser=bitcoinrpc
rpcpassword=ysSDnfRcSTCmI0syEwrM67brd8QnPc12pkKyFLtU
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28332
Add a symbolic link for ~/.bitcoin. This makes it easy to run bitcoin-cli commands without having to specify a specific -datadir each time.
pi@raspberrypi:~/data/BitcoinData$ cd ~
pi@raspberrypi:~$ ln -s /home/pi/data/BitcoinData/ ~/.bitcoin
Start the Bitcoind daemon to run the node:
pi@raspberrypi~$ bitcoind -daemon
Nice! We’re off and running. Let’s check the progress of the node as it downloads the blockchain. It’s gonna take a while. Depending on your bandwidth, it could take a few days – if not more. Eat. Sleep. Code. Repeat. Wait this out…
While you’re waiting, you can check progress by looking at the ‘progress’ output. Once it hits 1.0, you’re synced!:
pi@raspberrypi~$ tail -n 1 ~/.bitcoin/debug.log
pi@raspberrypi~$ bitcoin-cli getblockchaininfo
Allow the pi user to run tasks at startup:
pi@raspberrypi~$ sudo vi /etc/cron.allow
Add this line:
pi
Create a bash file to start the Bitcoin Daemon on reboot:
pi@raspberrypi~$ vi bitcoin-start.sh
With this:
#!/bin/bash
sleep 10
/home/pi/bitcoin/src/bitcoind -daemon
Add it as a cron job on boot:
pi@raspberrypi~$ chmod +x bitcoin-start.sh
pi@raspberrypi~$ crontab -u pi -e
Add this line to the bottom:
@reboot /home/pi/bitcoin-start.sh
So now when you reboot, bitcoind will startup.
Once the blockchain is synced – WHEW – that’s a lot of steps, but hey, if it was easy everyone would be doing it. We’re still in the early phases here.
It’s a good idea to now make your node available to the outside world. This helps improve the security of the Bitcoin network, and you’ll be rewarded with good mojo and karma to spare. Take the time to open your heart / port to the outside world. See how analogous technology and physics is to philosophy? 🙂
Be sure to open and forward both port 8333 (Bitcoin) and port 9735 (Lightning) on your router.
Onward to lightning.
3. Lightning strikes now
The lnd Lightning implementation was developed using Golang. Learn about why Go is great!
pi@raspberrypi~$ wget https://dl.google.com/go/go1.10.linux-armv6l.tar.gz
pi@raspberrypi~$ sudo tar -C /usr/local -xzf go1.10.linux-armv6l.tar.gz
Setup go properly by editing .bashrc:
pi@raspberrypi~$ mkdir gocode
pi@raspberrypi~$ vi .bashrc
Add these lines:
export GOPATH=~/gocode
export PATH=$PATH:$GOPATH/bin
Run your .bashrc
pi@raspberrypi~$ source .bashrc
Get one more LN dependency:
pi@raspberrypi~$ go get -u github.com/golang/dep/cmd/dep
Now we’ll install LND – the reference client, the “Lightning Daemon“:
pi@raspberrypi~$ git clone https://github.com/lightningnetwork/lnd $GOPATH/src/github.com/lightningnetwork/lnd
pi@raspberrypi~$ cd $GOPATH/src/github.com/lightningnetwork/lnd
pi@raspberrypi:~/gocode/src/github.com/lightningnetwork/lnd$ dep ensure
pi@raspberrypi:~/gocode/src/github.com/lightningnetwork/lnd$ go install . ./cmd/...
Again, always good to run “latest-and-greatest”, so when you want to update LND, run these commands:
pi@raspberrypi~$ cd $GOPATH/src/github.com/lightningnetwork/lnd
pi@raspberrypi:~/gocode/src/github.com/lightningnetwork/lnd$ git pull && dep ensure
pi@raspberrypi:~/gocode/src/github.com/lightningnetwork/lnd$ go install . ./cmd/...
Test your LND installation:
pi@raspberrypi:~/gocode/src/github.com/lightningnetwork/lnd$ go install; go test -v -p 1 $(go list ./... | grep -v '/vendor/')
Similar to how we setup bitcoin.conf, let’s setup lnd.conf. Replace X.X.X.X below with your public IP address. This will broadcast that you have a Lightning Node to other nodes, and auto-connect to available channels:
pi@raspberrypi:~$ cd data
pi@raspberrypi:~/data$ mkdir LightningData
pi@raspberrypi:~/data$ cd LightningData
pi@raspberrypi:~/data/LightningData$ vi lnd.conf
Add these lines:
[Application Options]
debuglevel=debug
debughtlc=true
maxpendingchannels=10
noencryptwallet=1
externalip=X.X.X.X
[Bitcoin]
bitcoin.active=1
bitcoin.mainnet=1
bitcoin.node=bitcoind
[Autopilot]
autopilot.active=1
autopilot.maxchannels=10
autopilot.allocation=1.0
Add a symbolic link for ~/.lnd:
pi@raspberrypi:~/data/LightningData$ cd ~
pi@raspberrypi:~$ ln -s /home/pi/data/LightningData/ ~/.lnd
Create a bash file to start it up:
pi@raspberrypi~:~$ vi lightning-start.sh
With these lines:
#!/bin/bash
sleep 20
/home/pi/gocode/bin/lnd
OK, the Lightning Node software is installed and configured. Now it’s time to set it up to run at boot time:
pi@raspberrypi:~$ chmod +x lightning-start.sh
pi@raspberrypi:~$ crontab -u pi -e
Add this line to the bottom, under the bitcoin-start.sh line:
@reboot /home/pi/lightning-start.sh
You can reboot your Raspberry Pi now, and both bitcoind and lnd will start up. For now, let’s just start it manually:
pi@raspberrypi:~$ ./lightning-start.sh &
4. Bolt it together
At this point, both Bitcoin and Lightning are running and serving the world! There’s an incredible amount of detail for both the Bitcoin and Lightning protocols and commands, too much to cover in this post. That said, here’s a few to get started:
Create a new wallet:
pi@raspberrypi:~$ lncli create
Get a new receiving address:
pi@raspberrypi:~$ lncli newaddress p2wkh
Send a small amount of Bitcoin to your Lightning Node. As of this post, LND is still beta! Be careful, and just send a small amount of BTC.
Run these to see some diagnostic info:
pi@raspberrypi:~$ lncli getinfo
pi@raspberrypi:~$ lncli listpeers
pi@raspberrypi:~$ lncli listchannels
pi@raspberrypi:~$ lncli listpayments
Looking back, that was quite a few steps, right? I know that this can be simplified using Docker, and I may do this at some point. This is my predecessor guide to packing this up as Docker container that as a future iteration.
You made it! There’s obviously a lot to Lightning, and this is just the beginning. These are the very early days. Soon, Lightning will live on your phone and desktop machines and you won’t even realize you’re using it. It will be as seamless as mobile location services are today. For now, plowing through these steps helps you understand how it all works, and you can sleep well knowing that your little $35 computer is helping grow and secure the network for Bitcoin – the world’s future currency.
Now that you’re up and running with a full Bitcoin Lightning Network node, what happens to it if there’s a problem? I’ll tackle maintenance, monitoring, and health in my next post!
27
2016
Microsoft’s little decision is a big mistake
Anyone that knows me knows that I have been a supporter and adopter of Microsoft technologies for decades. I prefer not to use the word “fan”, because I’m an active participant, not a passive onlooker. I’ve attended almost every Microsoft developer conference since 1993, back when it was called PDC. I’ve built small and large software on Microsoft technologies my entire career. I built a framework on top of Microsoft VBA. I started a company with a former Microsoft employee. I’ve contributed to Open Source Microsoft projects. I’ve built an e-commerce platform on .NET and IIS that has transacted over $1B and has endured the tests of time. My license plate used to be CEESHRP! My ties to Microsoft have been a big part of my career path. I understand how Microsoft works, and I understand what .NET is and what it’s not. I’ve heard from countless Microsoft naysayers, and defended Microsoft for decades. It’s been a tireless fight – and I’m not ready to give it up.
.NET is often misunderstood. It’s doesn’t only run with “expensive Windows licensing” and it is definitely not a big and slow monolith. It is a mature framework that runs on the big 3 (Windows, OS X, Linux) operating systems and is behind the fantastic cross-platform mobile app product, Xamarin. .NET has been cross-platorm for a while, and with the efforts of Mono, even runs on iOS and Android. .NET is indeed portable.
And recently, Microsoft did something really bold – they decided to open source .NET. From its mature and reliable lineage, .NET Core was born. Finally, the .NET Framework will be truly native, truly open source. The community can contribute to it and make it even better than it already is. This was a big move, a big announcement, and part of the “new Microsoft” that new CEO Satya Nadella has been building. The Microsoft developer community was buzzing with excitement over this. The rest of the developer community – a bit skeptical. After decades of closed source, these transitions take time. They don’t happen overnight. This was the beginning of something really, really right.
Flash forward from the announcement to today, about 18 months later. .NET Core is turning out to be AWESOME. I ported a few of my projects to RC2 easily, and one of the best parts about the experience was this very simple, project.json file that is at the root directory of every project. This file basically tells .NET Core which dependencies to include and how to output the result of a compile. It’s simple, it’s easy to read, and it’s aligned with the way many, many open source projects work. Open Source developers are used to this – a product, and a config file. Config, run, modify config, run again. Get it right, tweak, tune, rinse, test, push, deploy – REPEAT. This is the way we work.
Microsoft built this cool command line interface for the .NET Core Framework – the CLI. It’s what makes .NET Core as simple as:
$ dotnet new
$ dotnet restore
$ dotnet run
These commands use the project.json file and figure out what to do with code. What to do with all the C# and F# files that make up your project. Simple, elegant, and easy to understand and read. Everyone working with .NET Core has gotten used to it. It’s part of what makes .NET Core the “new Microsoft”. I was planning on blogging and extolling the virtues of .NET Core and how fun it was. But then something disappointing happened…
This week, I saw a tweet announcing a new blog post from the .NET Team, and was excited to see what’s new.
Changes to project.jsonhttps://t.co/Lytqwa7ID4
— .NET Team (@dotnet) May 23, 2016
I thought, “Uh, what’s this…?”. In reading this post, I had to consider for a second if this was April 1st and they were joking. I wish it was. So now, instead of doing a deep-dive on .NET Core goodness, I ask Microsoft…
Dear Microsoft,
This is it. This is your chance to go head-to-head with Node.js and all the developers using Javascript and cobbling together libraries. This is your chance to grow .NET into an amazing cross-platform, open ecosystem. This is the opportunity, right now, with .NET Core to build something the community will get behind. This is your chance for a new generation of programmers to be exposed to all the amazing ideas and methodologies you’ve spent decades building. It’s this. It’s this simple, little thing, this ONE file, this root of the beginnings of an idea that often starts with “Hello” and ends with “World”. It’s the thing that keeps it simple – like Go, which doesn’t even require a project file at all.
This decision you announced this week will be perceived as going back to unreadable XML .csproj throws the simplicity out the proverbial window, and will ruin all that you have built with the tooling around .NET Core. It won’t kill it, but it will severely limit it. It will turn people off and they will miss out. Tooling matters – a lot. I imagine that you felt the need to do this because to support complicated projects, the project.json structure would handcuff you. Maybe that’s true, or maybe it’s not, but either way, I see 4 solutions:
Option 1: Keep project.json, work around the complex projects, and make it work. Simple, or complex, depending on the size of the project. One file.
Option 2: Support BOTH project.json and myproject.csproj, and if both exist for the same project, display warnings or errors, and/or have different output assembly root targets for each project type.
Option 3: Stick to this decision to abandon project.json, and watch .NET Core grow slowwwwwly, and watch new frameworks rise up and pass you.
Option 4: Get Forked. The community outside Microsoft decides that this issue is forkworthy, forks the CLI, and preserves what has been built so far for project.json while keeping up with the rest of the runtime changes.
Option 3 is the beginning of the end. You may not see it now, but it will hurt you long-term. It will absolutely fuel the flames of the bad stigma Microsoft has in the open source community.
Option 4 is a question of Why? Why have two factions with different goals? That didn’t work out for io.js and Node.js, and it won’t work here either. It will spark mistrust, resentment, and the product will suffer. I really hope this doesn’t happen.I hope you decide to do the right thing and re-think this. Your long-term respect, adoption, and company growth are at stake. It may seem like a small decision now, but it’s these small decisions that have large impact. Look back on your own incredible history. Look within and you’ll find the answer right in front of you.
Sincerely,
Brett
This tweet should not exist. I hope they make it right.
The Complete Golf Handicapper for Windows was developed as an independent study project at the University of Arizona in 1991. It was my last semester in Computer Science, and I needed 1 more unit to complete my degree.
At the time in an academic setting, Windows was a very unknown, mysterious, and dismissed Operating System. I knew that Microsoft was on to something with Windows, and I knew it would be popular, so I taught myself how to develop for Windows with Charles Petzold‘s seminal book Programming Windows as my bible.
I hard-pitched my Computer Science Professor, Robert Drabek the idea of a native Windows GUI program where you could enter in your actual per-hole golf scores, compare them to the course certified par, and it would compute your handicap for that round, and keep history for all your rounds. It took some convincing – he wanted me to do it in Unix/X11, but I eventually talked him into letting me write it for Windows 3.0.
The only language back then to write Windows programs in was C. I used Microsoft’s C 6.0 Compiler, which was like $600, so I “borrowed” a copy from a friend and coded away.
I found this 3.5″ floppy disk in my garage the other day and thought it would be fun to see it, so I ordered a USB Floppy Drive from Amazon, and much to my pleasant surprise – 24 years later, the disk was still readable, and the code all there.
I post it to Github for historical significance under the “public domain” spirit, being how old it is.
It’s interesting to look at how low-level I had to write to get the simplest things done. Programming Languages and Application Frameworks have come a long way since 1991!
I’ve heard it’s never too late to learn a new language. For spoken languages I’m not sure I agree, but for programming languages – of course! The Go programming language started at Google in 2009, so I figured it’s about time I dug in with the Gopher. Go is “almost” systems level, but it does have garbage collection, so language purists may dismiss it as a systems level language just based on that. But with today’s processors, there’s a strong argument that Go can be a very successful all-purpose language. I guess I was feeling retrospective after meeting Charles Petzold recently and thinking about how much C programming I did in the 90s. His seminal, Programming Windows, was my daily bible study. So, I thought, well I’m not going back to C after over a decade with C#, but let’s give Go a try!
I checked out the documentation, took an online course, and I was go for Go. One of my colleagues, Darren Warner, had a recent devops task to connect to BitBucket’s API, iterate through the repos, and return status and information on any open Pull Requests. He wrote it Python – and it was a perfect porting candidate for diving into Go.
I broke out Visual Studio Code (AKA Visual Studio Ultralight), and coded away. My goal was for it to be as pure-native Go as possible, so I only used built-in Go standard library packages – no 3rd party add-ons. I found the HTTP package to be great, works as it should – light, nice and async. The JSON handling via maps are a bit verbose, and I’m sure I could re-factor some of that using any of the 3rd party JSON marshalling packages available, but again, I wanted to keep it as native and fast as possible. I used proper error handling and create new err on every possible fail condition.
To run, simply:
> go run pullrequests.go --ownername="bitbucket-repo-owner-username" --username="my-bitbucket-username" --password="my-bitbucket-password"
Check out the complete code on GitHub or BitBucket!
6
2014
Bitcoin and the Future of Money
Money plays a very substantial role in our lives – duh. It is the fabric of almost everything we do and how we do it. Where we live, what we drive, where we work, how we travel, what we eat, what we do in our spare time – it all revolves around money in some way. We’re born knowing nothing about it – yet some are born into it. It certainly isn’t something we instinctively know – yet it’s easily understood. Every society and culture has some sort of currency as a means of exchange. Since the beginnings of civilization, humans have invented methods to represent value via currency. Whether it be sea shells, diamonds, gold, stocks, the number in a computer at your bank, or the paper dollars in your pocket. Why are diamonds “worth” more than a handful of sand? Because diamonds are more scarce. Money means something because we as a collective society have decided it does.
I’ve been quietly studying Bitcoin for years, and today is the first day I’ve ever discussed it publicly. Today is a milestone day in the history of Bitcoin, after the mysterious inventor of Bitcoin, Satoshi Nakamoto, was “apparently” finally found, hiding in plain sight, living just an hour away from me. Well, maybe not. It seems that maybe Newsweek was wrong. Either way, today is the day I’ve decided share my thoughts. I first discovered Bitcoin in November 2011, when I read the seminal The Rise and Fall of Bitcoin in Wired Magazine. I was fascinated by it, but like the title implies, I thought it was dead, and that Bitcoin was over. About 6 months later, I started seeing that Bitcoin was alive and kicking, and I began again with a renewed interest. I studied the code, I read and re-read Nakamoto’s paper, and I immersed myself reading pretty much everything there is to read about Bitcoin. I read books about money, the history of money, how money is physically manufactured, how inflation works, the role of the Fed, the history of the gold standard, and more. All in an effort to wrap my head around something so complicated, yet so simple. As some of my friends will tell you – it’s a common topic when hanging out with me – Bitcoin and of course, Tesla. It sparked something in me that I hadn’t felt since my good friend and colleague, Paul Melmon, showed me a Web Browser (Netscape), for the first time in 1994. I knew that Bitcoin was something incredible.
Bitcoin is quite simply, “The Internet of Money”. As Bitcoin expert Andreas Antonopoulos has said, “Bitcoin is an invention, and it cannot be uninvented“. Bitcoin is here and it’s here to stay. I often get asked, “Well, what if they shut it down?”. My answer is usually something like, by “they”, I’m assuming you’re talking about the United States Government, and yes, governments can make it difficult or illegal to transact in Bitcoin in their country’s jurisdictions, but they cannot shut it down across the globe. No one can. It’s out there. It’s on the Internet and it will live in some form forever and it cannot be shut down. Last December, Bitcoin got national media attention as the exchange rate against the US dollar rose to over $1100 / 1 BTC. I knew in that moment then that it was the end of Bitcoin’s quiet growth among techies – everyone will now hear of it. When it hit the mainstream, I imagined all the pump-and-dump Wolves of Wall street scheming on how to best profit from it. And profit they will.
The way I see it, as of this post, the Bitcoin market cap in USD is about $8 Billion. That is an absolutely small number when you think about the value of all the currencies combined in the world. It will only grow as Bitcoin becomes more popular and is adopted and accepted in more places both on-line and off-line. Since the Internet, borders matter less and less, and the world needs a global currency. A currency where its value is unregulated (aka un-mismanaged), anti-inflationary, and scarce. Bitcoin is that – a currency that is built on cryptography and math and cannot be manipulated or forged.
News around Bitcoin emerges daily – some good, some bad. Companies are being formed each week around Bitcoin and merchants are adding Bitcoin as a payment option at a fast clip. If you have questions about Bitcoin there are numerous resources that can explain it better than me. Here’s a few: bitcoin.org, bitcoin on reddit, bitcoin on Google, a top VCs thoughts – just look around, but look smartly. Bitcoin is still VERY misunderstood. Like news about Tesla, try and filter the real news, the real truth from the fear, uncertainty, and doubt the way news organizations present information. They’re often flat-out wrong. Validate what you hear and learn for yourself. Find the truth. Question everything.
I often get asked, “How do I get started?”. I usually send people to Coinbase if they’re ready to buy Bitcoin for USD. It’s pretty easy to sign up. I’ve challenged a few of my friends over IM with frantic instructions to “Quick. Go here: http://blockchain.info, paste the wallet address in the IM. Do it in < 3 minutes I will send you some Bitcoin. Ask no questions. GOOOOO”. NONE of them have failed.
To the skeptics of Bitcoin – we’ve heard you before. You’re the same people that thought the government should “ban” or “regulate” the Internet. You’re the same people that think Tesla Motors is a bad idea. You’re the Telcos that wish you could ban VOIP. We know who you are and we see through you. We see the politician, Joe Manchin, and we question your motives and the banks behind your corruptness. Bitcoin will succeed because it fills a need – and over time will clear the obstacles thrown at it. Those that fear it, don’t understand it.
Bitcoin is better than the Dollar. Bitcoin is better than your credit card and your bank account. But Bitcoin is a baby – a very small baby. It’s in its infancy, just like the Internet was before it exploded around 1994. It will take a few years, but it will happen. Bitcoin is your world currency. It’s your open source technology. Get used to it. Now go get some Bitcoin!
Brett Morrison – Official Site
Links
- Brett @ Facebook
- Brett @ Flickr
- Brett @ Github
- Brett @ IMDB
- Brett @ Keybase
- Brett @ LinkedIn
- Brett @ Nostr
- Brett @ X
- Brett via Google
Archives
- November 2022 (1)
- December 2020 (1)
- August 2020 (1)
- March 2020 (1)
- August 2018 (1)
- March 2018 (1)
- May 2016 (1)
- July 2015 (1)
- June 2015 (1)
- March 2014 (1)
- August 2013 (1)
- February 2013 (1)
- November 2012 (1)
- September 2012 (1)
- July 2012 (1)
- October 2011 (1)
- March 2011 (1)
- January 2011 (2)
- December 2010 (1)
- April 2010 (1)