Hi all,
New to Solarcoin, introduced to the coin since SMA announced a simple way to register for SLR and I have to say I like every aspect of it!
I have Staking enabled and got the following message:
Status: conflicted
Date: xx/xx/2019 xx:xx
Source: Generated
Credit: 0.0xxxxxxx SLR
Net amount: +0.0xxxxxxx SLR
Transaction ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Generated coins must mature 500 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.
Whereby 'x' represents a value.
A few questions:
1 - What exactly does this 'status: conflicted' mean?
2 - Is it normal that this happens?
3 - When does this conflict happens?
4 - Am I waiting for an interest or not?
5 - I added recently a list of new 'addnode=xxx.xxx.xxx.xxx' addresses to the SolarCoin.conf, originally the file only contain one entry. Has this error any relationship to the reported conflict error?
I hope someone can explain in detail? Thanks in advance!
1 - So imagine there are hundreds of people all running wallets trying to make the next block in the blockchain, its a competitive process and the exact time when a new block will occur is unknown. Lets say you and I make a block at almost exactly the same time, I send my block "A" to my network peers, you send your block "B" to your network peers. Somehow we all as a network have to agree on which block A or B is the real block and which is the one we will all discard - if you talk to blockchain people this is the "consensus mechanism" they refer to; how to reach consesnsus between anonymous peers with no leader to make descisions? The descision is made by whichever block gets the next block made on it first, if A gets block A+1 before B gets a new block, A is the victor and your B block is discarded; the idea here is that on average the more peers receive a block and work on it, the more consensus it has - if my block reached 100 people and your block reached only 50 people, mine is twice as likley to make a new block as yours.
2 - Yes its normal, as I said its a natural part of the consensus mechanism that allow blockchains to operate with no central control.
3 - As I said, it happens regularly, its just a part of the uncoordinated nature of block-chain.
4 - When your block B was discarded, its as if it never existed, so all the interest you were owed in that block, is still owed, plus the additional interest since then; you didnt lose anything.
5 - Addnodes just help you get connections to other peers so that has had no impact on this. The speed of your up (outbound) internet connection and the total number of connections you have might have a slight impact. If you only have 8 connections, set your node up for listening, it might help a tiny bit.
P.S. Welcome to SolarCoin!
First of all thanks so much for the explanations, it is much clearer now. I have a few additional questions:
a) With regards to your answer in point 4: In the History tab in SolarCoin (windows) wallet there in the entry with the entry with type 'interest'. Status is still stuck at Status : conflicted".
The interest (supposed to?) be earned is listed here in the History tab, but the value is not added to the Windows SolarCoin wallet main page's Spendable / Staked / Unconfirmed / Total balance / Transaction list. Does this mean that the interest value will be discarded / not added to my balance?
b) With regards to your answers in point 4: The Transaction ID listed in the earned interest does not get any info back when searched in the Blockchain? How can that be explained? Looks to me that the earnings from this Staking attempt will remain zero?
c) With regards point 5: Yes I do have only have 8 connections. How do I set up my node for listening? Could you please explain how to do this?
d) Will the status change of the failed staking attempt in the future or will it remain as "Status: Conflicted" in the History tab?
Thanks in advance for the effort to take to answer my questions.
a) So you did in fact make a real valid block, but later it was discarded, so it still shows in your wallet history, but its not in the "real" chain so it wont show as a part of your wallet total balance.
b) The transaction is not in the block-chain that we all agreed was the "real" one, the explorer only shows you the valid chain, it doesnt show you transactions/blocks that were rejected. That is why you didnt lose any interest.
d) I dont properly remember now, but I think after a while it may vanish from your wallet history. In any case, its not going to effect your wallet balance.
c) So let me preface by explaining what listening is. When you start your wallet it sends connection requests to upto 8 peers (addnodes), those peers have to be setup to allow (listen to) inbound connections from other computers. So with your 8 connections you are sending requests out, but you are not allowing any to come in, if no-one allows incoming, then the network would not exist. Allowing outside connections onto your network from the internet, does of course carry some slight risk, in my view extremely low risk (I operate a listening node, I feel its safe), but you should make your own descision.
So due dilligence warnings aside, depending how your network is setup there are a couple of things you may need to do, the easy way and the harder way:
The easy way:
If your router supports UPnP and has it enabled, simply go to your SolarCoin Wallet > Settings > Options > Network tab and check the "Map Port using UPnP" box and Apply. Probably worth restarting, you might not instantly get more than 8 connections, but if its working, within an hour you should start to see more than 8 connections.
The hard way:
If you dont use UPnP for security reasons, then you must go to your router and port forward TCP port 18188 from the internet to the machine that you run your SolarCoin wallet on. I cant tell you exactly how to do that as every router is different, but you should be able to google port forwarding for your make/model. I never encountered a firewall problem on Windows, but you may need to allow inbound connections from anywhere to local port 18188 on your actual PC firewall if that still isnt working.
Aside from just getting more connections, you can actually see if you have inbound connections by going to Help > Console > Console tab and type "getpeerinfo", it will give you a list of IP addresses and there is an "inbound" : true if you are getting inbound connections.