Cryptocurrency payments

Recently I accepted a cryptocurrency payment. I did it mostly to learn the process, advantages and pitfalls first hand. The process was straightforward, although it did require getting a digital wallet and setting up an only crypto account. I chose Exodus for my wallet and BlockFi as my broker.

I’m still evaluating the extent to which I want to accept crypto payments. Cryptocurrencies have certain advantages. For example, for certain international customers, it’s a relatively easy way to pay me or perhaps the only way to pay me, although certain countries like China restrict cryptocurrencies. Assuming the value of the cryptocurrency rises, it can also be something of an investment. I got a 25% return on the bitcoin I was paid in over one month. Of course cryptocurrency prices can vary widely over short time periods, so it’s just as easy to lose 25% in one of these currencies over a given month too.

They also have certain downsides. You can’t buy much with cryptocurrencies, so to spend the “money”, you have to sell it in your local currency and move it into a traditional bank account. Also, the price of cryptocurrencies can fluctuate wildly over time. A currency of value doesn’t fluctuate that much over time, which is why I’ve only accepted U.S. dollars until recently. So to my mind these cryptocurrencies that exist outside of regulation and are subject to supply and demand really aren’t currencies.

The client paid me in bitcoin. bitcoin is a “dirty” currency in that it requires a lot of electricity to create new bitcoins. It’s estimated the electricity used just in creating bitcoin is equal to the electricity consumed by the Netherlands. Most of this electricity comes from carbon-burning power sources, contributing to climate change and global warming.

Consequently, if I accept payment in cryptocurrencies in the future, it’s going to be in more environmentally benign and relatively stable cryptocurrencies. Right now, ethereum qualifies.

My services will still be priced in U.S. dollars. You would have to pay me the equivalent in ethereum. But I do want to be clear that I don’t want to be paid in ethereum or any digital currency. If you can pay me in U.S. dollars, that’s what I prefer. In some cases though not accepting ethereum would be unprofitable, so I will make exceptions.

Assuming I accept cryptocurrencies for work I do for you, I will provide an address you can use to pay me at the appropriate time.

July 2021 work summary

I kept plenty busy in July. Like most months for the last year or so, much of my work was focused around one commercial client.

Our main accomplishment this month was finally finishing up a custom OAuth interface to phpBB. The interface ties into many aspects of the business including a shop and accounting system with many points of entry all of which had to work consistently and reliably.

You may be familiar with OAuth if you go to sites where you can login with Google, Yahoo or other major web sites. OAuth allow for an external service to authorize your access on a different site through a complex exchange of codes and tokens. phpBB supports only three OAuth services natively: Google, Facebook and Bitly.

The client’s backend OAuth system is definitely a “roll your own” service so it required lots of low level integration challenges. I’ve learned plenty about OAuth in the process, enough to realize that it’s challenging, very low level and not for the faint of heart.

Toward the end of July we buttoned up we hope the last of the code changes needed but discovered a new area: mobile device display, that had been overlooked. So I am now deep into more styling work, which is where I started the project back in March 2020. Once this is done we should finally be at a code complete event, and the work will go into formal testing.

At this point I’m probably 80% of the way through the project, which has been challenging but very profitable. Working with one of their lead developers has been a great and at times humbling experience.

Here’s a summary of work I did for other clients in July:

  • Additional effort for a client I did work for in June. The main issue seems to be slow to nonexistent serving of ads on the view topics page, likely because more than two ads are served on the page. Doubleclick seems to be blocking the serving these ads. I suggested he needs to contact them to find out why this is happening. I also reviewed all enabled extensions for the database changes they made. With the exception of the YouTube videos extension, all appeared in order. I had to add auto increment to the primary keys of three tables created by extensions in use.
  • I updated a board from phpBB 3.3.3 to phpBB 3.3.4, principally to address the reCaptcha V3 bug fixed in version 3.3.4. I reapplied the logo.
  • I upgraded a board from phpBB 3.0.14 to phpBB 3.3.4. I installed the Milk style and placed the old logo. I added the American English language pack and disabled the contact form. I set up reCaptcha V3 spambot countermeasure. I also changed PHP to version 7.4. Client will need to play with Milk style control panel to fine tune its theme and look. Smooth upgrade, no issues. Later, the client had additional work. He had retired a number of users. When this happens and you retain the posts, the old username becomes a guest username but the original account goes away. Reassigned a guest’s posts whose account was deleted to a new account with their name. Also since guests can’t see any forums, I opened the forum in the visitors category to read-only access, so the “this board has no forums” message no longer came up for guests.
  • Did a system check as user was having spam and other issues. I recommended upgrade to phpBB 3.3.4 to be able to use reCaptcha V3. I had a number of other recommendations summarized in an email. I was authorized to update phpBB to 3.3.4 so I did that, along with addressing all the other issues including setting up automatic https, reCaptcha V3, disabling the contact form, creating a custom style, deleted orphaned attachments and inactive users. Later, I did additional work to fix a number of outstanding issues related to having the code originally in yaBB (a Perl-based forum solution popular in the late 1990s). I fixed an avatar issue where the URL was bad and pointed to the old domain. I then had to write a throw away program to make posts with [img] tags in the post text store properly in the database post_text column, which has a different format. This took a lot of trial and error. Later, moved it over by exporting it and tediously correcting syntax errors in the exported SQL that caused it not to import. Later, I changed another deleted user posts to assign it to them rather than Anonymous.
  • Hosting issue: database user for board’s forums lost INSERT and DELETE privileges to the database. Worked with NS support to resolve the issue. After a lot of back and forth we eventually figured out that some automatic process was revoking these privileges for the database user when they exceed their database quota of 1 gigabyte. This didn’t appear to be a problem because when I ran a query to determine its size, it was about 600mb. I “solved” the problem by truncating the search tables, so the built in board search is no longer available. The hosting is Network Solutions which I don’t recommend. There were multiple calls, temporary work arounds and lots of intermediate staff to tediously deal with to get the level of support needed, then they wanted to charge the user for their support! If you are running out of database quota, a good host will at least give you a warning so your system doesn’t abruptly come crashing down. Not only does Network Solutions not do this, we had to figure out the underlying problem ourselves to solve the problem.
  • I updated a board from phpBB 3.3.2 to phpBB 3.3.4. I also updated the stop forum spam extension to version 1.4.0. I added a self-renewing (and free) Let’s Encrypt certificate and set up automatic redirect of http to http, changing the server settings in phpBB. I had to change the client’s php.ini to set UTF-8 as the default character set to get rid of an error on the ACP general page after the update.
  • For another commercial client I performed a few troubleshooting tasks. I troubleshooted an issue with the board rules extension, which apparently only supports the prosilver style. To get it to work with five other styles on the board, I had to place the extension’s prosilver style changes into folders in the extension’s style folder each with the name of the style. Helped with a renewal of a SSL certificate, a paid certificate, which wasn’t needed because I had earlier installed free Let’s Encrypt certificates for the site, so it was mainly a matter of canceling the bill for the renewed certificate. Locked two posts as requested. Added a person to the administrator’s group and provided instructions on how to add new users using the ACP Add user extension.
  • Updated a board from phpBB from 3.3.3 to phpBB 3.3.4 and the Multi Design style to version 1.1.7.