Avalon is a work-in-progress javascript (!!) social blockchain attempt for true-proof-of-brain
as a distribution mechanism. Here are the major improvements over 'STEEM':
- Single liquid currency
- Infinite monetization of contents through time
- More voting flexibility: no 'cap' to voting power, and you can spend 100% of your voting power in 1 vote if you wish
- Dynamic Inflation (reward pool = number of active users)
- Free and instant account creation (without username)
- Install MongoDB and run it on your machine
npm install
- Get your own keys with
node src/cli.js keypair
- Save your keys
- Add your keys to
start.sh
chmod +x start.sh
./start.sh
curl http://localhost:3001/block/<block_num>
curl http://localhost:3001/newKeyPair
curl http://localhost:3001/new
curl http://localhost:3001/account/<name>
curl http://localhost:3001/peers
curl http://localhost:3001/schedule
curl http://localhost:3001/allminers
curl http://localhost:3001/count
Once you have an account and balance, your account will start generating bandwidth and vote tokens which you can consume by transacting.
Necessary for all transactions:
- key: your private key
- user: your username
- target: the node owner to approve
node src/cli.js approveNode <key> <user> <target>
- target: the node owner to approve
node src/cli.js disapproveNode <key> <user> <target>
- receiver: username of the receiver of the transfer
- amount: number of tokens to transfer to the receiver
- memo: arbitrary short text content
node src/cli.js transfer <key> <user> <receiver> <amount> <memo>
- link: a short string to be used as the index of the content
- json: arbitrary json input. example:
{"string":"aye", array:[1,2,3]}
node src/cli.js post <key> <user> <link> <json>
- link: a short string to be used as the index of the content
- parent_author: the username of the author of the parent post
- parent_link: the link of the parent post
- json: arbitrary json input. example:
{"string":"aye", array:[1,2,3]}
node src/cli.js comment <key> <user> <link> <parent_author> <parent_link> <json>
- link: the link of the post to vote on
- author: the username of the author to vote on
- weight: the number of vote tokens to spend on this vote
- tag: arbitrary short text content
node src/cli.js vote <key> <user> <link> <author> <weight> <tag>
- json: arbitrary json input. example:
{"string":"aye", array:[1,2,3]}
node src/cli.js profile <key> <user> <json>
- target: the user to follow
node src/cli.js follow <key> <user> <target>
- target: the user to unfollow
node src/cli.js unfollow <key> <user> <target>
To create a transaction and export it to a file, you can use the sign
CLI tool
node src/cli.js sign <priv_key> <user> <tx> > tmptx.json
For example to approve a node owner and publishing it only 5 seconds later:
node src/cli.js sign 4L1C3553KRETK3Y alice '{"type":1,"data":{"target":"miner1"}}' > tmptx.json
sleep 5
curl -H "Content-type:application/json" --data @tmptx.json http://localhost:3001/transact
Will force the node to try to produce a block even if it's unscheduled. Useful for block #1.
curl http://localhost:3001/mineBlock
Manually force connection to a peer
curl -H "Content-type:application/json" --data '{"peer" : "ws://localhost:6001"}' http://localhost:3001/addPeer
mongo <db_name>
db.accounts.findOne({name:'master'})
db.blocks.findOne({_id: 0})
Shut everything down, then db.dropDatabase()
in mongo, and restart
If you are in the top 20 node owners, please set your profile as so:
node src/cli.js profile <key> <user> '{"node":{"ws":"ws://yourip:yourport"}}'