- Read the tutorials at ethereum.org
- Understand Ethereum Clients and Smart Contract Languages
- Smart Contract in-browser IDE ReMix
Development
You need an ethereum node to test against, i would recommend geth
because its well documented
DApp-building Frameworks
Trufle and Embark. The one that got me started is Truffle. (Before Truffle I watched a group of smart student interns last summer code stuff for a sleepless hackathon (albeit with terrific results) and shrank back in fear. Then Truffle came along and did a lot of the nitty gritty stuff for you, so you can start writing-compiling-deploying-testing-building DApps right away.) Another very similar framework for building and testing DApps is Embark. Between those two, I’ve only used Truffle, but there are very successful DApp devs in both camps.
APIs.
BlockApps.net is creating a RESTful API for DApps based on a Haskell node they run as a centralized service to save you the trouble of running a local Ethereum node. This departs from the completely decentralized model of DApps but is useful when running an Ethereum node locally isn’t realistic.
Development Tools
Community wiki What are the development tools for Ethereum?
I wasn't familiar with NPM, so had some similar issues. Simply running npm install solc
will attempt to install locally, which can present some permission and linking issues- this is likely the cause of the problem.
Instead, install solC globally by using $ npm install -g solc
(you may also want to try $ npm install solc --global
as I'm not sure which of these two commands fixed my issue).
If this is installed, check where it's been installed by running $ which solcjs
which should yield something like /usr/local/bin/solcjs
I found that I needed to also use Homebrew to install/build solC, following the installation instructions. Once Brew was done, I checked that solC was installed with $ which sol
.
Copy this directory, then once you've launched geth console
use it in the setSolc command, like > admin.setSolc("/usr/local/bin/solc")
With luck, you'll get a confirmation message, and the next time your run > eth.getCompilers()
the result should be something like ["Solidity"]
Best Answer
From Solidity - Binary Packages: