Update transactions.js

- Change start() API.
- More intelligent async way
- Fix bug