All Projects → wise-team → steem-wise-core

wise-team / steem-wise-core

Licence: MIT License
Vote delegation system for STEEM blockchain: core library for nodejs & browser use

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to steem-wise-core

finallycomments
Add Steem Comments To Any Website/Blog
Stars: ✭ 15 (-11.76%)
Mutual labels:  steem, steem-blockchain
alpha-web
1Ramp Alpha Web App
Stars: ✭ 19 (+11.76%)
Mutual labels:  steem, steem-blockchain
Steem Java Api Wrapper
An API Wrapper for Steem written in Java
Stars: ✭ 70 (+311.76%)
Mutual labels:  steem
steem-bot
Easy automation on top of Steem blockchain
Stars: ✭ 55 (+223.53%)
Mutual labels:  steem
glasnost
Glasnost is a GraphQL app server for Golos/Steem
Stars: ✭ 23 (+35.29%)
Mutual labels:  steem
Utopian.io
Utopian.io Frontend - Utopian wants to reward open-source contributors!
Stars: ✭ 101 (+494.12%)
Mutual labels:  steem
steem-python
A Python library/toolkit for the Steem blockchain
Stars: ✭ 18 (+5.88%)
Mutual labels:  steem
Rpc
Golang RPC client library for Steem - https://steem.io
Stars: ✭ 49 (+188.24%)
Mutual labels:  steem
DTrip
DTrip - Traveler's app on STEEM blockchain.
Stars: ✭ 18 (+5.88%)
Mutual labels:  steem
Steemconnect
Signer app for Steem
Stars: ✭ 167 (+882.35%)
Mutual labels:  steem
Steem Python
The official Python (3) library for the Steem Blockchain.
Stars: ✭ 162 (+852.94%)
Mutual labels:  steem
Devportal
Steem Platform Developer Documentation.
Stars: ✭ 114 (+570.59%)
Mutual labels:  steem
exxp
A plugin to bring wordpress and hive together.
Stars: ✭ 30 (+76.47%)
Mutual labels:  steem
Steem Fossbot Voter
A curation bot built for the Steemit social media platform, decides which posts to vote for and casts vote on behalf of a registered user
Stars: ✭ 92 (+441.18%)
Mutual labels:  steem
Steem
The blockchain for Smart Media Tokens (SMTs) and decentralized applications.
Stars: ✭ 1,915 (+11164.71%)
Mutual labels:  steem
Steemconnect.js
SteemConnect JavaScript SDK
Stars: ✭ 66 (+288.24%)
Mutual labels:  steem
esteem-desktop
eSteem Desktop - Application to get paid for blogging, curating and more...
Stars: ✭ 15 (-11.76%)
Mutual labels:  steem
steemsnippets
A collection of snippets for steem programming
Stars: ✭ 44 (+158.82%)
Mutual labels:  steem
steemprojects.com
Steem Projects is a directory of apps, sites and tools build by Steem community
Stars: ✭ 27 (+58.82%)
Mutual labels:  steem
steemphp
steem php client api
Stars: ✭ 25 (+47.06%)
Mutual labels:  steem-blockchain

Steem WISE (core library)

npm License PRs Welcome Chat Wise operations count

Vote delegation system for STEEM blockchain: common library for browser & node. Wise allows you to securely grant other users your voting power under conditions specified by you.

Important links:

How does WISE work?

In short: WISE allows you to delegate your vote under strictly defined criteria.

For example, you know that @andrejcibik is a great web designer. Thanks to WISE, you can give him the opportunity to use your vote:

  • in a safe way
  • under strictly defined rules (the post must meet the rules you had set). In this case, you will allow to use your vote only for posts with the # design tag.
  • with limited voting power

How is this possible? Using WISE, you place on Steem blockchain the rules under which @andrejcibik can use your vote. In the meanwhile, you run a daemon, which iterates blockchain head waiting for a voteorder from @andrejcibik to emerge. When the daemon encounters the voteorder — it performs validation. It checks if the post and weight in the order meet the criteria set previously in the rules. If the result of the validation is positive — daemon casts a vote. If not — a custom_json with information on rejection is posted to the blockchain. / More info in manual.

Definitions

  • Delegator — a user who owns the voting power and allows the voter to use it.
  • Voter — a user who votes using the account of the delegator (with delegator's voting power)
  • Daemon — a service that is running on delegator's server, that receives vote orders sent by the voter and decides weather to vote as the voter asked, or to reject the voteorder.
  • Wise platform (planned) — an alternative to the daemon, which allows a user to be a delegator without setting up the daemon (instead the daemon is operated by us). Wise platform is under development now.
  • Ruleset — named set of rules under which specified voter can vote with the delegator's account. Ruleset has a name, has a voter defined and has zero or more rules specified.
  • Voteorder — a request from the voter to the delegator to vote for a given post. Contains name of the ruleset, author and permlink of the post.

The WISE protocol

Wise puts all of its data on Steem blockchain. There is no other way of exchanging messages. It uses a carefoully designed protocol, which has versioning enabled, and is already oriented for future development. (Here you can find both typescript definitions and a JSON schema of the protocol.)

Wise publishes the messages to the blockchain as custom_json operations. There are three types of messages that wise puts on the blockchain:

  • set_rules — allows a delegator to specify one or more sets of rules under which a voter can use voting power of the delegator.
  • send_voteorder — the voter asks the delegator's daemon to vote for a given post under specified set of rules (a ruleset)
  • confirm_vote — contains confirmation that the delegator voted for the post, or a rejection with a message why the voteorder was rejected (which rule was not fulfilled and why).

Structure of the Wise project

Wise has several tools and is divided in the following way:

See all our repositories.

How to use the library in your project

Add this library to your npm project:

$ npm install --save steem-wise-core

Send voteorder:

let wise = require('steem-wise-core');

let voter = "jblew";
let postingWif = "...";
let voterWise = new wise.Wise(voter, new wise.DirectBlockchainApi(postingWif));

let delegator = "noisy";
let voteorder = {
    rulesetName: "co robia lekarze w kuchni? Leczo!",
    author: "article-author",
    permlink: "article-permlink",
    weight: 10000
};
voterWise.sendVoteorderAsync(delegator, voteorder)
.then(moment => console.log("Voteorder sent in block " + moment.blockNum))
.catch(error => console.error(error));

Where to get help?

You can also ask questions as issues in appropriate repository: See issues for this repository.

Contribute to steem Wise

We welcome warmly:

Before contributing please read Wise CONTRIBUTING guide.

Thank you for developing WISE together!

Like the project? Let @wise-team become your favourite witness!

If you use & appreciate our software — you can easily support us. Just vote for "wise-team" to become you one of your witnesses. You can do it here: https://steemit.com/~witnesses.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].