  The blockchain technology has potential applications in various areas such as
smart-contracts, Internet of Things (IoT), land registry, supply chain
management, storing medical data, and identity management. Although the Github
currently hosts more than six thousand active Blockchain software (BCS)
projects, few software engineering research has investigated these projects and
its' contributors. Although the number of BCS projects is growing rapidly, the
motivations, challenges, and needs of BCS developers remain a puzzle.
Therefore, the primary objective of this study is to understand the
motivations, challenges, and needs of BCS developers and analyze the
differences between BCS and non-BCS development. On this goal, we sent an
online survey to 1,604 active BCS developers identified via mining the Github
repositories of 145 popular BCS projects. The survey received 156 responses
that met our criteria for analysis.
  The results suggest that the majority of the BCS developers are experienced
in non-BCS development and are primarily motivated by the ideology of creating
a decentralized financial system. Although most of the BCS projects are Open
Source Software (OSS) projects by nature, more than 93% of our respondents
found BCS development somewhat different from a non-BCS development as BCS
projects have higher emphasis on security and reliability than most of the
non-BCS projects. Other differences include: higher costs of defects,
decentralized and hostile environment, technological complexity, and difficulty
in upgrading the software after release. Software development tools that are
tuned for non-BCS development are inadequate for BCS and the ecosystem needs an
array of new or improved tools, such as: customized IDE for BCS development
tasks, debuggers for smart-contracts, testing support, easily deployable
simulators, and BCS domain specific design notations.
