The 100% Up-to-Date Guide to Choosing the Best Bitcoin ...

Restoring a wallet.dat file, what's the typical size of the file? /r/Bitcoin

Restoring a wallet.dat file, what's the typical size of the file? /Bitcoin submitted by BitcoinAllBot to BitcoinAll [link] [comments]

12-14 00:41 - 'Restoring a wallet.dat file, what's the typical size of the file?' (self.Bitcoin) by /u/kawi-bawi-bo removed from /r/Bitcoin within 0-9min

'''
Hi all, I pulled a bunch of old wallet.dat files from my miners from back in the day. The problem is that I had wallet.dat files from multiple coins including LTC, BTC, and DOGE.
What's the typical size of a wallet.day file with BTC? I have files ranging from 60kb to 4mb. Will there be an issue if I accidentally stick a LTC dat file into the BTC folder?
As usual, thanks much for your help!
'''
Restoring a wallet.dat file, what's the typical size of the file?
Go1dfish undelete link
unreddit undelete link
Author: kawi-bawi-bo
submitted by removalbot to removalbot [link] [comments]

Why the size of new wallet.dat created in Core is over 1 Mb? /r/Bitcoin

Why the size of new wallet.dat created in Core is over 1 Mb? /Bitcoin submitted by BitcoinAllBot to BitcoinAll [link] [comments]

Gridcoin 5.0.0.0-Mandatory "Fern" Release

https://github.com/gridcoin-community/Gridcoin-Research/releases/tag/5.0.0.0
Finally! After over ten months of development and testing, "Fern" has arrived! This is a whopper. 240 pull requests merged. Essentially a complete rewrite that was started with the scraper (the "neural net" rewrite) in "Denise" has now been completed. Practically the ENTIRE Gridcoin specific codebase resting on top of the vanilla Bitcoin/Peercoin/Blackcoin vanilla PoS code has been rewritten. This removes the team requirement at last (see below), although there are many other important improvements besides that.
Fern was a monumental undertaking. We had to encode all of the old rules active for the v10 block protocol in new code and ensure that the new code was 100% compatible. This had to be done in such a way as to clear out all of the old spaghetti and ring-fence it with tightly controlled class implementations. We then wrote an entirely new, simplified ruleset for research rewards and reengineered contracts (which includes beacon management, polls, and voting) using properly classed code. The fundamentals of Gridcoin with this release are now on a very sound and maintainable footing, and the developers believe the codebase as updated here will serve as the fundamental basis for Gridcoin's future roadmap.
We have been testing this for MONTHS on testnet in various stages. The v10 (legacy) compatibility code has been running on testnet continuously as it was developed to ensure compatibility with existing nodes. During the last few months, we have done two private testnet forks and then the full public testnet testing for v11 code (the new protocol which is what Fern implements). The developers have also been running non-staking "sentinel" nodes on mainnet with this code to verify that the consensus rules are problem-free for the legacy compatibility code on the broader mainnet. We believe this amount of testing is going to result in a smooth rollout.
Given the amount of changes in Fern, I am presenting TWO changelogs below. One is high level, which summarizes the most significant changes in the protocol. The second changelog is the detailed one in the usual format, and gives you an inkling of the size of this release.

Highlights

Protocol

Note that the protocol changes will not become active until we cross the hard-fork transition height to v11, which has been set at 2053000. Given current average block spacing, this should happen around October 4, about one month from now.
Note that to get all of the beacons in the network on the new protocol, we are requiring ALL beacons to be validated. A two week (14 day) grace period is provided by the code, starting at the time of the transition height, for people currently holding a beacon to validate the beacon and prevent it from expiring. That means that EVERY CRUNCHER must advertise and validate their beacon AFTER the v11 transition (around Oct 4th) and BEFORE October 18th (or more precisely, 14 days from the actual date of the v11 transition). If you do not advertise and validate your beacon by this time, your beacon will expire and you will stop earning research rewards until you advertise and validate a new beacon. This process has been made much easier by a brand new beacon "wizard" that helps manage beacon advertisements and renewals. Once a beacon has been validated and is a v11 protocol beacon, the normal 180 day expiration rules apply. Note, however, that the 180 day expiration on research rewards has been removed with the Fern update. This means that while your beacon might expire after 180 days, your earned research rewards will be retained and can be claimed by advertising a beacon with the same CPID and going through the validation process again. In other words, you do not lose any earned research rewards if you do not stake a block within 180 days and keep your beacon up-to-date.
The transition height is also when the team requirement will be relaxed for the network.

GUI

Besides the beacon wizard, there are a number of improvements to the GUI, including new UI transaction types (and icons) for staking the superblock, sidestake sends, beacon advertisement, voting, poll creation, and transactions with a message. The main screen has been revamped with a better summary section, and better status icons. Several changes under the hood have improved GUI performance. And finally, the diagnostics have been revamped.

Blockchain

The wallet sync speed has been DRASTICALLY improved. A decent machine with a good network connection should be able to sync the entire mainnet blockchain in less than 4 hours. A fast machine with a really fast network connection and a good SSD can do it in about 2.5 hours. One of our goals was to reduce or eliminate the reliance on snapshots for mainnet, and I think we have accomplished that goal with the new sync speed. We have also streamlined the in-memory structures for the blockchain which shaves some memory use.
There are so many goodies here it is hard to summarize them all.
I would like to thank all of the contributors to this release, but especially thank @cyrossignol, whose incredible contributions formed the backbone of this release. I would also like to pay special thanks to @barton2526, @caraka, and @Quezacoatl1, who tirelessly helped during the testing and polishing phase on testnet with testing and repeated builds for all architectures.
The developers are proud to present this release to the community and we believe this represents the starting point for a true renaissance for Gridcoin!

Summary Changelog

Accrual

Changed

Most significantly, nodes calculate research rewards directly from the magnitudes in EACH superblock between stakes instead of using a two- or three- point average based on a CPID's current magnitude and the magnitude for the CPID when it last staked. For those long-timers in the community, this has been referred to as "Superblock Windows," and was first done in proof-of-concept form by @denravonska.

Removed

Beacons

Added

Changed

Removed

Unaltered

As a reminder:

Superblocks

Added

Changed

Removed

Voting

Added

Changed

Removed

Detailed Changelog

[5.0.0.0] 2020-09-03, mandatory, "Fern"

Added

Changed

Removed

Fixed

submitted by jamescowens to gridcoin [link] [comments]

How to Cold Store Your Cryptocurrency for Safekeeping

According to CipherTrace (which specializes in litigation tools and services for cryptographic markets), between 2018 and 2019, the amount of theft from cryptographic wallets exceeds $2 billion. Thefts and break-ins are caused by a variety of reasons: simple incompetence in cryptographic storage, as well as by companies that provide storage services. It is not unusual for holders of crypto currency to lose access to their wallets by themselves, one of the last known cases occurred in Ireland: ,57 million dollars couldn’t be confiscated from a detained drug dealer, which were stored in bitcoins. The problem was that the wallets keys were lost.
The most secure way is a cold storage — all account data and private keys are kept offline and all transactions are manual. This storage method is great because it is fully protected from hacking and interception of data, but it is not suitable for those who make daily transfers of cryptocurrency, it is simply inconvenient.
If you compare “cold and hot” wallets, you can give a simple example: A hot wallet can be compared to a wallet that can be lost and stolen. But you can always access your funds. A cold wallet is safe, and access to it is not permanent. You can also take or put money, but it will require a special code.
In this article we will tell you about the most popular types of cold wallets and we will analyze their pros and cons.

Types of cold wallets

All cold wallets have one common thing — the data is stored offline. However, there are several types of cold wallets, which differ in the degree of protection, physical embodiment and cost of the wallet.

Desktop wallet

Desktop wallets are also known for a high level of protection, in addition to the ability to store crypto currency offline. There are so-called “light” wallets weighing less than 1 gb, and “heavy” wallets weighing more than 1 gb. Two of the desktop wallets can be distinguished:

Exodus Wallet

Multicurrency wallet. It was created in 2016 and supports more than 100 crypto currencies, since 2019 has a phone application. The wallet allows you to export private keys that are created locally, and then to upload them back. Private keys can be discounted to removable media and downloaded only when the transaction is completed. If the user decides to leave private keys on the same computer where the wallet is located, keys are securely encrypted. In order to use your wallet ,there is no need to register or to download the entire blockchain — synchronization is taking place online. In addition to wallet services Exodus Wallet provides an integrated crypto-exchange. The installation file weighs 85 mb.

Bitcoin Core

Bitcoin Core is the official Bitcoin wallet. The size of the wallet is 160 gb, but according to the developers of the company, it’s better to give it a separate winchester with the size of 500 gb. From the security viewpoint, it’s suggested to install a security code or a seed phrase, which may consist 8 words. It is also suggested to copy wallet.dat file. — private wallet key, which will allow you to restore access to your funds.

Hardware wallets

Appears like a regular flash drive with an interface (screen, control keys). This wallet can safely store information about the balance and keys, full functionality is available only when connected to a computer, but the latest models have a special button that allows you to confirm the transaction without connecting to a PC. Each time the device offers to generate a new code-password to confirm the transaction, which significantly reduces the probability of hacking. After generating the code, you need to set a mnemonic phrase (seed) — it consists of 12 or 24 words, which are not related to each other in any way. Such type of wallets has a special protection system that allows you to connect even to potentially infected PCs. The wallets themselves won’t be affected by malware.
The obvious cons of hardware wallets are the following:
  1. It is also possible to lose a device that is so small in size.
  2. A physical device can easily fail due to a variety of damages.
  3. It is not recommended to buy such wallets from “hand”, even from friends, as they can be pre-installed with malware.
As you can see, storing crypto currency with a hardware wallets is very safe and secure, however you should take care about the device. Many people who hold a large amount of crypto currency, in order to not to lose a hardware wallet, store it in a safe deposit box, depriving someone of access to it.

Popular Hardware Wallets models

Trezor One

The first hardware wallet produced in 2013 by the Czech company Satoshi Labs. The device has an OLED display with a pin code, public addresses and Seed phrases. Trezor One has won recognition from users due to its multicurrency and affordable price ($65), it is also considered one of the most secure hardware wallets.
Ledger Nano S
The wallet was released in 2016 by the French company Ledger SAS. Distinctive feature from the other wallets, is the Secure Element controller, which meets banking standards and is certified CC EAL 5+. Also, in order to work with each crypto currency you need to install a special application for this currency on the device, it is not quite convenient, however more secure. The average price of the device is $85.
KeepKey
The purse was released in 2015 in the U.S.. Distinctive feature is OLED display — 256 by 64 pixels. Due to this, you can fully see both the address of the wallet, and the seed phrase. Also, the wallet has a built-in exchange service ShapeShift — an opportunity to exchange crypto currency without entering the exchange. The average price of the device is $50.
BitBox01
Ionos Schnelly’s wallet was invented in Switzerland. In size it’s almost the most compact among all representatives of the hardware wallets. A distinctive feature is the availability of a backup — the card can be multiplied and kept in several places, by analogy with the seed-phrase. In November 2020, support for these wallets will be discontinued, but all owners will be given a 30% discount on the new model. The average price of the device is $55.
CoolWalletS
Developed in Taiwan by CoolBitX, which has long been manufacturing components for Visa and MasterCard. As well as Ledger Nano S has a security standard CC EAL 5+. This wallet works only through smartphones, connecting to them through Bluetooch. The average price of the device is $100.

Paper Wallet

In the age of technological process, plain paper has become a rather reliable method for storing cryptocurrency. With the help of special services, such as bitaddress.org, you can generate public and private keys, then writing them down on paper. You can also print keys as a QR code. To accept transactions with such a wallet, you provide the sender with a public key. To access the funds, you need to find any online wallet that supports your crypto currency. Enter your private key into your online wallet, thus integrating your funds into the system. However, you should understand that after this procedure your wallet will become “hot”.
The best of this storage method — paper wallet is free, its safety depends only from you. When storing a paper wallet to protect it from the fire, water and aging. Also, do not tell other people about where your paper wallet is hidden.
The disadvantages of this storage:
  1. If your wallet is lost, it will be impossible to restore it.
  2. Exposed to a physical damage.
  3. After sending the transaction, you will have to create a new cold wallet.

Offline transaction signature

For this storage method, you will need two PCs. The essence is that the secret keys are never in contact with the Internet, but are stored digitally. Offline transaction method is suitable for people who do not make a daily transactions and have an access to two devices. The process is below:
  1. A hot wallet is installed on a PC with the Internet. The transaction is created without entering private keys and authorization.
  2. The file with transaction is copied and transferred to the second PC without Internet, where private keys are stored.
  3. The transaction is signed offline, copied and transferred back to the PC with the Internet.
In fact, you can do it with one PC and a USB drive. The USB drive will store private keys. Also, you can create a transaction without entering private keys and authorization, after disconnecting the Internet, connect the flash drive, sign the transaction, turn on the Internet. In this case, you should take care of the antivirus system.
The disadvantages of this method:
  1. Using two PCs or a USB drive involves a lot of actions, which is time consuming.
  2. You need to back up your keys in case your PC or flash drive fails.

Multi-signature wallet

This method implies the creation of a wallet, which can be only withdrawn on condition that the transaction is verified by a predetermined number of users. The maximum number of users who can hold private keys of the wallet- is 15. It is considered as one of the most reliable ways of storage, in fact private keys are not only stored offline, but also divided between different people. Often the wallet with multisignatures is used by large crypto-companies, whose management believes that individually employees can not spend the budget. Moreover, when creating this wallet, the number of required multisignatures is minimal. For example: if one of the six keys is lost, the remaining ones will be enough for the transaction.
The disadvantages of this storage:
  1. If most of the keys are lost, access to the funds cannot be restored.
  2. You will not be able to make transactions on your own without the participation of other key holders.

Private Key Fragmentation

The private wallet key consists of 64 symbols. The key is divided into several fragments. They don’t represent anything separately, but if you put all the fragments together, you can access the funds. The key fragments are similar to multisignatures, but in this case you don’t need a multisig-wallet, and the whole process can be done manually.
The disadvantages of this method:
  1. If one fragment is lost, access to funds will be lost.
  2. The maximum level of protection can only be reached when key fragments are distributed to different places, for example: bookshelf, safe deposit box, car. If you divide the key fragments and put them in different boxes — the required level of protection will not be achieved.
When writing down key fragments on paper, protect the key from fire, water and aging.

Conclusion

Digital currencies are not physically expressed and exist only in the digital code, so cold wallets that doesn’t have an access to the Internet, protect cryptocurrencies from the most important and common problem — hacker theft. However, holders of cold wallets need to understand that the safety of a private key depends only on them. There are different ways to store private keys outside the network, but each of them makes it difficult for the user to make transactions.
Hardware wallets that have been specifically designed for this purpose are considered to be the best option for storing cryptocurrencies. With their help it is possible both to store funds off the network and to make transactions easily, without risking the safety of a private key. If you use other cold wallets, it is recommended to combine them with hot wallets. Keep the required crypto currency for daily transfers on hot wallets, and keep all other crypto on cold wallets.
Please don’t forget to follow us on Telegram and stay updated!
YOUR CRYPTO BOSS
submitted by yourcryptoboss19 to u/yourcryptoboss19 [link] [comments]

Found Wallet.dat from 2011 - How to check value?

I was getting an old pc ready to be dumped and found a wallet.dat on it. The PC hasn’t been used for about 8 years and probably minimally since 2011.
I did a minuscule amount of mining in 2011, but didn’t get far. I found the wallet unsecured, though secured it now. The blockchain woefully out of date. The PC hasn’t been online for many years and wasn’t when I checked the other day.
At the moment I see nothing in the wallet.
There could be nothing in it. 10, 50, 100 or maybe a few more, i don’t really remember how fast they mined. I just know the Bitcoin was arduous. I did start and stop a few times (uninstalling and starting new wallets) between two pc’s which is why I am not certain there are any in there at all.
My questions are:
  1. If I left it unsecured but barely used the PC could any litecoins have been stolen?
  2. Is there a reasonable way to check the value without downloading the blockchain? I looked and haven’t found anything that works in 2020.
  3. If I have 100mbps broadband and a modern PC how long should I expect the whole blockchain to download and at what size? It’s just mining that is resource intensive not downloading the chain I believe?
Thanks in advance. Will decide if it’s worth investing a bit of time to check.
submitted by TypicalIdea to litecoin [link] [comments]

Have a wallet.dat from a mining pool back around 2010. Had coins on it but can't get it open. Can anyone help me out?

Back around 2010/2011 I mined some bitcoins using one of those mining pools. I've tried to figure out which I used, but can't. I kept the wallet.dat even after all these years but have long forgotten the password.
So do I have any hope of getting this thing opened up? Only thing I've tried in the last 5 years has been right now. I've downloaded bitcoin core, created a wallet, shut it down, swapped out the new wallet.dat with a copy of the wallet.dat with coins trapped away in it and when I opened the btc core program back up and went to console I typed in "-salvagewallet" which gave me a "Method not found (code -32601)" error.

thanks for any help.

Edit: My old wallet.dat file is only 104Kb in size. I notice the newer ones are over 1000Kb. Was that normal for 2010/2011?
submitted by ColeSloth to Bitcoin [link] [comments]

06-16 12:55 - 'boss linux' (self.linux) by /u/bossdevelopers removed from /r/linux within 437-447min

'''
-BOSS PROJECT: Standing for Blockchain Operative System Series is a new Linux distribution based on ubuntu core with important changes, highly improved security and the default incorporation of blockchain services and support for cryptocurrencies.We have modified the original standards to transform it into a very useful tool for the entire bitcoin community consisting of an interesting combination of security, manageability, speed and performance. It can be used on any x64 X86 machine simply after installation.
.-BLOCKCHAIN FULLY DEDICATED: It has been more than a decade since the physical birth of cryptocurrencies, although the idea is over 50 years old. The future will undoubtedly be governed by blockchain systems and governments, banks and corporations are already taking positions in this regard. BOSS is not far behind. Now it is possible to mine even if it has not been done previously. For even more in-depth development of the blockchain applications included in BOSS operating systems, you have your own version of bitcoin PoW PoS mining: BitcoinBOSS. Our own blockchain that is enhanced with BOSS token erc20.
-BOSS SECURITY & PRIVACY FEATURES: A weak point of easy access for hacker attacks, such as automatic updates, has been modified so that the user can carry out his updates when he deems necessary and under monitoring. The elevated privileges allow you not only to modify the system, they also allow you to quickly act on files that are prohibited from accessing other operating systems. BOSS has installed active-passive security measures
-MAC ADDRESS DEFAULT SPOOFING: MAC address Spoofing privacy + from BOSS. Every time you log in to your BOSS computer, you are doing so with a different MAC address. Privacy thus reaches its highest degrees by making MAC-TRACK impossible
-LIGHTWEIGHT RECORD: BOSS has achieved maximum performance in a really small space. BOSS takes up very little space and can be downloaded via torrent or direct download through our mirrors. BOSS has concentrated a large operating system in a super small space of less than 1 GB, which puts us at the forefront among the lightest and safest distributions as leaders in relation to gb-installed applications.
-INSTALLATION PROCESS: BOSS installation is simple and guided using the ubiquity installer and depending on the performance of your system it can take between 15-30 minutes in normal circumstances. Download BOSS now and enjoy a high level of performance, security and privacy in an enviable small space. BOSS can be tested after installation, fully or partially installed on your system, together with windows or your favorite operating system.
.-POWERFUL RECOVERY TOOL: BOSS is an excellent file recovery tool. The combination of BOSS tools and its elevated privileges allow you to access areas hidden or inaccessible. Simply use BOSS live to freely rescue files from the laptop where the BOSS USB is inserted. Recover Bitcoin paraphrase or .DAT files easier and faster than other recovery programs simply by acceding to the file system where BOSS usb is inserted.
-STABLE RELEASES: BOSS V01-LTS Available now for download at sourceforge.
[**[link]2
FEATURING
-UNITY DESKTOP-BRAVE BROWSER-ATOMIC WALLET-COMMON UTILITIES-ELEVATED PRIVILEGES ENABLED.-MAC ADDRESS SPOOFING-FILE SYSTEM RECOVERY TOOL
-WE DELIVER BOSS: Using BOSS as removable OS is recommended if you do not want to install the system. For this our team recommends the use of persistent USB where your session is recorded and ready for the next login, find everything as you left it. BOSS makes available to its users the delivery of these persistent USB devices worldwide via regular mail or messaging. The flat rate of our installation on the USB and shipping to the user is USD 20 to which we must add the shipping costs in the options selected by the user. Please check with our team to process your shipment while this process is automated on our website. Order now your BOSS or a even more customized BOSS with your company requirements, logo etc. We deliver in CD, USB or SD card in your selected size from minimal 4GB, however 16GB and above are recommended.
[link]3
[link]4

[link]5
'''
boss linux
Go1dfish undelete link
unreddit undelete link
Author: bossdevelopers
1: *ourcef*r*e.**t/proj*cts/*oss-min*mi*al*ed**ion/ 2: sourceforge.net/pr*j*cts*****-mi*im**al-editio****]^*1 3: pr*vie*.*edd.it/2j0i*g*tk755*.p*g*wid*h*1*00&form*t*png&**uto*w**p*a*p;s=57745a79590667**059****948ab*84e*1*693*7 4: *revi*w.red*.it*9l8yh7ag*7551*png?wi*th=160*&a*p;fo*m**=png*amp;a*to=***p&s=acd*6e9**8d2*a**4d*b*14737cf**72**dcc2*5 5: pr**ie**re*d.it*3*qyxtw*k755*.*ng?wid**=*600*amp**ormat=p*g&am*;au*o=webp&am*;s=02b*905*4cb**f770b77*13a3*6**90fc*6*0d3b
Unknown links are censored to prevent spreading illicit content.
submitted by removalbot to removalbot [link] [comments]

Creamcoin 0.18.0.0 – following Bitcoin’s tale

Creamcoin 0.18.0.0 – following Bitcoin’s tale

06/08/2019 3 min read📷216SHARES216VIEWSShare on Twitter
When new Creamcoin was designed, we had in mind not only a coin that would hold parity with any cryptocurrency, but something that would demonstrate the extra-special capabilities of a decentralized ledger, capable to introduce, help and bring it further to the regular people. Blockchain developing is unstoppable complex process with endless possibilities. Integration of applications on such a technology could achieve better, secure pass of value.
0.18.0.0

On August 5th, 2019 Creamcoin code was successfully updated to the latest Bitcoin version 0.18.0
https://github.com/creamcoin/cream/
With this latest release, we proved that Creamcoin itself it’s not a sort of a tenant to the Bitcoin. Much easier to apply and to pursue the main purpose of existence and to create further innovations in our Cream Line. The new release brings tremendous performance improvements, as well as integration will be much easier for any platform, exchange or integrator. Wallets are available to Releases tab on github
WALLETS

Multi-wallet support

Cream Core now supports loading multiple, separate wallets. The wallets are completely separated, with individual balances, keys and received transactions. Multi-wallet is enabled by using more than one -wallet argument when starting Creamcoin, either on the command line or in the Cream config file. In Creamcoin-Qt, only the first wallet will be displayed and accessible for creating and signing transactions. GUI selectable multiple wallets will be supported in a future version. This feature will continue to be refined with later updates, as there are still some known issues in using the GUI to access the “multiwallet” command. The most notable is that you can’t use coin control features with multiple wallets loaded, or else you will likely retain the wrong wallet when attempting to switch wallets.
When running Cream Core with multi-wallet, wallet-level RPC methods must specify the wallet for which they’re intended in every request. HTTP RPC requests should be send to the :/wallet// endpoint, for example 127.0.0.1:8332/wallet/wallet1.dat/. bitcoin-cli commands should be run with a -rpcwallet option, for example [bitcoin-cli -rpcwallet=wallet1.dat getbalance] A new node-level [listwallets] RPC method is added to display which wallets are currently loaded. Starting command for both wallets should look like this: [creamd -daemon -wallet=wallet1.dat -wallet=wallet2.dat]

Hardware Wallet native compatibility

With a new release of Cream Core the possibility is added in the form of use hardware wallets (Ledger, Trezor, Digital BitBox, KeepKey, Coldcard), but this process is manual and involves the use of Hardware Wallet Interaction (HWI) tool and it needs HW support and addition of Cream in the future, which is not excluded from roadmap. This is a great news for everyone who use Cream Core, and want extra security. Only applies to those who can use command line/CLI (for now), and when some of Hardware wallets actually supports Cream.

SegWit 4MB limit

SegWit replacing the block size limit with a block “weight” limit, allowing up to 4 megabytes of transaction data, and giving a substantial boost in the transaction capacity of the Cream network.

www.creamcoin.com

In the same with the new code update, Creamcoin Team is doing major shifting power, migrating the marketing and promotion activities, from our news site cream.technology to our main page www.creamcoin.com. We will come up with additional statement in this matter, so our supporters and followers have better perspective of Cream Line and the products of it.
In the meantime we are looking into new ways that developers can enhance the capabilities of the Creamcoin protocol, integration of decentralized exchange functionality, lightning network and number of other options that would allow for different types of conditional sends of Creamcoin assets. We are inviting any individual, platform, exchange or integrator who would like to submit recommendations or feature requests, feel free to contribute to the Creamcoin Github.
By Cream Team
submitted by creamcointeam to u/creamcointeam [link] [comments]

Need Help With my node

Hi guys!
My node seems to do well but it loses connection from quite often. Someone suggested me looking at debug.log file and I copied/pasted info once I got my node restarted. This line does not look good and it repeats quite a lot:

2020-02-25T23:55:16Z socket recv error Connection reset by peer (104).

2020-02-25T23:54:17Z Verifying last 6 blocks at level 3
2020-02-25T23:54:17Z [0%]...[16%]...[33%]...[50%]...[66%]...[83%]...[99%]...[DONE].
2020-02-25T23:54:39Z No coin database inconsistencies in last 6 blocks (14920 transactions)
2020-02-25T23:54:39Z block index 48257ms
2020-02-25T23:54:39Z init message: Loading wallet...
2020-02-25T23:54:39Z BerkeleyEnvironment::Open: LogDir=/home/bitcoin/.bitcoin/database ErrorFile=/home/bitcoin/.bitcoin/db.log
2020-02-25T23:54:39Z [default wallet] Wallet File Version = 169900
2020-02-25T23:54:39Z [default wallet] Keys: 2007 plaintext, 0 encrypted, 2007 w/ metadata, 2007 total. Unknown wallet records: 0
2020-02-25T23:54:39Z [default wallet] Wallet completed loading in 243ms
2020-02-25T23:54:39Z [default wallet] setKeyPool.size() = 2000
2020-02-25T23:54:39Z [default wallet] mapWallet.size() = 0
2020-02-25T23:54:39Z [default wallet] mapAddressBook.size() = 6
2020-02-25T23:54:39Z block tree size = 619023
2020-02-25T23:54:39Z nBestHeight = 619001
2020-02-25T23:54:39Z torcontrol thread start
2020-02-25T23:54:39Z Bound to [::]:8333
2020-02-25T23:54:39Z Bound to 0.0.0.0:8333
2020-02-25T23:54:39Z init message: Loading P2P addresses...
2020-02-25T23:54:39Z Leaving InitialBlockDownload (latching to false)
2020-02-25T23:54:41Z Loaded 65270 addresses from peers.dat 1291ms
2020-02-25T23:54:41Z init message: Starting network threads...
2020-02-25T23:54:41Z net thread start
2020-02-25T23:54:41Z dnsseed thread start
2020-02-25T23:54:41Z init message: Done loading
2020-02-25T23:54:41Z msghand thread start
2020-02-25T23:54:41Z opencon thread start
2020-02-25T23:54:41Z addcon thread start
2020-02-25T23:54:48Z New outbound peer connected: version: 70015, blocks=619001, peer=4 (full-relay)
2020-02-25T23:54:49Z New outbound peer connected: version: 70015, blocks=619001, peer=5 (full-relay)
2020-02-25T23:54:50Z New outbound peer connected: version: 70015, blocks=619001, peer=6 (full-relay)
2020-02-25T23:54:50Z Imported mempool transactions from disk: 2183 succeeded, 0 failed, 0 expired, 0 already there
2020-02-25T23:54:52Z P2P peers available. Skipped DNS seeding.
2020-02-25T23:54:52Z dnsseed thread exit
2020-02-25T23:55:04Z New outbound peer connected: version: 70015, blocks=619001, peer=15 (full-relay)
2020-02-25T23:55:16Z socket recv error Connection reset by peer (104)
2020-02-25T23:55:22Z New outbound peer connected: version: 70015, blocks=619001, peer=21 (full-relay)
2020-02-25T23:55:23Z New outbound peer connected: version: 70015, blocks=619001, peer=22 (full-relay)
2020-02-25T23:55:29Z New outbound peer connected: version: 70015, blocks=619001, peer=26 (full-relay)
2020-02-25T23:55:31Z New outbound peer connected: version: 70015, blocks=619001, peer=27 (full-relay)
2020-02-25T23:55:31Z New outbound peer connected: version: 70015, blocks=619001, peer=28 (full-relay)
2020-02-25T23:55:39Z New outbound peer connected: version: 70015, blocks=619001, peer=31 (block-relay)
2020-02-25T23:55:39Z New outbound peer connected: version: 70015, blocks=619001, peer=32 (block-relay)
2020-02-25T23:55:51Z New outbound peer connected: version: 70015, blocks=619001, peer=33 (block-relay)
2020-02-25T23:56:15Z New outbound peer connected: version: 70015, blocks=619001, peer=39 (full-relay)
2020-02-25T23:56:16Z New outbound peer connected: version: 70015, blocks=619001, peer=40 (full-relay)
2020-02-25T23:56:31Z New outbound peer connected: version: 70015, blocks=619001, peer=41 (block-relay)
2020-02-26T00:02:21Z socket recv error Connection reset by peer (104)
2020-02-26T00:06:06Z socket recv error Connection reset by peer (104)


Do you have any suggestion other than rebooting my Raspi?

Thanks!
submitted by simonmalaga to Bitcoin [link] [comments]

Going to switch to Bitcoin Unlimited!

Dear /btc community
Its clear to me about core and I want to switch, but have a few questions I must have answered first; haven't got a proper answer from bitcoin_unlimited so hear is my original post... https://redd.it/6bddvj
Regards.
submitted by TXJQQVRF to btc [link] [comments]

Groestlcoin 6th Anniversary Release

Introduction

Dear Groestlers, it goes without saying that 2020 has been a difficult time for millions of people worldwide. The groestlcoin team would like to take this opportunity to wish everyone our best to everyone coping with the direct and indirect effects of COVID-19. Let it bring out the best in us all and show that collectively, we can conquer anything.
The centralised banks and our national governments are facing unprecedented times with interest rates worldwide dropping to record lows in places. Rest assured that this can only strengthen the fundamentals of all decentralised cryptocurrencies and the vision that was seeded with Satoshi's Bitcoin whitepaper over 10 years ago. Despite everything that has been thrown at us this year, the show must go on and the team will still progress and advance to continue the momentum that we have developed over the past 6 years.
In addition to this, we'd like to remind you all that this is Groestlcoin's 6th Birthday release! In terms of price there have been some crazy highs and lows over the years (with highs of around $2.60 and lows of $0.000077!), but in terms of value– Groestlcoin just keeps getting more valuable! In these uncertain times, one thing remains clear – Groestlcoin will keep going and keep innovating regardless. On with what has been worked on and completed over the past few months.

UPDATED - Groestlcoin Core 2.18.2

This is a major release of Groestlcoin Core with many protocol level improvements and code optimizations, featuring the technical equivalent of Bitcoin v0.18.2 but with Groestlcoin-specific patches. On a general level, most of what is new is a new 'Groestlcoin-wallet' tool which is now distributed alongside Groestlcoin Core's other executables.
NOTE: The 'Account' API has been removed from this version which was typically used in some tip bots. Please ensure you check the release notes from 2.17.2 for details on replacing this functionality.

How to Upgrade?

Windows
If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer.
OSX
If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), run the dmg and drag Groestlcoin Core to Applications.
Ubuntu
http://groestlcoin.org/forum/index.php?topic=441.0

Other Linux

http://groestlcoin.org/forum/index.php?topic=97.0

Download

Download the Windows Installer (64 bit) here
Download the Windows Installer (32 bit) here
Download the Windows binaries (64 bit) here
Download the Windows binaries (32 bit) here
Download the OSX Installer here
Download the OSX binaries here
Download the Linux binaries (64 bit) here
Download the Linux binaries (32 bit) here
Download the ARM Linux binaries (64 bit) here
Download the ARM Linux binaries (32 bit) here

Source

ALL NEW - Groestlcoin Moonshine iOS/Android Wallet

Built with React Native, Moonshine utilizes Electrum-GRS's JSON-RPC methods to interact with the Groestlcoin network.
GRS Moonshine's intended use is as a hot wallet. Meaning, your keys are only as safe as the device you install this wallet on. As with any hot wallet, please ensure that you keep only a small, responsible amount of Groestlcoin on it at any given time.

Features

Download

iOS
Android

Source

ALL NEW! – HODL GRS Android Wallet

HODL GRS connects directly to the Groestlcoin network using SPV mode and doesn't rely on servers that can be hacked or disabled.
HODL GRS utilizes AES hardware encryption, app sandboxing, and the latest security features to protect users from malware, browser security holes, and even physical theft. Private keys are stored only in the secure enclave of the user's phone, inaccessible to anyone other than the user.
Simplicity and ease-of-use is the core design principle of HODL GRS. A simple recovery phrase (which we call a Backup Recovery Key) is all that is needed to restore the user's wallet if they ever lose or replace their device. HODL GRS is deterministic, which means the user's balance and transaction history can be recovered just from the backup recovery key.

Features

Download

Main Release (Main Net)
Testnet Release

Source

ALL NEW! – GroestlcoinSeed Savior

Groestlcoin Seed Savior is a tool for recovering BIP39 seed phrases.
This tool is meant to help users with recovering a slightly incorrect Groestlcoin mnemonic phrase (AKA backup or seed). You can enter an existing BIP39 mnemonic and get derived addresses in various formats.
To find out if one of the suggested addresses is the right one, you can click on the suggested address to check the address' transaction history on a block explorer.

Features

Live Version (Not Recommended)

https://www.groestlcoin.org/recovery/

Download

https://github.com/Groestlcoin/mnemonic-recovery/archive/master.zip

Source

ALL NEW! – Vanity Search Vanity Address Generator

NOTE: NVidia GPU or any CPU only. AMD graphics cards will not work with this address generator.
VanitySearch is a command-line Segwit-capable vanity Groestlcoin address generator. Add unique flair when you tell people to send Groestlcoin. Alternatively, VanitySearch can be used to generate random addresses offline.
If you're tired of the random, cryptic addresses generated by regular groestlcoin clients, then VanitySearch is the right choice for you to create a more personalized address.
VanitySearch is a groestlcoin address prefix finder. If you want to generate safe private keys, use the -s option to enter your passphrase which will be used for generating a base key as for BIP38 standard (VanitySearch.exe -s "My PassPhrase" FXPref). You can also use VanitySearch.exe -ps "My PassPhrase" which will add a crypto secure seed to your passphrase.
VanitySearch may not compute a good grid size for your GPU, so try different values using -g option in order to get the best performances. If you want to use GPUs and CPUs together, you may have best performances by keeping one CPU core for handling GPU(s)/CPU exchanges (use -t option to set the number of CPU threads).

Features

Usage

https://github.com/Groestlcoin/VanitySearch#usage

Download

Source

ALL NEW! – Groestlcoin EasyVanity 2020

Groestlcoin EasyVanity 2020 is a windows app built from the ground-up and makes it easier than ever before to create your very own bespoke bech32 address(es) when whilst not connected to the internet.
If you're tired of the random, cryptic bech32 addresses generated by regular Groestlcoin clients, then Groestlcoin EasyVanity2020 is the right choice for you to create a more personalised bech32 address. This 2020 version uses the new VanitySearch to generate not only legacy addresses (F prefix) but also Bech32 addresses (grs1 prefix).

Features

Download

Source

Remastered! – Groestlcoin WPF Desktop Wallet (v2.19.0.18)

Groestlcoin WPF is an alternative full node client with optional lightweight 'thin-client' mode based on WPF. Windows Presentation Foundation (WPF) is one of Microsoft's latest approaches to a GUI framework, used with the .NET framework. Its main advantages over the original Groestlcoin client include support for exporting blockchain.dat and including a lite wallet mode.
This wallet was previously deprecated but has been brought back to life with modern standards.

Features

Remastered Improvements

Download

Source

ALL NEW! – BIP39 Key Tool

Groestlcoin BIP39 Key Tool is a GUI interface for generating Groestlcoin public and private keys. It is a standalone tool which can be used offline.

Features

Download

Windows
Linux :
 pip3 install -r requirements.txt python3 bip39\_gui.py 

Source

ALL NEW! – Electrum Personal Server

Groestlcoin Electrum Personal Server aims to make using Electrum Groestlcoin wallet more secure and more private. It makes it easy to connect your Electrum-GRS wallet to your own full node.
It is an implementation of the Electrum-grs server protocol which fulfils the specific need of using the Electrum-grs wallet backed by a full node, but without the heavyweight server backend, for a single user. It allows the user to benefit from all Groestlcoin Core's resource-saving features like pruning, blocks only and disabled txindex. All Electrum-GRS's feature-richness like hardware wallet integration, multi-signature wallets, offline signing, seed recovery phrases, coin control and so on can still be used, but connected only to the user's own full node.
Full node wallets are important in Groestlcoin because they are a big part of what makes the system be trust-less. No longer do people have to trust a financial institution like a bank or PayPal, they can run software on their own computers. If Groestlcoin is digital gold, then a full node wallet is your own personal goldsmith who checks for you that received payments are genuine.
Full node wallets are also important for privacy. Using Electrum-GRS under default configuration requires it to send (hashes of) all your Groestlcoin addresses to some server. That server can then easily spy on your transactions. Full node wallets like Groestlcoin Electrum Personal Server would download the entire blockchain and scan it for the user's own addresses, and therefore don't reveal to anyone else which Groestlcoin addresses they are interested in.
Groestlcoin Electrum Personal Server can also broadcast transactions through Tor which improves privacy by resisting traffic analysis for broadcasted transactions which can link the IP address of the user to the transaction. If enabled this would happen transparently whenever the user simply clicks "Send" on a transaction in Electrum-grs wallet.
Note: Currently Groestlcoin Electrum Personal Server can only accept one connection at a time.

Features

Download

Windows
Linux / OSX (Instructions)

Source

UPDATED – Android Wallet 7.38.1 - Main Net + Test Net

The app allows you to send and receive Groestlcoin on your device using QR codes and URI links.
When using this app, please back up your wallet and email them to yourself! This will save your wallet in a password protected file. Then your coins can be retrieved even if you lose your phone.

Changes

Download

Main Net
Main Net (FDroid)
Test Net

Source

UPDATED – Groestlcoin Sentinel 3.5.06 (Android)

Groestlcoin Sentinel is a great solution for anyone who wants the convenience and utility of a hot wallet for receiving payments directly into their cold storage (or hardware wallets).
Sentinel accepts XPUB's, YPUB'S, ZPUB's and individual Groestlcoin address. Once added you will be able to view balances, view transactions, and (in the case of XPUB's, YPUB's and ZPUB's) deterministically generate addresses for that wallet.
Groestlcoin Sentinel is a fork of Groestlcoin Samourai Wallet with all spending and transaction building code removed.

Changes

Download

Source

UPDATED – P2Pool Test Net

Changes

Download

Pre-Hosted Testnet P2Pool is available via http://testp2pool.groestlcoin.org:21330/static/

Source

submitted by Yokomoko_Saleen to groestlcoin [link] [comments]

Is it normal for a new Full Node server to repeatedly show Potential Sale Tip detected messages? What does this even mean. I surprisingly can't find anything with a solution on the internet. Please look at my log dump and give me an idea what to do. Im trying to run a full node in service to the net

Here is my log messages:

2019-11-14T03:05:38Z Bitcoin Core version v0.18.1 (release build)
2019-11-14T03:05:38Z Assuming ancestors of block 0000000000000000000f1c54590ee18d15ec70e68c8cd4cfbadb1b4f11697eee have valid signatures.
2019-11-14T03:05:38Z Setting nMinimumChainWork=0000000000000000000000000000000000000000051dc8b82f450202ecb3d471
2019-11-14T03:05:38Z Using the 'sse4(1way),sse41(4way)' SHA256 implementation
2019-11-14T03:05:38Z Default data directory /home/norman/.bitcoin
2019-11-14T03:05:38Z Using data directory /media/norman/Seagate Expansion Drive/.bitcoin/
2019-11-14T03:05:38Z Config file: /media/norman/Seagate Expansion Drive/.bitcoin/bitcoin.conf (not found, skipping)
2019-11-14T03:05:38Z Using at most 125 automatic connections (1024 file descriptors available)
2019-11-14T03:05:38Z Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements
2019-11-14T03:05:38Z Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements
2019-11-14T03:05:38Z Using 8 threads for script verification
2019-11-14T03:05:38Z scheduler thread start
2019-11-14T03:05:38Z HTTP: creating work queue of depth 16
2019-11-14T03:05:38Z No rpcpassword set - using random cookie authentication.
2019-11-14T03:05:38Z Generated RPC authentication cookie /media/norman/Seagate Expansion Drive/.bitcoin/.cookie
2019-11-14T03:05:38Z HTTP: starting 4 worker threads
2019-11-14T03:05:38Z Using wallet directory /media/norman/Seagate Expansion Drive/.bitcoin/
2019-11-14T03:05:38Z init message: Verifying wallet(s)...
2019-11-14T03:05:38Z Using BerkeleyDB version Berkeley DB 4.8.30: (April 9, 2010)
2019-11-14T03:05:38Z Using wallet /media/norman/Seagate Expansion Drive/.bitcoin/
2019-11-14T03:05:38Z BerkeleyEnvironment::Open: LogDir=/media/norman/Seagate Expansion Drive/.bitcoin/database ErrorFile=/media/norman/Seagate Expansion Drive/.bitcoin/db.log
2019-11-14T03:05:39Z init message: Loading banlist...
2019-11-14T03:05:39Z Cache configuration:
2019-11-14T03:05:39Z * Using 2.0 MiB for block index database
2019-11-14T03:05:39Z * Using 8.0 MiB for chain state database
2019-11-14T03:05:39Z * Using 440.0 MiB for in-memory UTXO set (plus up to 286.1 MiB of unused mempool space)
2019-11-14T03:05:39Z init message: Loading block index...
2019-11-14T03:05:39Z Opening LevelDB in /media/norman/Seagate Expansion Drive/.bitcoin/blocks/index
2019-11-14T03:05:39Z Opened LevelDB successfully
2019-11-14T03:05:39Z Using obfuscation key for /media/norman/Seagate Expansion Drive/.bitcoin/blocks/index: 0000000000000000
2019-11-14T03:05:39Z LoadBlockIndexDB: last block file = 0
2019-11-14T03:05:39Z LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=1, size=293, heights=0...0, time=2009-01-03...2009-01-03)
2019-11-14T03:05:39Z Checking all blk files are present...
2019-11-14T03:05:39Z Opening LevelDB in /media/norman/Seagate Expansion Drive/.bitcoin/chainstate
2019-11-14T03:05:40Z Opened LevelDB successfully
2019-11-14T03:05:40Z Using obfuscation key for /media/norman/Seagate Expansion Drive/.bitcoin/chainstate: fb03fb54abfe4745
2019-11-14T03:05:40Z Loaded best chain: hashBestChain=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f height=0 date=2009-01-03T18:15:05Z progress=0.000000
2019-11-14T03:05:40Z init message: Rewinding blocks...
2019-11-14T03:05:40Z init message: Verifying blocks...
2019-11-14T03:05:40Z block index 1516ms
2019-11-14T03:05:40Z init message: Loading wallet...
2019-11-14T03:05:40Z BerkeleyEnvironment::Open: LogDir=/media/norman/Seagate Expansion Drive/.bitcoin/database ErrorFile=/media/norman/Seagate Expansion Drive/.bitcoin/db.log
2019-11-14T03:05:40Z [default wallet] nFileVersion = 180100
2019-11-14T03:05:40Z [default wallet] Keys: 2001 plaintext, 0 encrypted, 2001 w/ metadata, 2001 total. Unknown wallet records: 0
2019-11-14T03:05:41Z [default wallet] Wallet completed loading in 449ms
2019-11-14T03:05:41Z [default wallet] setKeyPool.size() = 2000
2019-11-14T03:05:41Z [default wallet] mapWallet.size() = 0
2019-11-14T03:05:41Z [default wallet] mapAddressBook.size() = 0
2019-11-14T03:05:41Z mapBlockIndex.size() = 1
2019-11-14T03:05:41Z nBestHeight = 0
2019-11-14T03:05:41Z torcontrol thread start
2019-11-14T03:05:41Z Imported mempool transactions from disk: 0 succeeded, 0 failed, 0 expired, 0 already there
2019-11-14T03:05:41Z Bound to [::]:8333
2019-11-14T03:05:41Z Bound to 0.0.0.0:8333
2019-11-14T03:05:41Z init message: Loading P2P addresses...
2019-11-14T03:05:41Z Loaded 253 addresses from peers.dat 16ms
2019-11-14T03:05:41Z init message: Starting network threads...
2019-11-14T03:05:41Z net thread start
2019-11-14T03:05:41Z dnsseed thread start
2019-11-14T03:05:41Z opencon thread start
2019-11-14T03:05:41Z init message: Done loading
2019-11-14T03:05:41Z addcon thread start
2019-11-14T03:05:41Z msghand thread start
2019-11-14T03:05:52Z Loading addresses from DNS seeds (could take a while)
2019-11-14T03:05:54Z 187 addresses found from DNS seeds
2019-11-14T03:05:54Z dnsseed thread exit
2019-11-14T03:37:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 1890 seconds ago)
2019-11-14T03:48:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 2520 seconds ago)
2019-11-14T03:58:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 3150 seconds ago)
2019-11-14T04:09:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 3780 seconds ago)
2019-11-14T04:19:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 4410 seconds ago)
2019-11-14T04:30:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 5040 seconds ago)
2019-11-14T04:40:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 5670 seconds ago)
2019-11-14T04:51:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 6300 seconds ago)
2019-11-14T05:01:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 6930 seconds ago)
2019-11-14T05:12:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 7560 seconds ago)
2019-11-14T05:22:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 8190 seconds ago)
2019-11-14T05:33:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 8820 seconds ago)
2019-11-14T05:43:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 9450 seconds ago)
2019-11-14T05:54:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 10080 seconds ago)
2019-11-14T06:04:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 10710 seconds ago)
2019-11-14T06:15:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 11340 seconds ago)
2019-11-14T06:25:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 11970 seconds ago)
2019-11-14T06:36:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 12600 seconds ago)
2019-11-14T06:46:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 13230 seconds ago)
2019-11-14T06:57:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 13860 seconds ago)
2019-11-14T07:07:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 14490 seconds ago)
2019-11-14T07:18:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 15120 seconds ago)
2019-11-14T07:28:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 15750 seconds ago)
2019-11-14T07:39:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 16380 seconds ago)
2019-11-14T07:49:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 17010 seconds ago)
2019-11-14T08:00:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 17640 seconds ago)
2019-11-14T08:10:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 18270 seconds ago)
2019-11-14T08:21:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 18900 seconds ago)
2019-11-14T08:31:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 19530 seconds ago)
2019-11-14T08:42:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 20160 seconds ago)
2019-11-14T08:52:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 20790 seconds ago)
2019-11-14T09:03:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 21420 seconds ago)
2019-11-14T09:13:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 22050 seconds ago)
2019-11-14T09:24:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 22680 seconds ago)
2019-11-14T09:34:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 23310 seconds ago)
2019-11-14T09:45:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 23940 seconds ago)
2019-11-14T09:55:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 24570 seconds ago)
2019-11-14T10:06:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 25200 seconds ago)
2019-11-14T10:16:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 25830 seconds ago)
2019-11-14T10:27:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 26460 seconds ago)
2019-11-14T10:37:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 27090 seconds ago)
2019-11-14T10:48:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 27720 seconds ago)
2019-11-14T10:58:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 28350 seconds ago)
2019-11-14T11:09:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 28980 seconds ago)
2019-11-14T11:19:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 29610 seconds ago)
2019-11-14T11:30:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 30240 seconds ago)
2019-11-14T11:40:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 30870 seconds ago)
2019-11-14T11:51:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 31500 seconds ago)
2019-11-14T12:01:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 32130 seconds ago)
2019-11-14T12:12:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 32760 seconds ago)
2019-11-14T12:22:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 33390 seconds ago)
2019-11-14T12:33:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 34020 seconds ago)
2019-11-14T12:43:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 34650 seconds ago)
2019-11-14T12:54:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 35280 seconds ago)
2019-11-14T13:04:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 35910 seconds ago)
2019-11-14T13:15:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 36540 seconds ago)
2019-11-14T13:25:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 37170 seconds ago)
2019-11-14T13:36:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 37800 seconds ago)
2019-11-14T13:46:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 38430 seconds ago)
2019-11-14T13:57:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 39060 seconds ago)
2019-11-14T14:07:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 39690 seconds ago)
2019-11-14T14:18:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 40320 seconds ago)
2019-11-14T14:28:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 40950 seconds ago)
2019-11-14T14:39:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 41580 seconds ago)
2019-11-14T14:49:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 42210 seconds ago)
2019-11-14T15:00:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 42840 seconds ago)
2019-11-14T15:10:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 43470 seconds ago)
2019-11-14T15:21:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 44100 seconds ago)
2019-11-14T15:31:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 44730 seconds ago)
2019-11-14T15:42:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 45360 seconds ago)
2019-11-14T15:52:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 45990 seconds ago)
2019-11-14T16:03:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 46620 seconds ago)
2019-11-14T16:13:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 47250 seconds ago)
2019-11-14T16:24:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 47880 seconds ago)
2019-11-14T16:34:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 48510 seconds ago)
2019-11-14T16:45:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 49140 seconds ago)
2019-11-14T16:55:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 49770 seconds ago)
2019-11-14T17:06:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 50400 seconds ago)
2019-11-14T17:16:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 51030 seconds ago)
2019-11-14T17:27:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 51660 seconds ago)
2019-11-14T17:37:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 52290 seconds ago)
2019-11-14T17:48:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 52920 seconds ago)
2019-11-14T17:58:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 53550 seconds ago)
2019-11-14T18:09:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 54180 seconds ago)
2019-11-14T18:19:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 54810 seconds ago)
2019-11-14T18:30:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 55440 seconds ago)
2019-11-14T18:40:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 56070 seconds ago)
2019-11-14T18:51:24Z Potential stale tip detected, will try using extra outbound peer (last tip update: 56700 seconds ago)
2019-11-14T19:01:54Z Potential stale tip detected, will try using extra outbound peer (last tip update: 57330 seconds ago)


this goes on until I decided just to shut down server after 24 hours and the .dat blockchain file was stuck at 16MB in size. Seemed like going nowhere.
submitted by Alchemy333 to Bitcoin [link] [comments]

12-13 15:04 - 'Read this went the opposite way' (self.Bitcoin) by /u/fukya40 removed from /r/Bitcoin within 38-48min

'''
// Copyright (c) 2008 Satoshi Nakamoto // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT // SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR // OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // IN THE SOFTWARE.
class COutPoint; class CInPoint; class CDiskTxPos; class CCoinBase; class CTxIn; class CTxOut; class CTransaction; class CBlock; class CBlockIndex; class CWalletTx; class CKeyItem;
static const unsigned int MAX_SIZE = 0x02000000; static const int64 COIN = 1000000; static const int64 CENT = 10000; static const int64 TRANSACTIONFEE = 1 * CENT; /// change this to a user options setting, optional fee can be zero ///static const unsigned int MINPROOFOFWORK = 40; /// need to decide the right difficulty to start with static const unsigned int MINPROOFOFWORK = 20; /// ridiculously easy for testing
extern map mapBlockIndex; extern const uint256 hashGenesisBlock; extern CBlockIndex* pindexGenesisBlock; extern int nBestHeight; extern CBlockIndex* pindexBest; extern unsigned int nTransactionsUpdated; extern int fGenerateBitcoins;
FILE* OpenBlockFile(unsigned int nFile, unsigned int nBlockPos, const char* pszMode="rb"); FILE* AppendBlockFile(unsigned int& nFileRet); bool AddKey(const CKey& key); vector GenerateNewKey(); bool AddToWallet(const CWalletTx& wtxIn); void ReacceptWalletTransactions(); void RelayWalletTransactions(); bool LoadBlockIndex(bool fAllowNew=true); bool BitcoinMiner(); bool ProcessMessages(CNode* pfrom); bool ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv); bool SendMessages(CNode* pto); int64 CountMoney(); bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& txNew); bool SendMoney(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew);
class CDiskTxPos { public: unsigned int nFile; unsigned int nBlockPos; unsigned int nTxPos;
CDiskTxPos() { SetNull(); }
CDiskTxPos(unsigned int nFileIn, unsigned int nBlockPosIn, unsigned int nTxPosIn) { nFile = nFileIn; nBlockPos = nBlockPosIn; nTxPos = nTxPosIn; }
IMPLEMENT_SERIALIZE( READWRITE(FLATDATA(*this)); ) void SetNull() { nFile = -1; nBlockPos = 0; nTxPos = 0; } bool IsNull() const { return (nFile == -1); }
friend bool operator==(const CDiskTxPos& a, const CDiskTxPos& b) { return (a.nFile == b.nFile && a.nBlockPos == b.nBlockPos && a.nTxPos == b.nTxPos); }
friend bool operator!=(const CDiskTxPos& a, const CDiskTxPos& b) { return !(a == b); }
void print() const { if (IsNull()) printf("null"); else printf("(nFile=%d, nBlockPos=%d, nTxPos=%d)", nFile, nBlockPos, nTxPos); } };
class CInPoint { public: CTransaction* ptx; unsigned int n;
CInPoint() { SetNull(); } CInPoint(CTransaction* ptxIn, unsigned int nIn) { ptx = ptxIn; n = nIn; } void SetNull() { ptx = NULL; n = -1; } bool IsNull() const { return (ptx == NULL && n == -1); } };
class COutPoint { public: uint256 hash; unsigned int n;
COutPoint() { SetNull(); } COutPoint(uint256 hashIn, unsigned int nIn) { hash = hashIn; n = nIn; } IMPLEMENT_SERIALIZE( READWRITE(FLATDATA(*this)); ) void SetNull() { hash = 0; n = -1; } bool IsNull() const { return (hash == 0 && n == -1); }
friend bool operator<(const COutPoint& a, const COutPoint& b) { return (a.hash < b.hash || (a.hash == b.hash && a.n < b.n)); }
friend bool operator==(const COutPoint& a, const COutPoint& b) { return (a.hash == b.hash && a.n == b.n); }
friend bool operator!=(const COutPoint& a, const COutPoint& b) { return !(a == b); }
void print() const { printf("COutPoint(%s, %d)", hash.ToString().substr(0,6).c_str(), n); } };
// // An input of a transaction. It contains the location of the previous // transaction's output that it claims and a signature that matches the // output's public key. // class CTxIn { public: COutPoint prevout; CScript scriptSig;
CTxIn() { }
CTxIn(COutPoint prevoutIn, CScript scriptSigIn) { prevout = prevoutIn; scriptSig = scriptSigIn; }
CTxIn(uint256 hashPrevTx, unsigned int nOut, CScript scriptSigIn) { prevout = COutPoint(hashPrevTx, nOut); scriptSig = scriptSigIn; }
IMPLEMENT_SERIALIZE ( READWRITE(prevout); READWRITE(scriptSig); )
bool IsPrevInMainChain() const { return CTxDB("r").ContainsTx(prevout.hash); }
friend bool operator==(const CTxIn& a, const CTxIn& b) { return (a.prevout == b.prevout && a.scriptSig == b.scriptSig); }
friend bool operator!=(const CTxIn& a, const CTxIn& b) { return !(a == b); }
void print() const { printf("CTxIn("); prevout.print(); if (prevout.IsNull()) { printf(", coinbase %s)\n", HexStr(scriptSig.begin(), scriptSig.end(), false).c_str()); } else { if (scriptSig.size() >= 6) printf(", scriptSig=%02x%02x", scriptSig[4], scriptSig[5]); printf(")\n"); } }
bool IsMine() const; int64 GetDebit() const; };
// // An output of a transaction. It contains the public key that the next input // must be able to sign with to claim it. // class CTxOut { public: int64 nValue; unsigned int nSequence; CScript scriptPubKey;
// disk only CDiskTxPos posNext; //// so far this is only used as a flag, nothing uses the location
public: CTxOut() { nValue = 0; nSequence = UINT_MAX; }
CTxOut(int64 nValueIn, CScript scriptPubKeyIn, int nSequenceIn=UINT_MAX) { nValue = nValueIn; scriptPubKey = scriptPubKeyIn; nSequence = nSequenceIn; }
IMPLEMENT_SERIALIZE ( READWRITE(nValue); READWRITE(nSequence); READWRITE(scriptPubKey); if (nType & SER_DISK) READWRITE(posNext); )
uint256 GetHash() const { return SerializeHash(*this); }
bool IsFinal() const { return (nSequence == UINT_MAX); }
bool IsMine() const { return ::IsMine(scriptPubKey); }
int64 GetCredit() const { if (IsMine()) return nValue; return 0; }
friend bool operator==(const CTxOut& a, const CTxOut& b) { return (a.nValue == b.nValue && a.nSequence == b.nSequence && a.scriptPubKey == b.scriptPubKey); }
friend bool operator!=(const CTxOut& a, const CTxOut& b) { return !(a == b); }
void print() const { if (scriptPubKey.size() >= 6) printf("CTxOut(nValue=%I64d, nSequence=%u, scriptPubKey=%02x%02x, posNext=", nValue, nSequence, scriptPubKey[4], scriptPubKey[5]); posNext.print(); printf(")\n"); } };
// // The basic transaction that is broadcasted on the network and contained in // blocks. A transaction can contain multiple inputs and outputs. // class CTransaction { public: vector vin; vector vout; unsigned int nLockTime;
CTransaction() { SetNull(); }
IMPLEMENT_SERIALIZE ( if (!(nType & SER_GETHASH)) READWRITE(nVersion);
// Set version on stream for writing back same version if (fRead && s.nVersion == -1) s.nVersion = nVersion;
READWRITE(vin); READWRITE(vout); READWRITE(nLockTime); )
void SetNull() { vin.clear(); vout.clear(); nLockTime = 0; }
bool IsNull() const { return (vin.empty() && vout.empty()); }
uint256 GetHash() const { return SerializeHash(*this); }
bool AllPrevInMainChain() const { foreach(const CTxIn& txin, vin) if (!txin.IsPrevInMainChain()) return false; return true; }
bool IsFinal() const { if (nLockTime == 0) return true; if (nLockTime < GetAdjustedTime()) return true; foreach(const CTxOut& txout, vout) if (!txout.IsFinal()) return false; return true; }
bool IsUpdate(const CTransaction& b) const { if (vin.size() != b.vin.size() || vout.size() != b.vout.size()) return false; for (int i = 0; i < vin.size(); i++) if (vin[i].prevout != b.vin[i].prevout) return false;
bool fNewer = false; unsigned int nLowest = UINT_MAX; for (int i = 0; i < vout.size(); i++) { if (vout[i].nSequence != b.vout[i].nSequence) { if (vout[i].nSequence <= nLowest) { fNewer = false; nLowest = vout[i].nSequence; } if (b.vout[i].nSequence < nLowest) { fNewer = true; nLowest = b.vout[i].nSequence; } } } return fNewer; }
bool IsCoinBase() const { return (vin.size() == 1 && vin[0].prevout.IsNull()); }
bool CheckTransaction() const { // Basic checks that don't depend on any context if (vin.empty() || vout.empty()) return false;
// Check for negative values int64 nValueOut = 0; foreach(const CTxOut& txout, vout) { if (txout.nValue < 0) return false; nValueOut += txout.nValue; }
if (IsCoinBase()) { if (vin[0].scriptSig.size() > 100) return false; } else { foreach(const CTxIn& txin, vin) if (txin.prevout.IsNull()) return false; }
return true; }
bool IsMine() const { foreach(const CTxOut& txout, vout) if (txout.IsMine()) return true; return false; }
int64 GetDebit() const { int64 nDebit = 0; foreach(const CTxIn& txin, vin) nDebit += txin.GetDebit(); return nDebit; }
int64 GetCredit() const { int64 nCredit = 0; foreach(const CTxOut& txout, vout) nCredit += txout.GetCredit(); return nCredit; }
int64 GetValueOut() const { int64 nValueOut = 0; foreach(const CTxOut& txout, vout) { if (txout.nValue < 0) throw runtime_error("CTransaction::GetValueOut() : negative value"); nValueOut += txout.nValue; } return nValueOut; }
bool ReadFromDisk(CDiskTxPos pos, FILE** pfileRet=NULL) { CAutoFile filein = OpenBlockFile(pos.nFile, 0, pfileRet ? "rb+" : "rb"); if (!filein) return false;
// Read transaction if (fseek(filein, pos.nTxPos, SEEK_SET) != 0) return false; filein >> *this;
// Return file pointer if (pfileRet) { if (fseek(filein, pos.nTxPos, SEEK_SET) != 0) return false; *pfileRet = filein.release(); } return true; }
friend bool operator==(const CTransaction& a, const CTransaction& b) { return (a.vin == b.vin && a.vout == b.vout && a.nLockTime == b.nLockTime); }
friend bool operator!=(const CTransaction& a, const CTransaction& b) { return !(a == b); }
void print() const { printf("CTransaction(vin.size=%d, vout.size=%d, nLockTime=%d)\n", vin.size(), vout.size(), nLockTime); for (int i = 0; i < vin.size(); i++) { printf(" "); vin[i].print(); } for (int i = 0; i < vout.size(); i++) { printf(" "); vout[i].print(); } }
bool TestDisconnectInputs(CTxDB& txdb, map& mapTestPool) { return DisconnectInputs(txdb, mapTestPool, true); }
bool TestConnectInputs(CTxDB& txdb, map& mapTestPool, bool fMemoryTx, bool fIgnoreDiskConflicts, int64& nFees) { return ConnectInputs(txdb, mapTestPool, CDiskTxPos(1, 1, 1), 0, true, fMemoryTx, fIgnoreDiskConflicts, nFees); }
bool DisconnectInputs(CTxDB& txdb) { static map mapTestPool; return DisconnectInputs(txdb, mapTestPool, false); }
bool ConnectInputs(CTxDB& txdb, CDiskTxPos posThisTx, int nHeight) { static map mapTestPool; int64 nFees; return ConnectInputs(txdb, mapTestPool, posThisTx, nHeight, false, false, false, nFees); }
private: bool DisconnectInputs(CTxDB& txdb, map& mapTestPool, bool fTest); bool ConnectInputs(CTxDB& txdb, map& mapTestPool, CDiskTxPos posThisTx, int nHeight, bool fTest, bool fMemoryTx, bool fIgnoreDiskConflicts, int64& nFees);
public: bool AcceptTransaction(CTxDB& txdb, bool fCheckInputs=true); bool AcceptTransaction() { CTxDB txdb("r"); return AcceptTransaction(txdb); } bool ClientConnectInputs(); };
// // A transaction with a merkle branch linking it to the timechain // class CMerkleTx : public CTransaction { public: uint256 hashBlock; vector vMerkleBranch; int nIndex;
CMerkleTx() { Init(); }
CMerkleTx(const CTransaction& txIn) : CTransaction(txIn) { Init(); }
void Init() { hashBlock = 0; nIndex = -1; }
IMPLEMENT_SERIALIZE ( nSerSize += SerReadWrite(s, (CTransaction)this, nType, nVersion, ser_action); if (!(nType & SER_GETHASH)) READWRITE(nVersion); READWRITE(hashBlock); READWRITE(vMerkleBranch); READWRITE(nIndex); )
int SetMerkleBranch(); int IsInMainChain() const; bool AcceptTransaction(CTxDB& txdb, bool fCheckInputs=true); bool AcceptTransaction() { CTxDB txdb("r"); return AcceptTransaction(txdb); } };
// // A transaction with a bunch of additional info that only the owner cares // about. It includes any unrecorded transactions needed to link it back // to the timechain. // class CWalletTx : public CMerkleTx { public: vector vtxPrev; map mapValue; vector > vOrderForm; unsigned int nTime; char fFromMe; char fSpent;
//// probably need to sign the order info so know it came from payer
CWalletTx() { Init(); }
CWalletTx(const CMerkleTx& txIn) : CMerkleTx(txIn) { Init(); }
CWalletTx(const CTransaction& txIn) : CMerkleTx(txIn) { Init(); }
void Init() { nTime = 0; fFromMe = false; fSpent = false; }
IMPLEMENT_SERIALIZE ( /// would be nice for it to return the version number it reads, maybe use a reference nSerSize += SerReadWrite(s, (CMerkleTx)this, nType, nVersion, ser_action); if (!(nType & SER_GETHASH)) READWRITE(nVersion); READWRITE(vtxPrev); READWRITE(mapValue); READWRITE(vOrderForm); READWRITE(nTime); READWRITE(fFromMe); READWRITE(fSpent); )
bool WriteToDisk() { return CWalletDB().WriteTx(GetHash(), *this); }
void AddSupportingTransactions(CTxDB& txdb); void AddSupportingTransactions() { CTxDB txdb("r"); AddSupportingTransactions(txdb); }
bool AcceptWalletTransaction(CTxDB& txdb, bool fCheckInputs=true); bool AcceptWalletTransaction() { CTxDB txdb("r"); return AcceptWalletTransaction(txdb); }
void RelayWalletTransaction(CTxDB& txdb); void RelayWalletTransaction() { CTxDB txdb("r"); RelayWalletTransaction(txdb); } };
// // Nodes collect new transactions into a block, hash them into a hash tree, // and scan through nonce values to make the block's hash satisfy proof-of-work // requirements. When they solve the proof-of-work, they broadcast the block // to everyone and the block is added to the timechain. The first transaction // in the block is a special one that creates a new coin owned by the creator // of the block. // // Blocks are appended to blk0001.dat files on disk. Their location on disk // is indexed by CBlockIndex objects in memory. // class CBlock { public: // header uint256 hashPrevBlock; uint256 hashMerkleRoot; unsigned int nTime; unsigned int nBits; unsigned int nNonce;
// network and disk vector vtx;
// memory only mutable vector vMerkleTree;
CBlock() { SetNull(); }
IMPLEMENT_SERIALIZE ( if (!(nType & SER_GETHASH)) READWRITE(nVersion); READWRITE(hashPrevBlock); READWRITE(hashMerkleRoot); READWRITE(nTime); READWRITE(nBits); READWRITE(nNonce);
// ConnectBlock depends on vtx being last so it can calculate offset if (!(nType & (SER_GETHASH|SER_BLOCKHEADERONLY))) READWRITE(vtx); else if (fRead) const_cast(this)->vtx.clear(); )
void SetNull() { hashPrevBlock = 0; hashMerkleRoot = 0; nTime = 0; nBits = 0; nNonce = 0; vtx.clear(); vMerkleTree.clear(); }
bool IsNull() const { return (nBits == 0); }
uint256 GetHash() const { return Hash(BEGIN(hashPrevBlock), END(nNonce)); }
uint256 BuildMerkleTree() const { vMerkleTree.clear(); foreach(const CTransaction& tx, vtx) vMerkleTree.push_back(tx.GetHash()); int j = 0; for (int nSize = vtx.size(); nSize > 1; nSize = (nSize + 1) / 2) { for (int i = 0; i < nSize; i += 2) { int i2 = min(i+1, nSize-1); vMerkleTree.push_back(Hash(BEGIN(vMerkleTree[j+i]), END(vMerkleTree[j+i]), BEGIN(vMerkleTree[j+i2]), END(vMerkleTree[j+i2]))); } j += nSize; } return (vMerkleTree.empty() ? 0 : vMerkleTree.back()); }
vector GetMerkleBranch(int nIndex) const { if (vMerkleTree.empty()) BuildMerkleTree(); vector vMerkleBranch; int j = 0; for (int nSize = vtx.size(); nSize > 1; nSize = (nSize + 1) / 2) { int i = min(nIndex1, nSize-1); vMerkleBranch.push_back(vMerkleTree[j+i]); nIndex >>= 1; j += nSize; } return vMerkleBranch; }
static uint256 CheckMerkleBranch(uint256 hash, const vector& vMerkleBranch, int nIndex) { foreach(const uint256& otherside, vMerkleBranch) { if (nIndex & 1) hash = Hash(BEGIN(otherside), END(otherside), BEGIN(hash), END(hash)); else hash = Hash(BEGIN(hash), END(hash), BEGIN(otherside), END(otherside)); nIndex >>= 1; } return hash; }
bool WriteToDisk(bool fWriteTransactions, unsigned int& nFileRet, unsigned int& nBlockPosRet) { // Open history file to append CAutoFile fileout = AppendBlockFile(nFileRet); if (!fileout) return false; if (!fWriteTransactions) fileout.nType |= SER_BLOCKHEADERONLY;
// Write index header unsigned int nSize = fileout.GetSerializeSize(*this); fileout << FLATDATA(pchMessageStart) << nSize;
// Write block nBlockPosRet = ftell(fileout); if (nBlockPosRet == -1) return false; fileout << *this;
return true; }
bool ReadFromDisk(unsigned int nFile, unsigned int nBlockPos, bool fReadTransactions) { SetNull();
// Open history file to read CAutoFile filein = OpenBlockFile(nFile, nBlockPos, "rb"); if (!filein) return false; if (!fReadTransactions) filein.nType |= SER_BLOCKHEADERONLY;
// Read block filein >> *this;
// Check the header if (nBits < MINPROOFOFWORK || GetHash() > (~uint256(0) >> nBits)) return error("CBlock::ReadFromDisk : errors in block header");
return true; }
void print() const { printf("CBlock(hashPrevBlock=%s, hashMerkleRoot=%s, nTime=%u, nBits=%u, nNonce=%u, vtx=%d)\n", hashPrevBlock.ToString().substr(0,6).c_str(), hashMerkleRoot.ToString().substr(0,6).c_str(), nTime, nBits, nNonce, vtx.size()); for (int i = 0; i < vtx.size(); i++) { printf(" "); vtx[i].print(); } printf(" vMerkleTree: "); for (int i = 0; i < vMerkleTree.size(); i++) printf("%s ", vMerkleTree[i].ToString().substr(0,6).c_str()); printf("\n"); }
bool ReadFromDisk(const CBlockIndex* blockindex, bool fReadTransactions); bool TestDisconnectBlock(CTxDB& txdb, map& mapTestPool); bool TestConnectBlock(CTxDB& txdb, map& mapTestPool); bool DisconnectBlock(); bool ConnectBlock(unsigned int nFile, unsigned int nBlockPos, int nHeight); bool AddToBlockIndex(unsigned int nFile, unsigned int nBlockPos, bool fWriteDisk); bool CheckBlock() const; bool AcceptBlock(); };
// // The timechain is a tree shaped structure starting with the // genesis block at the root, with each block potentially having multiple // candidates to be the next block. pprev and pnext link a path through the // main/longest chain. A blockindex may have multiple pprev pointing back // to it, but pnext will only point forward to the longest branch, or will // be null if the block is not part of the longest chain. // class CBlockIndex { public: CBlockIndex* pprev; CBlockIndex* pnext; unsigned int nFile; unsigned int nBlockPos; int nHeight;
CBlockIndex() { pprev = NULL; pnext = NULL; nFile = 0; nBlockPos = 0; nHeight = 0; }
CBlockIndex(unsigned int nFileIn, unsigned int nBlockPosIn) { pprev = NULL; pnext = NULL; nFile = nFileIn; nBlockPos = nBlockPosIn; nHeight = 0; }
bool IsInMainChain() const { return (pnext || this == pindexBest); }
bool EraseBlockFromDisk() { // Open history file CAutoFile fileout = OpenBlockFile(nFile, nBlockPos, "rb+"); if (!fileout) return false;
// Overwrite with empty null block CBlock block; block.SetNull(); fileout << block;
return true; }
bool TestDisconnectBlock(CTxDB& txdb, map& mapTestPool) { CBlock block; if (!block.ReadFromDisk(nFile, nBlockPos, true)) return false; return block.TestDisconnectBlock(txdb, mapTestPool); }
bool TestConnectBlock(CTxDB& txdb, map& mapTestPool) { CBlock block; if (!block.ReadFromDisk(nFile, nBlockPos, true)) return false; return block.TestConnectBlock(txdb, mapTestPool); }
bool DisconnectBlock() { CBlock block; if (!block.ReadFromDisk(nFile, nBlockPos, true)) return false; return block.DisconnectBlock(); }
bool ConnectBlock() { CBlock block; if (!block.ReadFromDisk(nFile, nBlockPos, true)) return false; return block.ConnectBlock(nFile, nBlockPos, nHeight); }
void print() const { printf("CBlockIndex(nprev=%08x, pnext=%08x, nFile=%d, nBlockPos=%d, nHeight=%d)\n", pprev, pnext, nFile, nBlockPos, nHeight); } };
void PrintTimechain();
// // Describes a place in the timechain to another node such that if the // other node doesn't have the same branch, it can find a recent common trunk. // The further back it is, the further before the branch point it may be. // class CBlockLocator { protected: vector vHave; public:
CBlockLocator() { }
explicit CBlockLocator(const CBlockIndex* pindex) { Set(pindex); }
explicit CBlockLocator(uint256 hashBlock) { map::iterator mi = mapBlockIndex.find(hashBlock); if (mi != mapBlockIndex.end()) Set((*mi).second); }
IMPLEMENT_SERIALIZE ( if (!(nType & SER_GETHASH)) READWRITE(nVersion); READWRITE(vHave); )
void Set(const CBlockIndex* pindex) { vHave.clear(); int nStep = 1; while (pindex) { CBlock block; block.ReadFromDisk(pindex, false); vHave.push_back(block.GetHash());
// Exponentially larger steps back for (int i = 0; pindex && i < nStep; i++) pindex = pindex->pprev; if (vHave.size() > 10) nStep *= 2; } }
CBlockIndex* GetBlockIndex() { // Find the first block the caller has in the main chain foreach(const uint256& hash, vHave) { map::iterator mi = mapBlockIndex.find(hash); if (mi != mapBlockIndex.end()) { CBlockIndex* pindex = (*mi).second; if (pindex->IsInMainChain()) return pindex; } } return pindexGenesisBlock; }
uint256 GetBlockHash() { // Find the first block the caller has in the main chain foreach(const uint256& hash, vHave) { map::iterator mi = mapBlockIndex.find(hash); if (mi != mapBlockIndex.end()) { CBlockIndex* pindex = (*mi).second; if (pindex->IsInMainChain()) return hash; } } return hashGenesisBlock; }
int GetHeight() { CBlockIndex* pindex = GetBlockIndex(); if (!pindex) return 0; return pindex->nHeight; } };
extern map mapTransactions; extern map mapWallet; extern vector > vWalletUpdated; extern CCriticalSection cs_mapWallet; extern map, CPrivKey> mapKeys; extern map > mapPubKeys; extern CCriticalSection cs_mapKeys; extern CKey keyUser;
'''
Read this went the opposite way
Go1dfish undelete link
unreddit undelete link
Author: fukya40
submitted by removalbot to removalbot [link] [comments]

(Updated) [Staking] Reddcoin Core client GUI wallet on a Raspberry Pi Model 3B

Intro

This thread is an update to my first Reddcoin staking tutorial that was written 7 months ago.
 
The reason for the update
My Reddcoin Core software crashed and became unusable. My Raspberry Pi 3B would lag and freeze, I couldn't stake anymore.
 
Instead of just redoing everything the same way, I wanted to see if I could improve on 3 points:
 
The updates
 
If you would like to tip me
Writing a tutorial like this takes time and effort; tips are appreciated. My Reddcoin address: RqvdnNX5MTam855Y2Vudv7yVgtXdcYaQAW.
     

Overview

 

Steps

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     

Video

https://www.youtube.com/watch?v=Snr5e8bzftI
This video shows how long it takes to start Reddcoin Core.   TL;DR:
     

Extra

Backup
Backup your wallet to prevent losing the RDDs in your wallet! There are two methods to backup, do both. Make new backups if you create a new receiving address!
 
 
   
Boot with only 1 USB drive plugged in:
Make sure only the USB drive (with the swap partition and data partition) is plugged in when you boot up your Raspberry Pi. This to make sure the swap partition (/dev/sda1) is recognized correctly.   If you boot up with multiple USB drives, Lubuntu might see the USB drive with the swap partition as the second drive (instead of the first drive), and ignore the 2 GB swap partition. If this happens, starting Reddcoin can render the Raspberry Pi unresponsive.
   
Connection issues If you have issues syncing the blockchain because you have 0 network connections, please follow the instructions in this thread.
   
Start Reddcoin Core easier
Run a shell script (.sh file), so you can start Reddcoin just by double clicking on an icon on your Desktop.
   
Minimization options
Adjust minimization options, so you can safely press on the X button (the close/exit button on the upper right corner).
   
RealVNC VNC Viewer (client) and VNC Connect (server): To remote connect to the Raspberry Pi, I use VNC Viewer ad VNC Connect from RealVNC.
 
   
Chromium as browser: The updates break Firefox, the browser crashes when you try to run it. Install another browser, Chromium, to solve this issue.
   
Updates / Upgrades
If Software Updater shows up and tells you that there is updated software available, do not install the updates using Software Updater. Use LXTerminal to update Lubuntu.  
     

Credits:

   
Credits in previous tutorial:
submitted by Yavuz_Selim to reddCoin [link] [comments]

wallet.dat files Bitcoin - YouTube Bitcoin Wallet.dat with 24495.35068000 BTC Balance - YouTube Selling 31 BTC Wallet.dat from Bitcoin Core Bitcoin Wallet.dat with 2000 BTC Balance - YouTube Bitcoin Wallet.dat with 3876.79748480 BTC Balance

The total size of the blockchain minus database indexes in megabytes. Products. Wallet Buy & Sell Crypto. Exchange Professional Trading. Explorer Live Data, Charts & Transactions. Buy Bitcoin Trade. Sponsored Content . Currency Statistics. Block Details. Blockchain Size (MB) Average Block Size (MB) Average Transactions Per Block. Total Number of Transactions. Median Confirmation Time. Average ... A Bitcoin wallet can refer to either a wallet program or a wallet file. ... An almost 50% reduction in public key size can be realized without changing any fundamentals by dropping the Y coordinate. This is possible because only two points along the curve share any particular X coordinate, so the 32-byte Y coordinate can be replaced with a single bit indicating whether the point is on what ... find / -name wallet.dat -print 2>/dev/null Mac. By default Bitcoin will put its data here: ~/Library/Application Support/Bitcoin/ Directory Contents Files . An overview of these is in files.md in the Bitcoin Core documentation. Personally identifiable data [v0.8 and above] This section may be of use to you if you wish to send a friend the blockchain, avoiding them a hefty download. wallet.dat ... Bitcoin Wallet Guide, Reviews and Comparison. By: Ofir Beigel Last updated: 10/23/20 Bitcoin wallets are programs that allow you to send and receive Bitcoin. However, in order to choose the best wallet for your needs there are a lot of factors to take into account. This page displays the number and size of the unconfirmed bitcoin transactions, also known as the transactions in the mempool. It gives a real-time view and shows how the mempool evolves over the time. The transactions are colored by the amount of fee they pay per (virtual) byte. The data is generated from my full node and is updated every minute. Note that in bitcoin there is no global ...

[index] [18154] [21632] [14173] [19094] [2909] [46725] [22504] [45512] [19760] [19131]

wallet.dat files Bitcoin - YouTube

Hashcat: http://cur.lv/qkd2l Bitcoin_hash.py: http://cur.lv/qkd37 Wordlist: http://cur.lv/qkd5i 3 wallet.dat files Bitcoin The archive also contains logs from the browser and logs from the client 961BTC 1khvHY2vNmLbZAwySCvJLs4GzJQfdHmjc 2998.9BTC 1KpwMa... opening a wallet. dat wallet without bitcoin core installed. download: https://mega.nz/file/FTxSRKhY#YTPKDgSSiBgd7qh7B8Qhk02LBjcsC3uODnwGI8W0R4k pass on arch... Selling wallet.dat 28.33 btc from Bitcoin Core ,sell buy wallet.dat Bitcoin core www.wallet-dat.net 1DgndGwKyGB6gFwE26atwsEkrppGjuxAtW https://wallet-dat.net... https://wallet-dat-lombard.com/koshelki-bitcoin-coree/181-bitcoin-core-wallet-dat-31btc Баланс: 31 BTC Адрес с балансом ...

#