Challenge Overview
Project Overview:
Welcome to the SoftBank - Simple Node.js Coding Challenge for "Blockchain" Based Service Prototype! The goal of this challenge is to write a sample web application interacting with a blockchain platform using web3.js. This is one of the prototype challenge from a series of Blockchain Challenges.
SoftBank is a Japanese multinational telecommunications and Internetcorporation, with operations in broadband, e-commerce, Internet,technology services, and other businesses.
A blockchain, widely known as the base technology of Bitcoin, is a distributed database that maintains a list of transactional data records hardened against tampering and revision.
SoftBank is going to develop the new platform based on the blockchain technology and a variety of services on top of it.
- As a proof of concept, they are going to develop a prototype of Blockchain based Donation Service.
- In this service prototype, each donation is recorded into the blockchain and everyone can see how their money is distributed and used.
- Volunteers provide their computing resource to record the transaction in the blockchain.
Tips for Success: Asking questions early and getting PM's feedback is very important for the success of this challenge.
Competition Task Overview:
We are going to develop the donation prototype utilizing Topcoder in early February. Before that, we would like you JavaScript developers to know how easily you can write a code interacting with the blockchain platform.
The main task of this competition is to develop a sample web application with node.js and web3.js. You should be able to see your account balance, mining and send the currency to another user.
The sample application should interact with your local Ethereum. If you are not familiar with this platform. I recommend you to walk through Ethereum Frontier Guide.
Remember you connect to your local private network and set the low difficulty to mine quickly.
Screens:
- Top page: Links to other pages. No authentication required. Define the account info in the configuration file.
- Account page: Show your account id and balance.
- Blockchain Explorer page: Show the list of latest blockid, miner and age like xx minutes ago. (see https://www.etherchain.org/)
-- You may want to call web3 filter function
-- Note that you need to mine manually on geth console to see the list.
- Send Transaction page: You can send your account's currency to another account. The server should call eth.accounts and let the user to choose the destination.
Additional Features: If you are already very familiar with Ethereum and web3 development, you may want to do more work to show your skill. You may include these additional features in your submission.
- (optional) Sent Transaction List page: Show the recent sent transactions by you (and other accounts)
- (optional 2) Mining page: Start and Stop the mining from the web page. You may need to write a nodejs code to make a RPC call to the server for this purpose.
We do not expect cool design for this challenge. The raw html with no css would be fine. We will rate your code and features rather than UI quality.
We do not expect SPA (single page application) for this challenge either.
We expect we can use your web app with PC/smartphone standard browsers like Chrome, Safari and IE11.
You may use any JavaScript libraries if they are free to use. Do not forget to include the library names in your submission document.
Reference:
- web3.js
Please ask questions in forum for any clarifications needed on the spec requirements.