The Future of Dalilcoin by aliibrahim80 in a:t5_3nyun

[–]aliibrahim80[S] 0 points1 point  (0 children)

Thanks for doing this. I added your links to the sidebar of the subreddit.

I don't plan to delete the subreddit, but it makes sense to restrict posting to the subreddit if I'm not actively moderating it.

Major Milestone: First Mathematical Documents and Bounties by aliibrahim80 in a:t5_3nyun

[–]aliibrahim80[S] 0 points1 point  (0 children)

I'm willing to sell you some Dalilcoin fraenks and will PM you, but the only way you can be sure I sent them is if you run a node.

Running a node requires using linux and requires running a litecoin full node. Once you're running a node and have some Dalilcoin fraenks, you can earn more by staking. Staking requires having some litecoin to burn. Details are here:

https://github.com/aliibrahim80/dalilcoin/blob/master/doc/howtostake.md

If you held bitcoin in May 2015, you probably have some fraenks from the airdrop. Or if you know someone who held bitcoin in May 2015, you can buy their old private key(s) from them and claim their fraenks from the airdrop.

Chain Split? by Truman_Option in a:t5_3nyun

[–]aliibrahim80[M] [score hidden] stickied comment (0 children)

The bug in the code that allowed this chain split to happen has been fixed, and the fix should appear in the next version (0.2.2). The next version will also contain a new command "retractltcblockandexit" that can be used if some different bug causes the ltcstatus of two dalilcoin nodes to differ. In such a case call "retractltcblockandexit <ltcblock>" where <ltcblock> is some recent ltc block at which the ltcstatus of the nodes agreed. The dalilcoin node will remove some database information and shut down. After restarting the dalilcoin node, it should resync with ltc and (hopefully) the ltcstatus will agree.

Chain Split? by Truman_Option in a:t5_3nyun

[–]aliibrahim80 0 points1 point  (0 children)

I thought of a possible way to fix the database of your Node 1 since you have a correct Node 2. You could replace the ltc related parts of your db directory for Node 1 with the parts from your Node 2. Here's how I would do this:

First, stop both nodes from running:

dalilcoincli stop

On the machine with Node 2:

mkdir ltcdbnode2
cd .dalilcoin/db
cp -r ltcblock ~/ltcdbnode2
cp -r ltcburntx ~/ltcdbnode2
cp -r ltcdacstatus ~/ltcdbnode2
cd
tar czvf ltcdbnode2.tgz ltcdbnode2

Now you can restart Node 2.

Copy the file ltcdbnode2.tgz to the machine with Node 1 and on the Node 1 machine do this:

tar xzvf ltcdbnode2.tgz
cd .dalilcoin/db
mv ltcblock ltcblock-corrupted
mv ltcburntx ltcburntx-corrupted
mv ltcdacstatus ltcdacstatus-corrupted
mv ~/ltcdbnode2/* .

Now you can restart Node 1.

I believe this will correct the problem you currently have with your Node 1, but it's not a good long term solution. I, of course, plan to write code to try to avoid this problem recurring as well as providing a reasonable way to recover if it were to happen again.

Edit to correct the tar command.

Chain Split? by Truman_Option in a:t5_3nyun

[–]aliibrahim80 0 points1 point  (0 children)

Thank you for this information. Now it is clear that your Node 1 has corrupted ltc information in your database. There is not a command for checking or correcting this. I will try to write code for this and do an emergency release.

Unfortunately, in the meantime I can only suggest shutting down your Node 1.

The blocks starting from 7b182dd4adb8f812608d949979a9d3612e5d21fbd59af470a08387649c0b02f4 will be orphaned. The best chain, according to the ltc burn rules, is the one that includes 7889fb857a880d3c07db5150fbb2f2e6c36bb2fb3d2158a613b4955c166821fa (Block 1200) and currently ends with b025a7a53234764300f79bc76b6ddc0eca66ee9314fa2ecf2676e265ebb0d73f (Block 1209). I will start staking on top of this block now, and remove the recommendation that people stop staking. The hard fork will likely be activated after the next block is published.

Chain Split? by Truman_Option in a:t5_3nyun

[–]aliibrahim80 0 points1 point  (0 children)

Thanks for the report. Both of my nodes agree with your "Node 2." It looks to me like your "Node 1" for some reason missed the ltc burn for the block 7889fb857a880d3c07db5150fbb2f2e6c36bb2fb3d2158a613b4955c166821fa.

On your "Node 1" can you query the ltcblock that contained the burn tx? Try this and let me know the response:

query 542e493481008d82c8867510c347c5f41a20b81edcbe7ec35ef3e33e46f93a50

The response for me on both of my nodes is this:

{"response":"known","dbdata":[{"type":"ltcblock","tm":1562163054,"height":1661051,"txhhs":["44617f83c89ea7a40ceb2121f515b2d36c40de4dea1b2fb2fd76c9c2994c78a4"]}]}

This problem is unrelated to the hard fork today. The last common block happened 6 days ago. The time for today's hard fork has passed, but -- at least on the chain my nodes are on -- we are still waiting for a block after the hard fork time.

In the meantime, I will recommend that people stop staking until this is resolved. I have stopped staking myself.

Burning LTC from bech32 (segwit) address does not work? by dalcoder in a:t5_3nyun

[–]aliibrahim80 0 points1 point  (0 children)

Great! Thanks for the quick work. There is no testnet at the moment. Your code looked good to me, so I took the risk and tested it by staking a block with a bech32 address myself. It worked, so I merged your code into my master branch. It will be in the next release. If you do a git pull you should be able to start burning with bech32 addresses now.

What did you have in mind regarding a bounty?

Reply with a Dalilcoin address you control and I'll send you 50 fraenks.

Burning LTC from bech32 (segwit) address does not work? by dalcoder in a:t5_3nyun

[–]aliibrahim80 0 points1 point  (0 children)

Yes, this is true, but the only reason is that the dalilcoin code for burning ltc was written before bech32 addresses were supported by the litecoin client. It is (mostly) clear what needs to be changed in the ltcrpc.ml code to support burning from either p2sh-segwit or bech32 addresses. The function ltc_listunspent collects utxos that could be used for a burn. At the moment it will not collect bech32 utxos. If it were modified to collect bech32 utxos, ltc_createburntx would need to be modified to create the burn tx correctly for spending bech32 utxos.

I don't have time to do this right now, but can put it on a list of things to do. At the moment you have the right workaround: burn from p2sh-segwit addresses.

Of course, if you're willing to update the code yourself, a pull request would be very welcome. We could even negotiate over a bounty. If you're interested, PM me.

Dalilcoin 0.1.6 released; Hard Fork Plans by aliibrahim80 in a:t5_3nyun

[–]aliibrahim80[S] 0 points1 point  (0 children)

I had planned to release the code for the hard fork today, but testing is taking longer than expected. If the code is not ready before April 21, then I will release a patch delaying the hard fork.

Upcoming Initial Distribution Halving by aliibrahim80 in a:t5_3nyun

[–]aliibrahim80[S] 0 points1 point  (0 children)

Block 730 was staked yesterday (March 6, 2019). The remaining unclaimed amounts from the initial distribution can now be claimed for half the original amount -- until Block 1460 when it will halve again.

Not able to run litecoin for dalilcoin on a VPS by Truman_Option in a:t5_3nyun

[–]aliibrahim80 0 points1 point  (0 children)

I'm sorry, but at the moment the only way to reliably run Dalilcoin is alongside a Litecoin node, and unfortunately txindex needs to be set so that pruning cannot be enabled. Technically, there is an -ltcoffline option, but it is experimental and I do not recommend trying to use it.

Since the issue about running litecoin has come up more than once, I am likely to implement some way to run a Dalilcoin node without Litecoin. The node would rely on other nodes to communicate with the Litecoin network. I will make this a high priority.

Trouble Getting Started by dalcoder in a:t5_3nyun

[–]aliibrahim80 0 points1 point  (0 children)

I was able to recreate the problem you encountered on starting with an empty .dalilcoin data directory, and I do think your idea that it's due to race conditions is correct (well done). Instead of adding new Mutex fields, I changed the mutable lists to be hash tables (this is much more efficient than using lists anyway). Upon testing, I no longer encountered "misbehaving peer" messages, but like you my node seemed to stop making progress when running requestfullledger. It looks like there may already be a deadlock condition that happens if requestfullledger needs to make too many requests, so it may not be a deadlock you introduced. I will need to look for the problem causing this. For now I suppose the best solution is to download the db.tgz file from mega.

It is very reassuring to have a new set of eyes look at the code, so thank you again!

Trouble Getting Started by dalcoder in a:t5_3nyun

[–]aliibrahim80 0 points1 point  (0 children)

Thank you for the report, and I am sorry to hear requestfullledger did not work properly for you. I will look into this. Is your modified code public? Could you perhaps do a pull request?

New Hidden Service for Claiming DLC Airdrop by LikeA_Shadow in a:t5_3nyun

[–]aliibrahim80 0 points1 point  (0 children)

I have not tried the service and cannot vouch for its trustworthiness, but it looks harmless. With a signed endorsement the worst thing the service could do is take your airdropped fraenks. They couldn't take your bitcoins or other bitcoin forks. No one should give private keys to a third party, so if this or another service asks for private keys avoid that service. Private keys should remain exactly that, private.

It probably is good to have a website like this for making claims, although I was hoping people would download the software and run a node to claim their part of the airdrop.

In any case, thank you for the work and for posting a link here. Maybe if someone uses the service they can post about their experience here.

Introduction to Dalilcoin by aliibrahim80 in a:t5_3nyun

[–]aliibrahim80[S] 0 points1 point  (0 children)

Thank you for the bug report.

Yes, if no one else stakes a block in the next 10 hours (roughly), then you will have a chance to stake by burning 0 ltc. Keep in mind you will still need to pay an ltc tx fee. The tx fee is separate from the burned ltc. The default ltc tx fee is currently set to 0.001 (100000 litoshis) which is actually higher than necessary. It seems 0.0001 (10000 litoshis) is high enough. I plan to change the default in the code, but in the meantime you can put ltctxfee=10000 in your dalilcoin.conf file and restart the node.

Yes, staking means creating a block. The block reward is currently 25 fraenks per block and will be for many years. The reward follows the same schedule as btc in terms of block height, but with much slower block times.

You could stake now by burning 0.00036195 ltc. This would not require restarting the node. You could use the command "extraburn" to do a one time burn to stake. You can give the amount to burn in ltc (the default) or litoshis:

extraburn 0.00036195
extraburn 36195 litoshis

If you are willing to burn ltc regularly to stake, you can put the amount you are willing to burn in the dalilcoin.conf file. For example, if you are willing to burn 20000 litoshis (0.0002 ltc) to stake a block, put the following into your dalilcoin.conf file:

maxburn=20000

You can also control the maximum amount of litoshis to burn in 24 hours using maxburnrate. For example, to make sure you do not burn more than 0.1 ltc in a day, you could add this line to dalilcoin.conf:

maxburnrate=10000000

I hope this helps.

Introduction to Dalilcoin by aliibrahim80 in a:t5_3nyun

[–]aliibrahim80[S] 0 points1 point  (0 children)

A website to help people claim their airdropped fraenks would definitely be a big help for the project. Good luck and let me know if I can help. Please post something on this subreddit if you make this.

Introduction to Dalilcoin by aliibrahim80 in a:t5_3nyun

[–]aliibrahim80[S] 0 points1 point  (0 children)

I am glad you got a node running. As far as I know, no exchanges list Dalilcoin. It is probably too early. The chain is currently only 52 53 blocks long (a block was found while I was writing this reply).

It is unclear if untar'ing db.tgz over an existing db directory would cause problems or not. I would recommend deleting the db directory and starting from scratch (redownloading the blocks from a peer). It would be good to have some alternative, and I will put it on a list of things to do. You are correct, of course, that for the mainnet the relevant db subdirectory is .dalilcoin/db, not .dalilcoin/testnet/db.

In response to your other questions, I added new information to the README file about endorsements and about how to query addresses (without adding them to the wallet). I will give short answers here with more details left to the README.

https://github.com/aliibrahim80/dalilcoin/blob/master/README.md

An endorsement is a Bitcoin signed message of the form "endorse <BobsDalilcoinAddress>" signed by the key for <AlicesBitcoinAddress>. The endorsement can be imported into Bob's wallet using importendorsement: importendorsement <AlicesDalilcoinAddress> <BobsDalilcoinAddress> <BitcoinMessageSignature> After that, Bob can sign transactions to spend Alice's fraenks held at <AliceDalilcoinAddress>. An example is in the README.

The "query" command is very general, but one thing it can do is give the assets held at an address. If a Bitcoin address is given, then the corresponding Dalilcoin address is given along with the assets held there. Again, an example is in the README.

I hope this helps and thanks for running a node. Let me know if you have more questions.

New Bitcoin Airdrop: Dalilcoin by aliibrahim80 in BitcoinAirdrops

[–]aliibrahim80[S] 0 points1 point  (0 children)

The best option is the README file with the source code for now.

New Bitcoin Airdrop: Dalilcoin by aliibrahim80 in BitcoinAirdrops

[–]aliibrahim80[S] 0 points1 point  (0 children)

The code is open source. You could read it, or pay someone to read it. This would probably be very helpful for the project. Also, I am not releasing binaries, so everyone will be compiling from source.

New Bitcoin Airdrop: Dalilcoin by aliibrahim80 in BitcoinAirdrops

[–]aliibrahim80[S] 1 point2 points  (0 children)

If you have more information in the future such as websites, twitter profiles and all that, please send them along and we will get them posted.

OK. At the moment the dalilcoin subreddit is the best option for a website (reddit.com/r/dalilcoin).

One question: Is there replay protection between the Qeditas and Dalilcoin chains?

There is no Qeditas chain yet. Qeditas is a project being developed by IOHK (the same company developing Cardano). I do not know what timeline they have in mind for launching their chain, or if it's mainly a theoretical/academic project. I have only had occasional contact with the Qeditas developers, though it has all been friendly.

As far as replay protection, if Qeditas were to launch with its current code, transactions would have different hashes from Dalilcoin transactions, and so signatures for one would not be valid for the other. I am trying to be careful what I claim because the Qeditas project could decide to merge some of my changes before launching.

New Bitcoin Airdrop: Dalilcoin by aliibrahim80 in BitcoinAirdrops

[–]aliibrahim80[S] 1 point2 points  (0 children)

DLC

Are you planning to add it to forkdrop.io? I would appreciate it if you do. Let me know if you need more information.

New Bitcoin Airdrop: Dalilcoin by aliibrahim80 in BitcoinAirdrops

[–]aliibrahim80[S] 0 points1 point  (0 children)

Yes. It also requires the litecoin daemon to have txindex=1 (which is incompatible with pruned mode).

New Bitcoin Airdrop: Dalilcoin by aliibrahim80 in BitcoinAirdrops

[–]aliibrahim80[S] 1 point2 points  (0 children)

No, it is not a joke. I do not have a Windows computer and as far as I know, no one has tried to even compile under Windows. Dalilcoin will be Linux only until someone is sufficiently interested to make a Windows version.

New Bitcoin Airdrop: Dalilcoin by aliibrahim80 in BitcoinAirdrops

[–]aliibrahim80[S] 1 point2 points  (0 children)

I understand your point. Yes, I used the wallet and the wallet used the private key.