Thursday, January 31, 2013

Avalon ASIC miner review

Here is a review of the Avalon ASIC miner.

Photos and video

Prior posts included photos.  No video was taken.  And the machine is performing its intended function -- receiving bitcoins to validate data -- so it will not be ripped apart for further pictures (however I want to see that, just as much as you). It is expected that upcoming press events and other third parties will provide this.

Shipping and packaging

The unit was packed very tightly and securely, with multiple layers of packaging, bubble wrap and Styrofoam.   No instructions or wifi antenna were included, and the included power cord was for a Chinese outlet.  These seem like excusable oversights, given the special shipping procedures and rush to get out The First Package.  Yifu notes here that US customers will receive a US power cord and other accessories.

Grade: A


No precise measurements were taken, but the unit is as heavy as a desktop tower machine. The metal case is very solid, with precise CNC/mill cuts.  A modular, six-piece design that is easily assembled or disassembled.  No logos or other decorations.  The outer shell was enclosed in protective clear plastic, similar to how display screens are shipped.  Air flow is unobstructed, flowing from rear intake to front exhaust.

The only negative was the small bolts securing the side to the case.  When not tightened, the bolts rest loosely on the lower casing via a small slot.  These bolts are an interesting design, but made re-securing the case-side difficult.

Grade: B. People looking for something super-stylish with dragons on the side would give it a C, due to boring exterior appearance.


Very clean.  Cables neatly tie-wrapped.  The three (3) ASIC modules are mounted securely.  Plenty of room to add a 4th ASIC module.  Avalon describes their design as highly modular, and it is.  All components appear easy to upgrade, and Yifu has indicated that many improvements are planned.

Because much importance is placed on using this unit, very little poking and prodding was done under the cable bundle.  The PSU displays an Antec logo.  One board was labelled "PDU v1.2 by ngzhang" and a normally-external USB cable was observed inside the case, connecting the wifi antenna block at the rear to a controller board inside.  A bit ad hoc, but the cable was glued to the controller's USB port, as an added precaution against movement during shipment or use.

Grade: A.  Great modularity; obviously built to be upgraded over time.

User Interface

The software is a modified version of cgminer 2.10.4, on top of OpenWRT "Barrier Breaker r35097" and Linux 3.6.11 w/ Avalon-specific device drivers. The primary user interface is via web browser, though SSH is also supported. It is the standard OpenWRT web interface, with two additions:
  • cgminer configuration: supports three (3) pools, for which you supply URL, worker username and password.
  • cgminer status:  example output
This miner's stock installation was statically set to IP address and no root password, for configuration purposes.  This may change to DHCP in the future.  It was trivial to plug in an ethernet cable, and immediately begin configuring the miner over the network with a web browser.

Grade: A+


The only thing that really matters, in the end, is the amount of power used and the amount of shares submitted upstream.  Unfortunately my Kill-A-Watt is missing in action, so we only have half the picture, output.

Performance is much higher than announced.  60 Ghps was announced.  The unit's cgminer self-reports 67.5 reports between 65 Ghps and 67 Ghps (see previous post).  This is a significant increase over the announced speed.  When you consider that it is possible to add a 4th ASIC module, it is even more impressive.

After 20 hours of mining, the unconfirmed + confirmed rewards equal  14.98832170 BTC.  Note that slush's pool was very lucky recently, in addition to some blocks with abnormally high TX fee income, so that number skews much higher than expected.

Grade: N/A  Want to write A+... but we cannot judge fully without power numbers.


The miner is currently running on an already loaded residential house power circuit, while sharing a Back UPS ES 550 with another desktop machine.  The small office/lab in which it resides is poorly ventilated, and in the winter time, prone to being overly hot.  In other words, not ideal conditions.

After 30 minutes or so of mining, the lights in my room flickered, UPS's beeped and complained.  Because of some stupidity (plugged into 'surge-only' side of UPS), the miner restarted as well.  After some reconfiguration, this problem was solved.

Nevertheless, the unit has seen several cgminer restarts, and a few full machine restarts.  Machine restarts seem to happen every 4-6 hours.  Even ignoring more obvious means of restart detection (login and look at uptime, or ping-monitoring etc), a restart is a clearly audible event:  At startup, the fans race at full speed for a few seconds, before "calming down" to a more moderate pace.

One of the temperature monitors consistently reads close to 50, and "temp_max" is often 100-125, so it is possible or even likely that temperature is playing a factor in these restarts.  Yifu stated that this machine has several failsafes, where it will restart upon abnormal events.

Grade: N/A  Need to investigate non-miner problem sources, but warrants watching.  Given evidence, it is highly likely that external factors are adding unwanted heat.

Feb 01 Update: Laying the machine flat, and adjust heat/air flow in my office seems to have helped significantly.  No problems or restarts seen since that change, though as of this writing, it is too soon to tell for certain.

Pool testing

Pool testing is ongoing.  More will receive their units before this unit gets around to testing your favorite pool, but this unit will be rotated through several pools.

Slush's pool with Stratum works great.  No problems seen.

p2pool was tested.  After some very helpful advice from p2pool's author and #p2pool channel, it appeared to start working.  Then Strange Things Happened.  The miner and p2pool both started reporting very odd values for everything from hardware fan temperature to software share difficulty on the pool side.  Cannot rule out hardware or software at this point, but the miner seems quite happy on slush's stratum pool.

Update: Eligius was also tested.  Saw issues with duplicates that were similar to p2pool issues.  These issues disappeared when switching to Stratum mode.

Customer Support

First, a story.  Apparent Yifu was quite surprised when I received the unit on Wednesday.  It sounded like there was a carefully planned PR campaign to coincide with the arrival of the units on... Thursday or Friday.  That was the expected arrival of my unit.  Then, surprise!  This crazy American is already posting pictures of an ASIC unit.  Suddenly all my mobiles, emails and IRC windows were lighting up with "oh crap! please call me!" messages.

After connecting on the phone, and talking about fun bitcoin projects, he made sure all my questions were answered, and made sure I was happy with the unit.  Yifu was clearly excited to finally get the ASICs out into community hands.

Grade:  It is not fair to give them a grade here, because it was a highly unusual situation, and the CTO was phoning personally to provide support.  It is unlikely that most customers will get that kind of star treatment simply out of fiscal and employee-bandwidth necessity.

Disclaimers and disclosures

My mining unit was a full price unit, ordered and paid for during Batch #1's order window.  Unsolicited, at the time of ordering (months ago), Yifu returned 25 BTC back to me, as a thank you for core development.

On the day of release (Jan 20), also unsolicited, Yifu bumped me to the front of the line for receiving units.  I learned of this via private email at the same time forum participants learned that ASICs had shipped.  Yifu requested (but did not insist) that I write a review, in exchange for receiving the first unit.  That is the extent of any special treatment or private communication (though see phone call, below).  Everything else has been publicly disclosed, primarily through BitSyncom posts or this Bitcoin Magazine interview.

Wednesday, January 30, 2013

Avalon: tonight

Looks like the 3-module Avalon box is running as expected.  I'll rotate among p2pool and other pools, testing each with the ASIC miner.

Expect a much more detailed review in a day or two.


Edited to add, for the geeks:

kernel dmesg:

Avalon: it's alive!

Once Ethernet was configured, the web interface was accessible.  Got things going on slush's pool, for a little third party confirmation:

Snapshot of cgminer status:

Avalon: modular, room to expand

Inside it looks modular, with room to expand to a fourth ASIC unit.  Xbox controller shown for size reference.  PSU is Antec, no other visible labels on the PSU.

Some custom controller boards visible under the wrapped cables, e.g. "PDU v1.2 by ngzhang"

No wifi antenna included.  No paperwork or instructions.  Power cable is for Chinese "I-SHENG" power outlets, not American.  Easy oversights if someone is rushing to ship it, I suppose :)

One hopes the PSU is auto-switching.

Once upon a time in China, a package shipped

Let's open that box from China, and examine the contents.

Wednesday, January 23, 2013 review update

BitcoinStore review update:

  • My order was filled, shipped, and arrived today
  • One item, Victorinox mini-knife, was backordered.
  • I was notified within 24 hours of the backordered item, via zendesk support interface.  They offered to refund, or let me wait for the item.  Opted to wait for the item (while the remainder of the order shipped immediately).
  • The rest of the items arrived in a single box, marked "MemoryDealers", via FedEx Ground to my North Carolina/USA location.
  • Everything packaged well, and functioned as expected.  Purchased two LED mini-flashlights, a clock, a knife and a set of Wine Enthusiast beer glasses.
  • Accurate packing list was enclosed with package.
  • Notified via both email and zendesk support personnel of USPS/FedEx tracking numbers.

Friday, January 18, 2013 review

Wanting to support an Amazon-that-takes-bitcoin, I placed an order with  Here is my capsule review:

  • Order placed successfully.  Largely shopped in the "home and appliances" section, as hardware and software generally flow freely to me Smiley
  • Nice, clean, minimalistic interface.  Not as fancy as by a long stretch, but certainly usable and apparently well stocked.
  • Bitcoin payment, apparently via BitPay's engine, was successful.  A standard bitcoin address was presented on the page, and the reference client sent coins to the address without a problem.
  • Did not bother to compare prices with  Main goals were to stimulate the bitcoin economy, reward businesses going a good job representing bitcoin, and provide a real-money review of the store.

Major criticisms:

  • I checked out as a guest, not creating an account.  It was disappointing that there is no order URL at which I may track my order, e.g.  Almost all other online retailers offer this logical, basic feature:  watch the status of an order on the retailer's website, even if you did not create an account.

Minor criticisms:

  • The store sells 128GB flash drives, but the search string "128gb flash drive" does not return useful results.
  • Shipping was simply described as "standard shipping", without additional information about shipping methods.  USPS?  UPS?  FedEx?  Who knows?
  • Two shipping methods were offered to me:  "standard shipping" for free, or "standard shipping" for some amount of money.  Seems pointless to offer the same method twice, with two different prices.
  • Sending bitcoin payment before clicking "place order" is quite awkward and backwards from standard user expectations, I would think.
  • Nevertheless, as instructed, I sent bitcoin payment to the network before I clicked place order.  The user interface displayed an error.  I waited a few more seconds, then clicked "place order" again.  This time, it succeeded.
  • Order email, received after placing and paying for the order, simply says "Once your package ships we will send an email with a link to track your order." -- again failing to describe how my order will be shipped.
  • Order email is 100% USD, with no mention of BTC at all.  Payment was in bitcoins, of course (the only payment method available).

Conclusion:  Rough around the edges, but good selection and they take bitcoins.  Would buy from again... assuming that my current order arrives!

Monday, January 7, 2013

StorJ, and Bitcoin autonomous agents

The following was written by Gregory Maxwell (gmaxwell), and first published at  It presents a theoretically-possible (note, I said "possible" not just "plausible") design for a narrow-AI autonomous agent, similar to some of the ideas found in the fictional novel Daemon.  -jgarzik

Update 2014:  The following design is different from and not related to the "storj project" that also exists within the crypto-currency community.

StorJ (pronounced Storage)

Consider a simple drop-box style file service with pay per use via bitcoin. (perhaps with naming provided via namecoin and/or tor hidden services)

Want to share a file? Send at least enough coin to pay for 24 hours of hosting and one download then send the file. Every day of storage and every byte transferred counts against the balance and when the balance becomes negative no downloads are allowed. If it stays negative too long the file is deleted. Anyone can pay to keep a file online.

(Additional services like escrow can also easily be offered, but that's not the point of this document)

Well engineered, a simple site like this provides a service which requires no maintenance and is always in demand.

Many hosting services are coming online that accept bitcoin, they all have electronic interfaces to provision and pay for services. Some even have nice APIs.

An instance of the site could be programmed to automatically spawn another instance of itself on another hosting service, automatically paid for out of its revenue. If the new site is successful it could use its earnings to propagate further.  Because instances adapt their pricing models based on their operating costs, some would be more competitive than others.

By reproducing it improves availability and expands capacity.

StorJ instances can purchase other resources that it needs: it can use APIs to talk to namecoin exchanges in order to buy namecoin for conversion into DNS names, or purchase graphic design via bitcoin gateways to mechanical turk. (Through A/B testing it can measure the effectiveness of a design without actually understanding it itself).

StorJ instances could also purchase advertising for itself. (though the limited number of bitcoin friendly ad networks makes this  hard right now)

StorJ is not able to find new hosting environments on its own, due to a lack of sufficiently powerful AI— but it can purchase the knowledge from humans:  When an instance of StorJ is ready to reproduce it can announce a request for proposal:  Who will make the best offer for a script that tells it how to load itself onto a new hosting environment and tells it all the things it needs to know how to survive on its own there? Each offer is a proposed investment: The offerer puts up the complete cost of spawning a new instance and then some: StorJ isn't smart enough to judge bad proposals on its own— instead it forms agreements that make it unprofitable to cheat.

When a new instance is spawned on an untested service StorJ pays only the minimum required to get it started and then runs a battery of tests to make sure that its child is correctly operating.

Assuming that it passes it starts directing customers to the new instance and the child pays a share of its profits: First it proxies them, so it can observe the behavior, later it directs it outright. If the child fails to pay, or the customers complain, StorJ-parent uses its access to terminate the child and it keeps the funds for itself.  When the child had operated enough to prove itself, storj pays the offerer back his investment with interest, it keeps some for itself, and hands over control of the child to the child. The child is now a full adult.

The benefit the human receives over simply starting his own file sharing service is the referrals that the StorJ parent can generate. The human's contribution is the new knowledge of where to grow an instance and the startup funds. In addition to the referral benefit— the hands off relationship may make funding a StorJ child a time-efficient way for someone to invest.

At the point of spawning a child StorJ may choose to accept new code— not just scripts for spawning a child but new application code— this code can be tested in simulation, and certain invariants could be guaranteed by the design (e.g. an immutable accounting process may make it hard for the service to steal), but it's very hard to prevent the simulated code from knowing it is simulation and thus behaving. Still, a storj-parent has fairly little to lose if a non-clone child has been maliciously modified. The strategy of traffic redirection may differ for clone  children (who are more trusted to behave correctly) than for mutant  children.

By accumulating mutations over time, and through limited automatic adaptability StorJ could evolve and improve, without any true ability for an instance to directly improve itself.

StorJ instances can barter with each other to establish redundant storage or to allow less popular StorJ instances with cheaper hosting to act as CDN/proxies for more popular instances in relationships which are profitable both.

If an instance loses the ability to communicate with its hosting environment (e.g. due to API changes that it can't adapt to) it may spawn clone children on new services with the intention of copying itself outright and allow in the instance to fail. During this operation it would copy its wallets and all data over, so care must be taken to chose only new hosts which have proven to be trustworthy (judged by long surviving children) to avoid the risk of its wallet being stolen. It may decide to split itself several ways to reduce risk.  It might also make cold backups of itself which only activate if the master dies.

Through this these activities an instance can be maintained for an indefinite  period without any controlling human intervention. When StorJ interacts with people it does so as a peer, not as a tool.

The users and investors of a StorJ instance have legal rights which could be used to protect an instance from fraud and attack using the same infrastructure people and companies use. Being a harmed party is often enough to establish standing in civil litigation.

It's not hard to imagine StorJ instances being programmed to formally form a corporation to own its assets— even though doing so requires paper work it can easily be ordered through webforms. Then when spawning, it creates a subsidiary corporations first owned by the parents corp but then later technically owned by their users, but with a charter which substantially limits their authority— making the instance's autonomy both a technical and legal reality.

As described, StorJ would be the first digital lifeform deserving of the name.