I've checked random 10-20 blocks here: one or two or three etc. And Voters always 0. If we check getblock hash | grep "stx" It's also always 20 records (probably only Buy, but not Vote). I have almost 100 matured tickets in the pool, and poolsize already close to 3000 tickets. Why is this happening? Why our tickets not casting votes?
Stake voting does not begin until block 4096: https://github.com/decred/dcrd/blob/master/chaincfg/params.go#L338
Nice to know! I'm waiting the POS pool to start mining! @davecgh is there any update? btw i'm happy you are here with us!!!
If i start POS with my own PC then when the POS pool will come out can i switch to the pool? (embletic question)
TicketPoolSize: 8192 So this is the maximum value? Before 4096 block we will get ~ 70000 expired unmatured tickets from mempool. As far I know there still unsolved issues with unlocking of those expired coins. On a testnet I just "lost" them.
I think that anything you successfully stake now will be 'locked' until voted or expired and returned. If the pool uses a different address to stake, which is most likely, you will not be able to move any coin until it is returned to your address.
Well that is not what I want to hear. Can we get some more clarification on this? I have quite a few staked myself already.
that is why i am neither staking or willing to write a guide. I just don't know how to do things manually & can't unlock coins if they dont vote. They will be locked for months in extreme cases, I dont want to take that risk unless i am voting on some important issue or a miner/pool is abusing the chain.
@davecgh Thank you. Few more important for understanding questions: 1. I'm not paying fee, when I see this message in the logs, right? Code: [INF] WLLT: Connecting block 0000000000001a0f4fe629f7db30f9232d5522a6697760f24d53be10bbaf1667, height 662 [INF] TMGR: Inserting unconfirmed transaction XXXXX [INF] WLLT: Successfully sent SStx purchase transaction XXXXX That ticket from "SStx purchase transaction" are still in the immature list. So this means, that for immature tickets I'll pay nothing, I will spend that fee only if someone insert ticket to the block and don't loose my fee if it will expire in mempool, right? 2. How exactly miners choose which tickets to insert to the block? Is it made automatically to choose tickets with higher fee? For example we have mempool of 100.000 tickets. 99.999 ticket purchase transactions was sent with the fee 0.05, and 1 with the fee 0.050001 Does this extra 0.000001 DCR guarantee, that the very next miner, who find the block, will automatically insert this transaction? 3. And the last one, can you explain this fields? TicketMaturity 256 - does this mean that after 256 blocks in mempool, ticket transaction will expire? And after 40960 blocks it can expire in the mature tickets pool. Code: TicketMaturity: 256, CoinbaseMaturity: 256, StakeEnabledHeight: 256 + 256, StakeValidationHeight: 4096
You are still paying fees, typically of 0.05 (see https://github.com/decred/dcrwallet/blob/master/wallet/createtx.go#L108) Tickets are chose by fees. Ticket expiry time is define in blocks here: https://github.com/decred/dcrd/blob/master/chaincfg/params.go#L329 The startup 4096 blocks is a "bootstrapping" phase where tickets are allowed to be accumulated and then the stake difficulty ramps up. After block 4096 the poolsize begins to fall, eventually bringing the stake difficulty done to where it settles in the market. The bootstrapping phases was done to ensure the continuity of the blockchain by widely distributing the initial batch of tickets amongst persons. Voting begins at block 4096, so bring your voting wallets and nodes online by 4095 (or earlier!).
So it's quite risky, right? If I'm trying to buy 100 tickets, I'm 100% loose not less than 5 DCR on fees. And there is no guarantee that these tickets will not expire soon as immature. Do I understand right, that these 0.05 DCR are minimal fee on the network, but not the step? So I can set fee to 0.05001 to beat those guys who use default fees.
You have 288 blocks before the transactions get ejected from mempool and in that time 5,760 tickets can be included. Right now there are about 2000 tickets in the mempool (getmininginfo). Yes, you should be able to raise your fees higher to get your tickets in faster. Any tickets not included in blocks are just unspent. You can recover them by resyncing your wallet from seed. You will not lose them.
that seems like its designed for emergencies. Who resyncs from seed everytime they want to spend coins.
btw can i change tx fee for normal tx somehow? Also is there anyway to send from a specific address & define a custom change address, basically coin control?
@ceejep why after each ticket purchase my balance became 0 ? So I cannot again buy tickets. See the flow below: Code: dcrctl --wallet getbalance default 0 > 20 dcrctl --wallet purchaseticket default 2 > Sstx ... dcrctl --wallet getbalance default 0 > 0 Is this the same issue as https://github.com/decred/dcrwallet/issues/2 ?
Thank you for the info @ceejep ! Once the PoS voting beings at block 4096, will there be a vote on the previous 4095 blocks or is it just 4096 and beyond?
Tickets are not chosen by fees. See 59a49bebfec290953e4388b411a92d63a4210350c4c59b192d0f8fe417cfbbdf or 9530fa1f9e548d202f6721a8386ee2648afda45021d44443d0e5cc165fb5667c. I have transactions from yesterday sill unconfirmed with fees of .07 and today's blocks are full of .05 fee confirmations.
@ceejep How to set transaction fee? Is "settxfee" working? If I do this: Code: dcrctl --wallet settxfee 0.06 > true And then send some transaction (buy ticket), the fee in gettransaction is still 0.05. Also sometimes fees less then 0.05, how is it possible if min is 0.05? For example here fee is 0.00258 DCR: https://mainnet.decred.org/tx/8e6b3eac555f475e6513159075e34e997ca3258bcfb063616a8f6bb2cb17a7fd