Author [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] Topic: 1500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [CANCELED]  (Read 3221 times)

0 Members and 1 Guest are viewing this topic.

Offline bytemaster


This bounty is very simple for all you altcoin developers out there:

1) Replace the proof-of-work with a signature verification for a ECC public/private key pair
2) Embed the first 64 bits of the most recent block into every transaction at the time it is created (Proof of Stake)
3) Transaction fees are 'destroyed' and money supply adjusted accordingly
4) Display all balances in the GUI as a percentage of the money supply * 1000000 as of the time they were SPENT... unspent TRX are displayed as percentage of the money supply as of the head block.
5) When entering amounts in the GUI, they should be entered in the same format they are displayed
6) The genesis block should be initialized by a .cpp containing a static array of PTS and BTC addresses and balances, this will require the network to support spending PTS and BTC addresses in the signature verification
7) Assuming a maximum of 100 GB per year in transactions, the minimum total cumulative transaction fees for the year should be 5% of the money supply.  Calculate the minimum fee per byte accordingly.  The 5% figure should be easily changed by adjusting a single constant.
8) Unspent outputs after 1 year expire and thus can be pruned because they cannot be spent, this forces people to spend their money once per year (Proof of Stake, and keeps the blockchain size to a maximum size).


The resulting alt-dac template will be added to our DAC developer toolkit as a quick way to bootstrap a dividend paying DAC.  When the Ripple Consensus Implementation Bounty is completed then that will be integrated to replace the Signature POW used here to create a decentralized system.

A Test network must be launched and used successfully
Blocks should be produced as soon as there is at least one transaction, but no faster than once every 30 seconds
The code should be structured such that the NAME of the coin can be changed in a single place.
« Last Edit: May 20, 2014, 02:09:47 PM by bytemaster »
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline pooleja

  • Newbie
  • *
  • Posts: 7
    • View Profile
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #1 on: December 31, 2013, 06:46:55 PM »
If anyone is planning on tackling this, I'd be interesting in helping out.  Let me know.

Offline barwizi

  • Hero Member
  • *****
  • Posts: 764
  • Noirbits, NoirShares, NoirEx.....lol, noir anyone?
    • View Profile
    • Noirbitstalk.org
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #2 on: December 31, 2013, 09:23:08 PM »
I'll put it in a repository if anyone is willing to collaborate, let's do it!!
--Bar--  PiNEJGUv4AZVZkLuF6hV4xwbYTRp5etWWJ

The magical land of crypto, no freebies people.

Offline toast

Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #3 on: December 31, 2013, 09:24:28 PM »
Following, add nmushegian to any githubs
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline barwizi

  • Hero Member
  • *****
  • Posts: 764
  • Noirbits, NoirShares, NoirEx.....lol, noir anyone?
    • View Profile
    • Noirbitstalk.org
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #4 on: December 31, 2013, 09:28:42 PM »
https://github.com/Nameshar/Divsshares


ok i'll add you immediately. i'll make the basic changes now, then we'll see what it is with the bigger stuff.

done
--Bar--  PiNEJGUv4AZVZkLuF6hV4xwbYTRp5etWWJ

The magical land of crypto, no freebies people.

Offline toast

Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #5 on: December 31, 2013, 09:42:33 PM »
Update the readme so we know what's done and what is left to do
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline barwizi

  • Hero Member
  • *****
  • Posts: 764
  • Noirbits, NoirShares, NoirEx.....lol, noir anyone?
    • View Profile
    • Noirbitstalk.org
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #6 on: December 31, 2013, 09:46:49 PM »
Update the readme so we know what's done and what is left to do

cloned to desktop so i'll just push the changes soon
--Bar--  PiNEJGUv4AZVZkLuF6hV4xwbYTRp5etWWJ

The magical land of crypto, no freebies people.

Offline arcke

  • Full Member
  • ***
  • Posts: 115
    • View Profile
    • Diaspora
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #7 on: December 31, 2013, 11:20:10 PM »
Im following this, see what I can do.

Git account

Just pulled your repository.
OpenPGP: 0x22d7e9cc35375665
PTS - PawnbhoiXhmkrKJEPAsCiwkpP81nRXJGTD
Diaspora profile - https://pod.orkz.net/u/arcke

Offline bytemaster

Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #8 on: December 31, 2013, 11:43:46 PM »
Added one little detail:

8) Unspent outputs after 1 year expire and thus can be pruned because they cannot be spent, this forces people to spend their money once per year (Proof of Stake, and keeps the blockchain size to a maximum size).

For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline barwizi

  • Hero Member
  • *****
  • Posts: 764
  • Noirbits, NoirShares, NoirEx.....lol, noir anyone?
    • View Profile
    • Noirbitstalk.org
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #9 on: January 01, 2014, 12:15:19 AM »
Added one little detail:

8) Unspent outputs after 1 year expire and thus can be pruned because they cannot be spent, this forces people to spend their money once per year (Proof of Stake, and keeps the blockchain size to a maximum size).

Ok, would that be a literal year or coin year?
--Bar--  PiNEJGUv4AZVZkLuF6hV4xwbYTRp5etWWJ

The magical land of crypto, no freebies people.

Offline barwizi

  • Hero Member
  • *****
  • Posts: 764
  • Noirbits, NoirShares, NoirEx.....lol, noir anyone?
    • View Profile
    • Noirbitstalk.org
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #10 on: January 01, 2014, 12:24:27 AM »
Code: [Select]
int64 GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMinDepth)
{
    int64 nBalance = 0;

    // Tally wallet transactions
    for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it)
    {
        const CWalletTx& wtx = (*it).second;
        if (!wtx.IsFinal())
            continue;

        int64 nGenerated, nReceived, nSent, nFee;
        wtx.GetAccountAmounts(strAccount, nGenerated, nReceived, nSent, nFee);

        if (nReceived != 0 && wtx.GetDepthInMainChain() >= nMinDepth)
            nBalance += nReceived;
        nBalance += nGenerated - nSent - nFee;
    }

    // Tally internal accounting entries
    nBalance += walletdb.GetAccountCreditDebit(strAccount);

    return nBalance;
}

int64 GetAccountBalance(const string& strAccount, int nMinDepth)
{
    CWalletDB walletdb(pwalletMain->strWalletFile);
    return GetAccountBalance(walletdb, strAccount, nMinDepth);
}


Value getbalance(const Array& params, bool fHelp)
{
    if (fHelp || params.size() > 2)
        throw runtime_error(
            "getbalance [account] [minconf=1]\n"
            "If [account] is not specified, returns the server's total available balance.\n"
            "If [account] is specified, returns the balance in the account.");

    if (params.size() == 0)
        return  ValueFromAmount(pwalletMain->GetBalance());

    int nMinDepth = 1;
    if (params.size() > 1)
        nMinDepth = params[1].get_int();

    if (params[0].get_str() == "*") {
        // Calculate total balance a different way from GetBalance()
        // (GetBalance() sums up all unspent TxOuts)
        // getbalance and getbalance '*' should always return the same number.
        int64 nBalance = 0;
        for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it)
        {
            const CWalletTx& wtx = (*it).second;
            if (!wtx.IsFinal())
                continue;

            int64 allGeneratedImmature, allGeneratedMature, allFee;
            allGeneratedImmature = allGeneratedMature = allFee = 0;

            string strSentAccount;
            list<pair<CTxDestination, int64> > listReceived;
            list<pair<CTxDestination, int64> > listSent;
            wtx.GetAmounts(allGeneratedImmature, allGeneratedMature, listReceived, listSent, allFee, strSentAccount);
            if (wtx.GetDepthInMainChain() >= nMinDepth)
            {
                BOOST_FOREACH(const PAIRTYPE(CTxDestination,int64)& r, listReceived)
                    nBalance += r.second;
            }
            BOOST_FOREACH(const PAIRTYPE(CTxDestination,int64)& r, listSent)
                nBalance -= r.second;
            nBalance -= allFee;
            nBalance += allGeneratedMature;
        }
        return  ValueFromAmount(nBalance);
    }

    string strAccount = AccountFromValue(params[0]);

    int64 nBalance = GetAccountBalance(strAccount, nMinDepth);

    return ValueFromAmount(nBalance);
}

rpcwallet.cpp

I believe this is where we meddle with for the balance
--Bar--  PiNEJGUv4AZVZkLuF6hV4xwbYTRp5etWWJ

The magical land of crypto, no freebies people.

Offline bytemaster

Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #11 on: January 01, 2014, 01:17:41 AM »
Added one little detail:

8) Unspent outputs after 1 year expire and thus can be pruned because they cannot be spent, this forces people to spend their money once per year (Proof of Stake, and keeps the blockchain size to a maximum size).

Ok, would that be a literal year or coin year?

I think that would be a literal year based upon timestamp in the block header.  With this chain there is no fixed number of blocks so you cannot estimate time by number of blocks.   
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline barwizi

  • Hero Member
  • *****
  • Posts: 764
  • Noirbits, NoirShares, NoirEx.....lol, noir anyone?
    • View Profile
    • Noirbitstalk.org
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #12 on: January 01, 2014, 08:03:07 AM »
In order to appease both sides, why not display both the actual money supply and the number of coins?
I am having difficulty wrapping my head around buying something for X%.

You will not have to think in terms of X% you will just see X BTS... from the user's perspective it is just a number.  The only place shares matter is under the hood, but that is an implementation detail.

so balance is (walletbts/totalbts ) * 100. and the user just sees this, number? That is doable.

I'll think more into cleanly writting that in c++.

Tell me more about the Signature PoW that you want.
--Bar--  PiNEJGUv4AZVZkLuF6hV4xwbYTRp5etWWJ

The magical land of crypto, no freebies people.

Offline barwizi

  • Hero Member
  • *****
  • Posts: 764
  • Noirbits, NoirShares, NoirEx.....lol, noir anyone?
    • View Profile
    • Noirbitstalk.org
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #13 on: January 01, 2014, 09:58:27 AM »
return ((nBalance/HashCash) * 100);

should suffice, I am now looking at getting the total supply from main.h

so since there is no recursion i have just added an include main.h

then int64 HashCash = nMoneySupply
« Last Edit: January 02, 2014, 11:38:14 PM by barwizi »
--Bar--  PiNEJGUv4AZVZkLuF6hV4xwbYTRp5etWWJ

The magical land of crypto, no freebies people.

Offline AdamBLevine

  • Sr. Member
  • ****
  • Posts: 492
    • View Profile
    • Let's Talk Bitcoin!
Re: 500 PTS - Bitcoin clone with Dividends, POS, and Signature POW [PENDING]
« Reply #14 on: January 01, 2014, 06:13:46 PM »
I'm very interested in the results of this bounty.  I'm creating a proprietary coin where the proof-of-work is non-computational, this would make a great transactional layer.

Email me at [email protected]

 

Google+