A Personal Rant on Trading Bitcoin

I would say the summary of my trading practices thus far can be summed up into, “I’m an idiot.”

It’s up. it’s down. Oh, my gosh I could have made $10k. Oh, no I’ve lost $300. Ack! What does everyone else think?… Just an average day in a Cryptocurrency trader’s life. But not for the above average trader’s life. Much of the same advice you’d get from a financial planner is applies to Bitcoin and other currencies.

Research the Company

Who are the developers of the Currency you’re thinking about buying? Who are their investors? Have they successfully launched a currency before? Have previous projects they worked on failed in a spectacular fashion?

There are a lot of motivations for attempting to create a new Altcoin. Notoriety, solving social or economic problems, or greed are some of the most popular themes of Cryptocurrency. Following the successes or failures of a development team will guide you in figuring out what motivates them. Don’t get stuck into thinking greed is bad motive. Several self-interested projects made a lot of money for the development team and early investors who knew when to sell.

Research the Product

The development teams are going to market their Cryptocurrency to garner investment interest, adoption, and higher trading prices. That makes it easy to find information like what problems are they trying to solve or new Blockchain technology are they trying to introduce? Are they trying to bring a solution to Apple products or Mobile devices where others aren’t?

Invest for the Long Term

If you’re full time job is staring at charts and day trading, you can still do that with cryptocurrencies. You just need to adjust to the increased volatility. By Volatility I mean 40% up or down in a day… 30 minutes even. But if your trading on the intraday bumps you might find a higher portion of your profits going to fees and splits. So, I say invest for the long term. If I had followed the advice in these sections, I’d have a lot more disposable income.

Personal Stories

I met a guy while working at Dell that told me a story of the $300,000 240 MB Hard drive he bought. Yes, MB. Well he cashed in some of his employee purchase plan stock for a new hard drive when the stock wasn’t worth all that much. At the time of telling me the story the Hard Drive was worthless and the amount of stock he sold for it was worth $300,000. Oh, how we laughed. And now I’ll relate for you the story of the guy who bought a pizza with Bitcoin when it was worth pennies and now that Bitcoin would be worth Millions. You’d think I’d learn from others, but I too have purchased a $700 tablet for $4,000 worth of Bitcoin at today’s prices.

But I think more disappointing are opportunities I missed due to fear.

Stratis is an Altcoin someone pointed out to me in December of 2016. The price was under $0.05. I thought well let’s wait and see what happens. The interesting thing about Stratis is the development team’s partnership with Microsoft and building their platform on the .NET framework. This means that the products a developer would write to interact with their Blockchain technology can run natively on Windows Operating Systems without a lot of additional translation code or “wrapper” code. The price went up to something over $0.07 and I said, “Ok I’ll buy some.” And invested $300. I woke up one morning a few weeks later and the price is over $0.30, and has been hovering between $0.40 and $0.50 the last two weeks. The currency had a lot of earmarks of something I thought was a good investment, and I kick myself for not putting in $1500 or more at the $0.07 price.

DASH, which was launched as Dark Coin, I used to mine. The name Dark Coin certainly sounded cool to the kids and it was marketed as the first truly anonymous currency because the network had the function called mixing where your bitcoin cold be split up and mixed with fractions from other Dark Coin on the network without additional entries in the blockchain thus removing the traceability of the transactions. When fintech investing in Blockchain technologies started becoming serious business they grew up and changed the name to DASH. I had mined 8 DARK when I had a hard drive failure and said well I won’t both with that currency any more. At that time, Dash was only worth around $1.00, so I was out maybe $10. At the same time Stratis had its big jump DASH goes to $100 and has stated above $50. Now why didn’t I keep mining when the difficulty was low and amass a vast fortune? I was able to restore my Dark Wallet from a backup and retrieve my 8+ DASH, but I could have had 100 over the course of that year.

Check out the stellar raise of PIVX. I looked at it when it was less than $0.03. It’s trading at $1.38 today… $1,500.00 would be worth over $100,000, and it happened extremely fast.

Stay tuned!

Wikipedia – Bitcoin

https://en.wikipedia.org/wiki/Bitcoin

Bitcoin Forum – The most popular place to discuss all Cryptocurrencies

https://bitcointalk.org/index.php

Cryptocurrency Trading Charts

https://coinmarketcap.com/

Most Profitable Mining Calculations

http://www.coinwarz.com/cryptocurrency

Some Exchanges

https://poloniex.com/

https://btc-e.com/

https://www.gdax.com/

https://www.bittrex.com/

 

 

 

 

 

Cryptocurrency Mining Software and Pools

In “Mining Cryptocurrencies” I wrote briefly about CPU, GPU and ASIC mining. All of these mining methods require software to get work (the complicated math problem) from the Cryptocurrency’s network and send it to the hardware to calculate.

Also, note there are several different kinds of math problems currencies use related to their protocol. I won’t go into a lot of detail, first because I’m not a math wiz, second because I could devote several posts to one protocol and there are several, but most importantly because that’s not the approach I’m taking in my blog. I’m here to help someone who doesn’t need to know every last tiny nuance of every Cryptocurrency to get started.

I will however list some Currency and Protocol pairs. Bitcoin uses SHA-256, Litecoin and DNote use scrypt, Dash (which used to be Dark Coin) uses X11, Ethereum uses Ethash, and ZCash uses Equihash. If you’ve taken my advice in previous posts you’ve checked out http://www.coinwarz.com/cryptocurrency and know you know what some of the items on that page are.

Going back to mining software… As I stated above, the hardware performs the math, but software is required to gather the math and send it to the hardware. That means a device is required to communicate with the hardware. In the case of CPUs, GPUs this usually means a computer with a hard disk to install the software. The first versions of ASIC miners were USB devices for computers and the software would detect them to send work to them. Standalone ASIC devices still have a CPU,  network interface and software, but these software is flashed to a chip or written to an SD card plugged into an integrated computer like a Raspberry Pi.

Nearly all mining software is available for free from Github.com. Start by either going to a mining pool or the coin’s community page to find links and instructions. Standalone ASIC miners have their own software. Upgrades are usually available from the manufacturer.

In most cases the software only provides mining for one protocol. That’s not always the case, some developers have created software that can receive a command from a pool that mines multiple pools to switch which currency the software is mining.

Mining software is almost exclusively written in C++. Which doesn’t mean a lot to many people. But it allows for two main advantages. First the software can be easily put together for multiple OS, Linux and Windows being the most popular. Secondly the software is modular, or it can be broken up into pieces.  Developers can take a miner currently available on Github for one currency and replace the parts they need for another currency and thus all the existing support for GPUs and OS come along for the ride. Likewise, if a new family of video cards is released it’s easy to add a new piece of code to support those cards. When you’re looking for mining software make to you download the right package for your operating system and your video card family (Windows/Nvidia or Linux/AMD etc.) Some software packages have both video card families available in each OS package, but you’ll find from reading through reviews that one software might work better with your hardware than another.

There is scant little mining software for Apple products. Mostly because Apple sucks. Yeah I said it. But also, because you can’t add and upgrade the Video cards for GPU mining and Apple locks down what software is made available to their systems. I guess the company is scared mining software might over heat the CPU.

As a funny side note, my son was actually trying to mine Litecoin on some of our old Android phones. He had to place them under box fans to keep them from over heating and in the end he never made enough to = $0.01, but the price of Litecoin is on the rise again so who knows.

Solo vs. Pool

I introduced a new term “pool” above, so now is a good time to talk about solo vs. pool mining. Solo mining means you use your hardware to mine blocks directly on the block chain. This can be profitable for the first 10 minutes a new currency network is up. Once the currency becomes popular and there is always a handful of miners who seem to have invested $1 billion in hardware to have the best Hash Rate, it’s time to find a pool.

Pool mining means miners pool their Hash Rates, or combine their work. The Pool itself gets the block reward and divides it among its member miners per the amount of work each contributed to finding the block. There are several different methods of determining how much each miner gets of the reward, but in general the miner who does the most work get the highest percentage. One of the bits of information you’ll get from Coinwarz.com is how much currency you should generate a day. Keep in mind that with Solo mining you only receive a reward when you find the block, but then you get the whole reward. You may not actually get that reward for several weeks… months? in the case of Bitcoin, unless you have spent $1 billion in your mining farm you will not see a reward ever. However, with pool mining, because you earn some of the reward every time a block is found, you should see your balance growing at the rate Coinwarz.com has calculated for you.

In the early days when most Bitcoin enthusiasts were altruistic and rebels against the world, all the software was open source and the pools were free. That’s not 100% the case anymore. Some of the best mining software for Altcoins has a DevFee built-in. For some part of your mining day the software will disconnect from your pool and connect to the developer’s pool and account and mine for them to reimburse them for the time they spent developing the awesome software you’re using. Likewise, mining pools almost universally charge a fee, 1 or 2% of your earnings to pay for the upkeep, fees and maintenance of the servers you’re using.

Up next a look at networks and wallets.

Stay tuned!

Wikipedia – Bitcoin

https://en.wikipedia.org/wiki/Bitcoin

Bitcoin Forum – The most popular place to discuss all Cryptocurrencies

https://bitcointalk.org/index.php

Cryptocurrency Trading Charts

https://coinmarketcap.com/

Most Profitable Mining Calculations

http://www.coinwarz.com/cryptocurrency

Some Exchanges

https://poloniex.com/

https://btc-e.com/

https://www.gdax.com/

https://www.bittrex.com/

 

 

 

Mining Cryptocurrencies

Cryptocurrencies like Bitcoin, well almost exclusively Bitcoin, have been getting some play time in the popular media. Hopefully you understand what they’re talking about, if not check back to my earlier post “A Change in Direction”. Now you might be asking yourself, “How do I get some?” One option is to “Mine” your Cryptocurrency

Mining Cryptocurrencies is essentially using electricity to generate Cryptocurrency. Not all Cryptocurrencies can be mined. For those that can, the process involves looking for a new block in the currency’s blockchain. The miner who finds the block is rewarded with some units of the currency.

The process of looking for a block involves math, complicated and difficult math. The sort of math that would take you or me 30-45 minutes to do by hand with a calculator. Additionally, the more miners doing the same math for a currency increases the “Difficulty” of the math. New or less popular currencies are easier to mine until they become more popular. The more miners or powerful mining hardware working away at the currency, the more the completion rate of the calculation must be slowed down to keep the reward rate stable. The “Difficulty” of the calculations is proportional to the “Hash Rate” of the currency’s network and must adjust to speed up or slow down the reward frequency.

Mining can be done on a computer’s CPUs, though the video card(s’) GPU(s), or with application-specific integrated circuit (ASIC) hardware.

CPU Mining

CPU (Central Processing Unit) mining is the easiest to write software and therefore usually the first option made available when a new currency is made available. It’s also extremely poor performing. By poor performing I mean the Hash Rate (Number of calculations performed in a second) is not high enough usually to pay for the amount of electricity used to run the CPUs. What? Why is that? Remember, “The process of looking for a block involves math, complicated and difficult math.” A computer’s CPU isn’t built for just doing math calculations. A CPU also responsible for sending commands to all the hardware in a system (network card, sound card, USB devices, etc.)

GPU Mining

GPU (Graphical Processing Unit) mining is a little harder to write software for because there are so many variations of Video cards. New CPUs are released every few years and the command structure doesn’t really change, just the speed at which those commands are executed. Additionally, there are only two CPU manufacturers (AMD and Intel). New Video Card Hardware is released every year, sometimes twice a year, and while there are two main video card platforms (AMD, and NVIDIA) the platforms are manufactured by 20+ different providers. GPU mining software must be compatible with several different versions of each platform’s hardware and updated whenever a new version is released. The payoff is a higher Hash Rate. Why are GPUs better for this? First, a GPU is engineered to do a lot more complex math. All those complicated lifelike video games you love, require a lot of math to display and manipulate the visual environment.

ASIC Mining

Application-specific integrated circuit (ASIC) are platforms where the Processing Unit is designed to perform only one action. In the specific case of Cryptocurrency mining, and ASIC miner is a chip that only has the instruction required to perform the complicated calculations for a designated set of currencies. These devices are the most efficient for mining Cryptocurrencies because they can’t do anything else like send commands to your hard drive or tell the back ground of a first-person shooter to move as you hold down the ASDW keys.

I will post a more in depth discussion about my personal experiences and the experiences reported by others in trying to use ASIC mining hardware. I will just provide this cautionary teaser: AMD, Intel, and NVIDIA are old, well established, insured, companies with large customer bases. Cryptocurrency ASIC manufacturers are largely new companies without any reputation or large amounts of R&D funds, and in many cases, no support whatsoever.

Up next, my fun experiences with ASIC miners and then a detailed guide into mining software.

Stay tuned!

Wikipedia – Bitcoin

https://en.wikipedia.org/wiki/Bitcoin

Bitcoin Forum – The most popular place to discuss all Cryptocurrencies

https://bitcointalk.org/index.php

Cryptocurrency Trading Charts

https://coinmarketcap.com/

Most Profitable Mining Calculations

http://www.coinwarz.com/cryptocurrency

Some Exchanges

https://poloniex.com/

https://btc-e.com/

https://www.gdax.com/

https://www.bittrex.com/

 

 

 

I’m not a DBA, But I Play One on TV: Part 1 – Hard Drives

This is the first in a series of posts relating to hardware considerations for a SQL Server 2008 R2 or later server. In Part 1 – Hard Drives I’m going to discuss RAID levels and what works for the Operating System (O/S) versus what works for various SQL Server components.

As a consultant I always go through the same hardware spec dance. It sounds like this:

Q: How much disk space does your application database require?

A: Depends on your utilization.

Q: Ok, what’s the smallest server we can give you for a proof of concept or 30 day trial?

A: Depends on your utilization.

Q: Well we have this VM with a 40 GB disk, 8 GB RAM, and a dual Core virtual processor available. Will that work?

A: Depends on your utilization, but I seriously doubt it.

SQL Server 2008 R2, depending on the flavor will run on just about any Windows Server O/S 2005 and newer, Windows 7 and Windows 8. This isn’t really a discussion about the O/S, more of how the O/S services SQL Server hardware requests. At the hardware level the O/S has two main functions managing memory and the hard disks and servicing requests to those resources to applications.

In a later post we’ll look at memory in a little more depth, but for the hard disk discussion we’ll need to understand the page file. The page file has been part of Microsoft’s O/S products since NT maybe windows for workgroups, but I don’t want to go look it up. The page file is an extension of the physical memory that resides one or more of the system’s hard disks. The O/S will decide when to access this portion of the Memory available to services and applications (processes) requesting memory resources. Many times when a process requires more memory than is currently available the O/S will use the page file to virtually increase the size of the memory on the system in a manner transparent to the requesting process.

Let’s sum that up. The page file is a portion of disk space used by the O/S to expand the amount of memory available to processes running on the system. The implication here is that the O/S will be performing some tasks meant for lightning fast chip RAM, on the much slower hard disk virtual memory because there is insufficient chip RAM for the task. By default the O/S wants to set aside 1.5 times the physical chip RAM in virtual memory disk space. For 16GB of RAM that’s a 24GB page file. On a 40GB drive that doesn’t leave much room for anything else. The more physical chip RAM on the server the bigger the O/S will want to make the page file, but the O/S will actually access it less often.

Now let’s talk RAID settings! You may find voluminous literature arguing the case for software RAID versus Hardware Raid. I’ll leave that to the true server scientists. I’m just going to give quick list of which RAID configurations O/S and SQL Server components will perform well with and which will cause issues. I’m going for understanding here. There are plenty of great configuration lists you can reference, but if you don’t understand how this stuff works you’re relying on memorization or constantly referencing the lists.

Summarization from: http://en.wikipedia.org/wiki/RAID

But this has better pictures: http://technet.microsoft.com/en-us/library/ms190764(v=SQL.105).aspx

RAID 0 – Makes multiple disks act like one, disk size is the sum of all identical disk sizes and there isn’t any failover or redundancy. One disk dies and all info is lost on all drives.

RAID 1 – Makes all the disks act like one, disk size is that of one of the identical disks in the array. Full fail over and redundancy.

RAID 2 – Theoretical, not used. Ha!

RAID 3 – Not very popular, but similar RAID 1, except that each third byte switches to the next disk in the array.

RAID 4 – One drive holds pointers to which drive holds each file. All disks act independently buy access by one drive letter.

RAID 5 – Requires at least 3 identical drives. All but one are live at all times the last acts as a backup should one of the other drives fail.

RAID 6 – Like RAID 5 except, you need at least 4 identical disks and two are offline backup disks.

RAID 10 or 1+0 – A tiered approach where two groups of RAID 1 arrays form a RAID 0 array. So two fully redundant RAID 1 arrays of 500GB made up of 3 500GB disks come together to form 1 RAID 0 array of 1TB. Sounds expensive, 3TB in physical disks to get 1TB accessible drive.

At this point I’ll paraphrase the information found here: http://technet.microsoft.com/en-US/library/cc966534

SQL Server Logs are written synchronously. One byte after the other. There isn’t any random or asynchronous read requests performed against these files by SQL Server. RAID 1 or 1+0 is recommended for this component for two reasons 1. Having a full redundant backup of the log files for disaster recovery. 2. RAID 1 mirrored drives support the sequential write I/O (I/O is short for disk read and write Input and Output. I’m not going to write that 50 times.) of the log file process better than RAID configuration that will split one file over multiple disks.

TempDB is the workhorse of SQL Server. When a query is sent to the databases engine all the work of collecting, linking, grouping, aggregating and ordering happens in the TempDB before the results are sent to the requestor. This makes TempDB a heavy write I/O process. So the popular recommendation is RAID 1+0. Here’s the consideration, TempDB is temporary, and that’s where it gets its name from. So redundancy isn’t required for disaster recovery. However if the disk your TempDB files are on fails, no queries can be processed until the disk is replaced and TempDB restored/rebuilt. RAID 1+0 helps fast writes and ensures uptime. RAID 5 provides the same functionality with fewer disks, but decreased performance when a disk fails.

TempDB and the Logs should NEVER EVER reside on the same raid arrays, so if we’re talking a minimum two RAID 1+0 arrays, might be more cost effective to put TempDB on RAID 5.

Application OLTP (On-line Transaction Processing) databases will benefit the most from RAID 5, which equally supports read and write I/O. Application databases should NEVER EVER reside on the same arrays as the Log files and co-locating with TempDB is also not recommended.

SQL Server comes with other database engine components like the master database and MSDB. These are SQL Server configuration components and mostly utilize read I/O. It’s good to have these components on a mirrored RAID configuration that doesn’t need a lot of write performance, like RAID 1.

A best practice production SQL Server configuration minimally looks like this:

Drive 1: O/S or C: Drive where the virtual memory is also serviced – RAID 1, 80 to 100 GB.

Drive 2: SQL Server Components (master, MSDB, and TempDB) data files – RAID 1+0, 100-240 GB

Drive 3: SQL Server Logs – RAID 1+0, 100-240 GB

Drive 4: Application databases – RAID 5, As much as the databases need…

Where to skimp on a development system? Maybe RAID isn’t available either?

Drive 1: O/S or C: Drive where the virtual memory is also serviced, 80 to 100 GB.

Drive 2: SQL Server Components (master, MSDB, and TempDB) data files Application database files, As much as the databases need…

Drive 3: SQL Server Logs, 100-240 GB

Optimal Production configuration?

Drive 1: O/S or C: Drive – RAID 1, 60 GB.

Drive 2: SQL Server Components (master, MSDB) data files – RAID 5, 100GB

Drive 3: SQL Server Logs – RAID 1+0, 100-240 GB

Drive 4: Application databases – RAID 5, As much as the databases need…

Drive 5: TempDB RAID 1+0, 50–100 GB

Drive 6: Dedicated Page File only RAID 1, 40GB. You don’t want to see what happens to a Windows O/S when the page file is not available.

Buffer I/O is the bane of my existence. I have left no rock unturned on the internet trying to figure out how this process works. So if someone reading can leave a clarifying comment for an edit I’d appreciate it. This I do know, the buffer is kind of like SQL Server’s own page file. A place on a hard disk where information is staged before it is written to the memory pool managed by the O/S. If your system is low on memory and using the page file extensively you will see Buffer I/O waits in the SQL Server Management Studio activity monitor. Basically, this indicates that the staging process is waiting on memory to become available to move data out of the buffer and into the memory pool. The query can’t write more information to the buffer until there is space open in the buffer for it. In fact if the query resultset is big enough, the whole system will begin to die a slow and horrible death as information cannot move in and out of memory or in and out of the buffer because so much information is going in and out of the page file. This is why I highly recommend splitting up the disks so that SQL Server does not have to fight with the page file for Disk I/O.

Look if you have 10 records in one table used by one user 2 times a day that VM with a 40 GB disk, 8 GB RAM, and a dual Core virtual processor available is going to do just fine. But you might as well save some cash and move that sucker onto Access or MYSQL or some other non-enterprise level RDBMS.

 

 

Agile: The Consultant’s Savior

Thanks to Jeff Nall for contributing to this post.

How many times have you delivered to spec and hit your milestone only to get the “That’s not what I asked for.” feedback? Guess what, your customers don’t always know what they want much less what they really need. They might think they do, but if that were the case they would have been able to staff the project internally or with some new direct hires.

I once worked on a project where the company actually hired a consultant to translate corporate jargon into generic tech and software development terms. Apparently, they were struggling to find new hires or consultants with the skills they were looking for. Additionally, the resources they would gamble on were so lost trying to understand requirements, the development departments turned into revolving doors. The “Demystification Consultant” had a full time job translating specs and RFP’s so vendors could understand what to bid on. It might have been cheaper to adopt language learning methodologies and switch to a common communication device, illustrations.

In Agile that translates to frequent demonstrations of development progress. Rather than placing the entire project’s success on a nearly finalized demonstration of a product 2 weeks from delivery, Agile iterative development practices frequent illustrations of what the product will be so stake holders can approve or make changes with enough lead time to actually see the modifications implemented.

How does a consultant benefit from this process? Well like it or not, no matter what the contract says, an unhappy customer can remove a consultant and withhold payment if the customer believes they can argue in court that the contract was violated. Consultants are burdened with not just delivering what was promised on the agreed schedule, but also executing the contract in such a way that the customer wants to work with them again or act as a reference for other potential clients. Conducting frequent demonstrations: illustrates your responsiveness to your customers’ needs, reaffirms progress made on the deliverables  and keeps the lines of communication open for timely reactions to change. Agile is the best defense against “That’s not what I asked for” in the final days of your project.

The customer isn’t always right–they’re hiring you to answer the question for them. It’s your job to read between the lines of what the customer says they want and give them what they need. The point is the answers you get from someone who isn’t an expert in YOUR field can’t logically be the solution to the problem. You’re dealing with breadcrumbs, not road maps.