Largest Cloud Bitcoin Mining Company Genesis Mining

The Retrospect and Prospect of the Crypto Economy——The Development and Evolution of the Consensus Mechanism (Three)

The Retrospect and Prospect of the Crypto Economy——The Development and Evolution of the Consensus Mechanism (Three)

https://preview.redd.it/45wwtygv2rc51.png?width=567&format=png&auto=webp&s=a5f51ea3c620d478231c39e32f198eb64d801897
Foreword
The consensus mechanism is one of the important elements of the blockchain and the core rule of the normal operation of the distributed ledger. It is mainly used to solve the trust problem between people and determine who is responsible for generating new blocks and maintaining the effective unification of the system in the blockchain system. Thus, it has become an everlasting research hot topic in blockchain.
This article starts with the concept and role of the consensus mechanism. First, it enables the reader to have a preliminary understanding of the consensus mechanism as a whole; then starting with the two armies and the Byzantine general problem, the evolution of the consensus mechanism is introduced in the order of the time when the consensus mechanism is proposed; Then, it briefly introduces the current mainstream consensus mechanism from three aspects of concept, working principle and representative project, and compares the advantages and disadvantages of the mainstream consensus mechanism; finally, it gives suggestions on how to choose a consensus mechanism for blockchain projects and pointed out the possibility of the future development of the consensus mechanism.
Contents
First, concept and function of the consensus mechanism
1.1 Concept: The core rules for the normal operation of distributed ledgers
1.2 Role: Solve the trust problem and decide the generation and maintenance of new blocks
1.2.1 Used to solve the trust problem between people
1.2.2 Used to decide who is responsible for generating new blocks and maintaining effective unity in the blockchain system
1.3 Mainstream model of consensus algorithm
Second, the origin of the consensus mechanism
2.1 The two armies and the Byzantine generals
2.1.1 The two armies problem
2.1.2 The Byzantine generals problem
2.2 Development history of consensus mechanism
2.2.1 Classification of consensus mechanism
2.2.2 Development frontier of consensus mechanism
Third, Common Consensus System
Fourth, Selection of consensus mechanism and summary of current situation
4.1 How to choose a consensus mechanism that suits you
4.1.1 Determine whether the final result is important
4.1.2 Determine how fast the application process needs to be
4.1.2 Determining the degree to which the application requires for decentralization
4.1.3 Determine whether the system can be terminated
4.1.4 Select a suitable consensus algorithm after weighing the advantages and disadvantages
4.2 Future development of consensus mechanism
Last lecture review: Chapter 1 Concept and Function of Consensus Mechanism plus Chapter 2 Origin of Consensus Mechanism
Last lecture review: Chapter 3 Common Consensus Mechanisms

Chapter 3 Common Consensus Mechanisms (Part 2)
Figure 6 Summary of relatively mainstream consensus mechanisms

https://preview.redd.it/2yepvjjy2rc51.png?width=567&format=png&auto=webp&s=acaed31fa6106ac2f501fe2cb284f66bb2258a0e
Source: Hasib Anwar, "Consensus Algorithms: The Root Of The Blockchain Technology"
The picture above shows 14 relatively mainstream consensus mechanisms summarized by a geek Hasib Anwar, including PoW (Proof of Work), PoS (Proof of Stake), DPoS (Delegated Proof of Stake), LPoS (Lease Proof of Stake), PoET ( Proof of Elapsed Time), PBFT (Practical Byzantine Fault Tolerance), SBFT (Simple Byzantine Fault Tolerance), DBFT (Delegated Byzantine Fault Tolerance), DAG (Directed Acyclic Graph), Proof-of-Activity (Proof of Activity), Proof-of- Importance (Proof of Importance), Proof-of-Capacity (Proof of Capacity), Proof-of-Burn ( Proof of Burn), Proof-of-Weight (Proof of Weight).
Next, we will mainly introduce and analyze the top ten consensus mechanisms of the current blockchain.
》DBFT
-Concept:
Delegated Byzantine fault tolerance. The improved Byzantine fault-tolerant algorithm makes it suitable for blockchain systems. The system consists of nodes, delegators (who can approve blocks), and speakers (who proposes the next block). It is a consensus algorithm that guarantees fault tolerance implemented inside the NEO blockchain.
-Principle:
In this mechanism, there are two participants: the professional bookkeeper "bookkeeping node" and the ordinary users in the system.
Ordinary users vote based on the proportion of holding stake to determine the bookkeeping node. When a consensus is required, a spokesperson is randomly selected from these bookkeeping nodes to draw up a plan, and then other bookkeeping nodes will vote basing on the Byzantine fault tolerance algorithm.That is, majority principle. If more than 66% of the nodes agree to the spokesperson’ plan, a consensus is reached; otherwise, the spokesperson is re-elected and the voting process is repeated.
-Representative application: Neo, etc.
》PoA
-Concept:
Proof of authority. That is, certified by some accredited accounts, these accredited accounts are called "validators". The software that the verifier runs that supports the verifier to place transactions in blocks.
-Principle:
Three conditions:
  1. The identity must be formally verified on the chain, and the information can be cross-verified in a publicly available domain;
  2. The qualifications must be difficult to obtain, so that the rights of the verification block obtained are precious enough;
  3. The authoritative inspection and procedures must be completely unified.
With PoA, every individual has the right to become a verifier, so there is an incentive to maintain the position of the verifier once acquired. By attaching a reputation to the identity, the verifier can be encouraged to maintain the transaction process. Because the verifier does not want to gain a negative reputation, it will lose its hard-won verifier status.
-Representative applications: VeChain, etc.
》DAG
-Concept:
Directed acyclic graph. Each newly added unit in the DAG is not only added to the long chain block, but added to all the previous blocks, verifying each new unit and confirming its parent unit and the parent unit of the parent unit, and gradually confirming until the genesis unit. As the hash of its parent unit is included in its own unit, the blockchains of all transactions are connected to each other to form a graph-like structure with time.
-Principle:
In the DAG network, each node can be a trader and a validator, because the transaction processing in DAG is done by the transaction node itself. Taking IOTA as an example, IOTA’s Tangle led
ger does not need to pay transaction fees while ensuring high-speed transaction processing. However, it does not mean that the transaction is free, because in this ledger, the initiation of each transaction needs to verify the other two random transactions first, and connect the transaction initiated by itself to these two transactions, so the responsibility that miners on the blockchain bear is distributed to all traders. The DAG method of processing transactions can be called asynchronous processing mode.
Figure 10 The difference between the traditional blockchain structure and the DAG structure

https://preview.redd.it/1xfssxj03rc51.png?width=553&format=png&auto=webp&s=95c382f81943c9a188a89ac6b2dadf64446589e6
-Representative applications: IOTA, etc.
》PoET
-Concept:
Proof of elapsed time. That is, it is usually used in a permissioned blockchain network. It can determine the mining rights of the block holders in the network. The permissioned blockchain network requires any prospective participants to verify their identity before joining. According to the principles of the fair lottery system, each node is equally likely to become the winner.
-Principle:
Each participating node in the network must wait for a randomly selected period, and the first node to complete the set waiting time will get a new block. Each node in the blockchain network will generate a random waiting time and sleep for a set time. The node that wakes up first, that is, the node with the shortest waiting time, wakes up and submits a new block to the blockchain, and then broadcasts the necessary information to the entire peer-to-peer network. The same process will be repeated to find the next block.
Two factors:
  1. Participating nodes will naturally select a random time in nature, rather than deliberately;
  2. The winner did complete the waiting time.
-Representative application: HyperLedger Sawtooth, etc.
》PoSV
-Concept:
Proof of stake velocity. Proposed by Reddcoin, drawing on the concept of "money circulation speed" in economics, it mainly allocates bookkeeping rights based on the coin age of nodes participating in the competition.
-Principle:
PoSV also allocates accounting rights according to the coin age of the nodes participating in the competition, but modifies the coin age calculation formula to a function of exponential decay of growth rate. Taking Reddcoin as an example, Reddcoin sets the half-life of the coin age growth rate to 1 month. Assuming that the unit token can accumulate 1CoinDay coin age on the first day, only 0.5CoinDay coin age can be accumulated on the 31st day, and only 0.25CoinDay coin age can be accumulated on the 61st day, and so on. In this way, the nodes are encouraged to use the token to conduct a transaction after holding the token for a period of time, thereby restarting the calculation of the coin age and increasing the circulation speed of the token in the network.
-Representative applications: Reddcoin, etc.
Table 2 Comparison of the advantages and disadvantages of current mainstream consensus mechanisms

https://preview.redd.it/kb04i7eh3rc51.png?width=1236&format=png&auto=webp&s=42de13bc99afaf258c0a740a6618e2d579b59100
Source: network resources
Chapter 4 Summary of the Selection and Status Quo of Consensus Mechanism
4.1 How to choose a consensus mechanism that suits you
Step 1: Determine whether the final result is important
For some applications, the end result is very important. If you are building a new payment system that can support very small amounts, it is acceptable for the transaction result to change. Similarly, if you are creating a new distributed social network, 100% guarantee that the status is updated immediately is not particularly necessary. On the contrary, if you are creating a new distributed protocol, the final result is critical to the user experience. For example, Bitcoin has a final confirmation time of about 1 hour, Ethereum has a final confirmation time of about 6 minutes, and Tendermint Core only has a final confirmation time of 1 second.
Step 2: Determine how fast the application process needs to be
If you are building a game, is it reasonable to wait 15 seconds before each action? Due to the low block processing time of Ethereum, games built on it will cause poor user experience due to Ethereum's throughput. However, the application for the transfer of housing property rights can be run on Ethereum. Use the Cosmos SDK to build an application that allows developers to freely use Tendermint Core. It has a short block processing time and high throughput, and is capable of processing 10,000 transactions per second. You can reduce the required communication overhead and speed up the application by setting the maximum number of validators for the application.
Step 3: Determine the application's demand for decentralization
Some applications such as games may not require very high censorship resistance as a by-product of decentralization. In theory, does it really matter that the validator can create a cartel in the game and reverse the transaction result for profit? If it is not important, a blockchain such as EOS may be more suitable for your needs because of the fast transaction speed and free fees. However, some applications such as autonomous banks are more powerful and decentralized. Although Ethereum is considered to be decentralized, some supporters claim that Ethereum's mining pool is an important part of centralized platform, although there are actually only 11 validators (mining pools). One of the major benefits of building your own blockchain instead of building on a smart contract platform is that you can customize the way the application completes verification. However, it is difficult to build your own blockchain, so the Cosmos SDK is very useful, you can easily build your own blockchain and customize the degree of decentralization you need.
Step 4: Determine whether the system can be terminated
If you are building a new application similar to a distributed ride-sharing service, then ensuring 24/7 service must be the first priority, even if there are occasional errors in accounting similar to transactions. One of the properties of Tendermint Core is that if there is a disagreement between network validators, the network will suspend operations instead of proceeding erroneous transactions. Applications such as decentralized exchanges require correctness at all costs-if there is a problem, it is far better to suspend trading on the decentralized exchange than there may be trading problems.
Summary: Choose a suitable consensus algorithm after weighing the advantages and disadvantages
All in all, there is no single best consensus algorithm. Each consensus algorithm has its own value and advantages. You need to have your own judgments and choices. However, by understanding the relevant processes of the consensus mechanism, including proposals and agreements, and establishing a framework to consider the types of consensus algorithms that your application may require, you should be able to make wiser decisions.
4.2 Future development of consensus mechanism
The consensus algorithm is one of the core elements of the blockchain. Although there are more than 30 consensus mechanisms listed in the article, there are still many niche consensus mechanisms that may not be discussed. As the blockchain technology is gradually known and accepted by the public, more and more newer and better consensus algorithms may appear in the future, which may be brand-new consensus algorithms, and more should be improvement and optimization version based on the current consensus algorithm.
After 2016 and 2017 years’ fast development, the current consensus algorithm does not have a recognized evaluation standard, but is generally more biased towards fairness and decentralization, as well as some technical related issues, such as energy consumption and scalability , Fault tolerance and security, etc. However, blockchain technology must be combined with requirements and application scenarios, and the consensus mechanism algorithm and incentive mechanism are inseparable. How to customize a suitable consensus mechanism according to the characteristics of your own project and optimize the current consensus mechanism will become the future direction of consensus mechanism development
CelesOS
As the first DPOW financial blockchain operating system, CelesOS adopts consensus mechanism 3.0 to break through the "impossible triangle", which can provide high TPS while also allowing for decentralization. Committed to creating a financial blockchain operating system that embraces supervision, providing services for financial institutions and the development of applications on the supervision chain, and formulating a role and consensus ecological supervision layer agreement for supervision.
The CelesOS team is dedicated to building a bridge between blockchain and regulatory agencies/financial industry. We believe that only blockchain technology that cooperates with regulators will have a real future. We believe in and contribute to achieving this goal.
📷Website
https://www.celesos.com/
📷 Telegram
https://t.me/celeschain
📷 Twitter
https://twitter.com/CelesChain
📷 Reddit
https://www.reddit.com/useCelesOS
📷 Medium
https://medium.com/@celesos
📷 Facebook
https://www.facebook.com/CelesOS1
📷 Youtube
https://www.youtube.com/channel/UC1Xsd8wU957D-R8RQVZPfGA
submitted by CelesOS to u/CelesOS [link] [comments]

The new cryptocurrency "ETX" is been mining, its technology and potential have attracted much attention!

The new cryptocurrency
As the culmination of a new round of information technology innovation, the application of blockchain in the economic industry is pushing the entire economic system to achieve technological change, organizational change and efficiency change. The implementation of blockchain technology will bring the existing business model Refactoring. Among them, Bitcoin, as a representative of blockchain technology, has been in operation for 11 years from 2009 to the present. It has survived some crises and has been constantly improving and upgrading.
On January 3, 2009, the first block: the genesis block was born, the first miner and bitcoin owner: Satoshi Nakamoto, the reward generated by the first block: 50 bitcoins. This also means that the formal birth of blockchain technology and digital currency has historical significance for today's digital currency market.

https://preview.redd.it/uyjjvx99ars41.jpg?width=640&format=pjpg&auto=webp&s=0141ed26e5c38e4bd9fc610a13b4339f84656378
In the process of continuous development and improvement of the blockchain, many more excellent digital currencies have emerged, both from the technical level and the future vision, they all have relatively good performance. ETX (EthereumX-NET) is one of them, and it has been loved by digital currency enthusiasts in the early days of its birth. ETX public chain adopts a brand-new blockchain system architecture and is positioned as an easy-to-use high-performance blockchain platform designed to achieve the performance expansion of distributed applications to meet the real needs of the real world.
In order to reduce the pressure on the main chain, ETX (EthereumX -NET) adopts a layered architecture of main chain + side chain. The main chain is only responsible for the circulation of ETX. DAPP runs on the side chain and completes the safe transfer of value between the main chain and the side chain through the ETX side chain transfer mechanism. The ETX public chain uses the mechanism of arbitrators' joint signature to ensure the security of transfers with the side chain. The main chain's currency holders jointly elect a certain number of "arbitrators". By signing, most arbitrators' signatures can unlock transactions on the main chain from the account representing the side chain to the ordinary account.

https://preview.redd.it/jxwavl0cars41.jpg?width=640&format=pjpg&auto=webp&s=0edd4a872c293ef372ce47a47f3b022eb9da50de
The ETX (EthereumX-NET) ecosystem has mining with a diversified main chain, and further releases the value of computing power through technology to bring higher returns to customers. In other words, these calculations can be used to do other things. Secondly, the ETX mining pool provides a one-stop node mining service for the mining pool for the main chain of ETX relying on the PoW + DPoS consensus mechanism. Election to the ETX mining pool seed node is the first step in mining ETX mining pool nodes. Next, the ETX mining pool will launch more node mining services under the PoW + DPoS consensus mechanism. At that time, miners can participate in mining and obtain mining rewards only by proxy voting.

https://preview.redd.it/yib6c1bears41.jpg?width=640&format=pjpg&auto=webp&s=aecf7b0cefa8b819b90c7631f7c20bcaea8265b2
The technology and potential of the digital currency ETX (EthereumX -NET) that can be tapped are highly concerned. In the future, we will be able to make great achievements. Let us look forward to it together. I believe that in the near future, ETX (EthereumX-NET) will give us a generous return . (There are risks in the market, investment needs to be cautious, please do as your capability permits.)
submitted by BitRay2077 to u/BitRay2077 [link] [comments]

In depth interview with Mr. Feng: MW is not only the commercial incentive layer of IPFS

Why did early bitcoin players play MW?Why is blockchain + distributed storage the only industry that can combine mining with practice?How can human beings do things beneficial to social storage while consuming a lot of resources?Special guest Mr. Feng: early believers in bitcoin, co-founder ofMirror World Network MW, to solve our doubts one by one!
Hello, I'm Mr.Feng. I started my business in 2012.I'm an early believer in bitcoin. After two years of silence, I returned to the industry with the help of a group of friends.During this period, a lot of research has been done on distributed storage, including IPFS. So this project is also about the field of distributed storage. I think blockchain + distributed storage is the only industry that can combine mining with practice. While human beings consume a lot of resources, it can also be a commercial storage network beneficial to society. MW is a mature landing project that applies IPFS technology to actual storage, and creates a feasible solution for the landing of blockchain industry.
1. I believe that after your self introduction, many audience friends are concerned about what mirror network is doing recently. Can you share it with audience friends?What achievements have mirror network made in these years?
MW is building an easy-to-use and available distributed storage network, which creates a new computing paradigm and collaboration mode of low-cost trust building in an untrusted competitive environment.We have three years of technical precipitation and have drawn on the experience of IPFS, Alibaba cloud OSS, stoij and other technologies at home and abroad. At present, the code base is close to 900000 lines, and it will also be open-source in the future. Before that, we have run a relatively stable internal test network, and many friends have participated in it.In the next three to four months, we will release our technical achievements, including practical cases, and leave a message for you.
2.What the difference between MW and filecoin?What is the core competitiveness of MW?
I believe you have known IPFS for a long time. Filecoin is the incentive layer of IPFS. To put it simply, it is the financing tool of IPFS. It was dazzling at that time.At the same time, storj and SIA did well.We also chose this way at that time. The original intention of MW is to do real distributed storage. I think MW different from filecoin in terms of starting point. The core competitiveness of MW is technology inclusiveness. We integrate decentralized storage protocol and centralized storage protocol to solve the game between decentralized storage protocol, regulatory layer and practicability.
3.Now, MW public chain has been able to apply IPFS technology to actual storage very mature, and it is the only one.what kind of difficulties did MW encounter and how did you solve them?
In January, we asked for opinions on a small scale in the industry. At that time, we fully demonstrated the storage function and blockchain information, which was unanimously recognized by everyone.Because the team is mainly technical members, the economic model should be the biggest difficulty. After extensive collection of opinions, we adjusted it no less than ten times. Finally, we chose the open and inclusive community governance scheme. There is no model, fair competition, and community motivation is our goal.
4.MW will open the test network on April 18,How should interested users participate in the test?Is there a reward for the test?
Yes, the public beta will be officially launched on April 18, 2020. It will be divided into three stages: pioneer, union and world. You can go to mw.run see the road map , there is a threshold at the earliest stage of the pioneer stage. We need to manually authenticate the added equipment to ensure the stability and robustness of the initial stage of the network, but there will be no block reward, only contribution reward provided by the foundation.After the network is stable, we will open up the block reward and enter the computing power contest period. There will be rewards in the whole public beta stage. You only need to send an email to: [email protected] to apply for joining.
5. Distributed storage mining has always been a concern of miners. What should be paid attention to when mining in MW test network?What are the requirements for mining machines?What factors will affect the mining revenue?
I like to share with you the consensus mechanism of MW. In order to make more storage devices join the MW ecosystem more fairly, and further increase the number of stable nodes in the network to improve the network dispersion, MW adopts DPoS consensus and POC consensus based on weight table.How to understand this? In fact, MW is a very inclusive project. Simply speaking, it is as simple as bitcoin mining through the competition for computing power!We have a set of strict weight calculation and distribution mechanism, which is equivalent to the law of the whole network. It will be announced in genesis block. At present, the size of storage space has the most direct impact on the income. In addition, we have a unique mining pool system, where everyone can establish a mining pool and participate in mining dividends together without having equipment.We don't have too many requirements for mining machines. At present, we only have requirements for network environment, and we need public IP.
6.In your opinion, what is the real "visual" IPFS storage system?How MW achieve "availability" and "ease of use" when building a distributed file storage network?
"Visualization" is actually very easy to understand, that is, it can be seen and felt.Now we have developed a complete visual storage path, and MW is a typical representative of visual storage.Here I highly recommend our internal measurement network that you experience. Like using a network disk, your files can be segmented, hashed and encrypted after uploading. Finally, they can be completely recovered and downloaded. We also made a short tutorial, which can be watched and understood by interested friends.In addition, our goal is to make the IPFS distributed storage system available to all ordinary people, rather than setting too high a threshold, which represents ease of use and availability.
If you want to participate in the internal test, you can contact us before April 18 to register. We will also provide 1000 coins for free.After the test network was officially launched on April 18, all data of the internal test will be reset.
7. IPFS commercial incentive layer, but also what value can MW provide us?What is the ultimate vision of the MW?
MW network can do the following:
a.establish an open distributed blockchain storage network, form a multi chain ecology with existing networks and public chains, and complete data and value transmission.
b.set up a component distributed storage network with idle storage resources in the enterprise and individuals, and deploy various public chains, storage networks and individual nodes.
c.build a global distributed cloud storage compatible with IPFS, public cloud storage and private cloud storage.
Secondly, we need to talk about our collective chain architecture. In the public chain part, MW is an open blockchain + distributed storage system, which mainly provides benefits for the miners and maintains the stability of the network. We will also make an alliance chain in China. MW will become an application network of small distributed data center, providing users with low cost, security and high private storage services can also be used to supervise and audit enterprises and governments in some specific fields or scenarios.
Finally, we can provide data backup, verification and query services for other public chain (open source chain) data.MW is an underlying system focusing on distributed storage.
8.Security has always been a key concern of people. In terms of data security, how does the mirror network ensure data security?
Data loss and privacy are the focus of data storage. I'm sure you have heard a lot of news, including customer information disclosure, downtime, server crash, selling customer privacy and so on. In fact, this is some of the problems that central storage will face. With the continuous growth of data and the improvement of people requirements for data security, the data storage mode is also generating iterations, and IPFS protocol is a very good solution to the privacy processing,On the basis of IPFS, MW also uses technologies such as file segmentation, multi backup, encryption, multi role, data correction and deletion to ensure the data security of users.One of the simplest understandings is that we will always copy three file fragments automatically in the network node to ensure the data security.
9.With the advent of 5g cloud computing era, people have new requirements for bandwidth and traffic. How is the layout of MW?How will distributed storage develop in the future?
We are full of expectations for 5g era, which is one of the reasons why we have only launched MW until now. The small distributed storage computing center close to users is more suitable for the needs of the future era. We will set up a demonstration data center in the public test network, and conduct commercial demonstration for the storage space provided by enterprises.
At the end of last year, I read a research report jointly issued. By 2023, the data storage volume will be twice that of 2019. At present, the industry is in a high-speed development stage, in which distributed storage will enter the mainstream storage market. We have planned a three-year development path, starting with cold data, such as archived data, infrequently called data, etc., public chain miner Hosting as a data center is the business model of our alliance chain. Compared with the traditional data center or cloud, we have a natural price advantage. We can even achieve 10% of the price of Tencent cloud and Alibaba cloud equivalent products. When 5g / 6G is mature, we will enter the mainstream storage market.
In the future, we also hope that global storage, open-source public chains, and enterprises and individuals with storage resources can join Mirror World Network to provide a solid infrastructure for future storage methods, and obtain appropriate rewards.
submitted by MirrorWorldNetwork to u/MirrorWorldNetwork [link] [comments]

The Rise and Fall of a Bitcoin Mining Scheme That Was "Too Big to Fail"

This is the best tl;dr I could make, original reduced by 95%. (I'm a bot)
While the BCN promoters bragged that they had "The most transparent company in the history of the world," a venture that was "Too big to fail," prosecutors accuse them of operating an updated version of a classic Ponzi scheme - making exaggerated claims about mining capability they didn't have, doling out inflated earnings to early investors in order to rope in more suckers, and taking huge rake-offs for themselves, much of it in the form of commissions from a multi-level marketing setup that offered investors bonuses for recruiting new members.
Ever since the "Genesis" block of Bitcoin was first mined eleven years ago, there have been convoluted efforts to game the system, along with cryptocurrency empires that were too big to fail but did.
As speculation in cryptocurrencies has spread, more investors have also been drawn to the arcane process of Bitcoin mining - even though the chances of striking it rich in the mining business are uncertain at best, and next to none in the pyramid-scheme mining pool that BCN was offering.
Weeks claims to have brokered sales of more than $60 million in mining equipment to BCN, and he led tours of the data center in Iceland where much of the mining was taking place.
In one video, Medlin can be seen bragging that BCN would soon be mining at a rate of 1100 petahash per second, raking in $10 million to $20 million a month in Bitcoin.
The actual dollar value of its mining production is difficult to calculate, since the price of both cryptocurrencies fluctuated wildly in the course of BCN's operation, but a conservative estimate would be in the $300 million to $500 million range.
Summary Source | FAQ | Feedback | Top keywords: mine#1 week#2 BCN#3 Bitcoin#4 investor#5
Post found in /technology, /Longreads and /Buttcoin.
NOTICE: This thread is for discussing the submission topic. Please do not discuss the concept of the autotldr bot here.
submitted by autotldr to autotldr [link] [comments]

Is Genesis Mining worth it? I created a Genesis Mining profitability calculator in Google sheets to find out.

TL;DR: I attempt to overcome the pitfalls of forecasting genesis mining contract profitability for Ethereum, Monero, and Zcash.
The original Medium post can be found here: https://medium.com/@spreadstreet/is-genesis-mining-worth-it-a-genesis-mining-profitability-calculator-youll-actually-use-a06d916bf7bc
BitPay is on pace to process over $1B annually in bitcoin payment acceptance and payouts, and has already grown their payments dollar volume 328% year-over-year, according to a recent blog post on the BitPay website.
The very nature of cryptocurrencies requires transactions to be verified by miners. What does this mean?
  1. Cryptocurrency transactions are verified by a network of nodes, then recorded in a publicly distributed ledger known as a “blockchain”, which authenticates the coins as monetary units of measurement – or money.
  2. Cryptocurrency mining refers to coins created as a reward in which the users of the network verify and record transactions on this very blockchain. Users who are able to successfully verify the transactions receive fees and rewards in the form of brand new coins.
And Genesis Mining stands as the largest cryptocurrency cloud mining company in the world.
A user can rent "hashing power" in the form of a two-year contract from Genesis for a one-time, upfront fee.
In turn, they receive daily payouts of whatever specific cryptocurrency they purchased the contract for.

THE PROBLEM

While Genesis Mining has done a great job breaking down a complex problem into an easy-to-understand business model, users consistently have one big question:
"How profitable is {x} contract?" - Everybody, ever
While the user is able to see the upfront cost, they are unable to get an idea of how many coins they will receive by the end of the contract.

WHY THE PROBLEM EXISTS

The problem exists, because of two major uncertainties surrounding cryptocurrencies:
  1. Where the price of the currency will fluctuate over time
  2. Where the network hashrate (aka, the mining power of the entire network) will fluctuate over time
Both of these inputs are extremely volatile, and have a huge degree of uncertainty in the near and distant future.
What I will attempt to do in this exercise, is build a profitability calculator for Ethereum, Monero, and Zcash. Each of these cryptocurrencies is currently available on the website as of 11/7/2017.
Each cryptocurrency has three contracts, and I will formulate 4 different scenarios to try and capture a profitability "range".
Note: Do not take any of the words in this post as financial advice or recommendations. These are merely simulations that have their own issues and pitfalls, and are not to be used as the end-all, be-all decision.

THE ASSUMPTIONS

Due to the difficulty in forecasting both price and nethash, I was forced into a few assumptions:
  1. The forecasted price method is a Monte Carlo simulation using a geometric Brownian Motion ran 1,000 times. I covered the full methodology in a prior blog post
  2. The base network hashrate follows along very closely with the movements in price. This assumption I am the least confident about, as network hash has been shown to deviate at certain times
  3. I attempt to cover the shortfall in network hash rate with two different scenarios (shown below).
  4. I assume we hold all coins until the end of the contract, and assign a value to the portfolio based on $USD
  5. I do not run any scenarios of converting a currency into another currency
  6. I do not account for any significant changes to the underlying algorithm, such as the "Casper" Ethereum update (see 'THE DIFFICULTY BOMB' below)
Obviously any slight change could drastically alter these assumptions, but let's take a look at the different scenarios.

THE SCENARIOS

Description of Scenarios
Instead of calculating just a base scenario (which every other calculator on the web does) I wanted to come up with different scenarios to get an idea of what could be.
  1. Base - Assume no change in price or network hashrate for the duration of the contract
  2. Median - Run a full 1,000 trial simulation of prices and network hash rate, and use the median values for each
  3. Conservative - The same as Median, but instead use a price forecast that is 1 standard deviation below the median price
  4. Aggressive - The same as Median, but instead use a price forecast that is 1 standard deviation above the median price

APIs USED

  1. Spreadstreet Google Sheets Add-in
  2. Bitfinex API - To pull in historical data for each currency
  3. WhatToMine API - For nethash statistics
  4. CoinMarketCap - Updated prices

ETHEREUM

The only way to utilize Ethereum is with the product from mining.
But this shortchanges the additional value of mining Ether. It is also absolutely required for securing the Ethereum network as it creates, verifies, publishes, and propagates blocks in the blockchain.
The overall term "Ethereum Mining" is the process of mining Ether. Ether is an absolute essential, as it serves as fuel for the smooth running of the Ethereum platform.
Ether is used as an incentive to motivate developers to create top notch applications.

THE DIFFICULTY BOMB

Sometime in the future (we can't be certain when), ethereum will likely switch from its proof-of-work consensus algorithm to Casper, a proof-of-stake system its developers are now in the throes of completing.
From Blockonomi:
As opposed to the PoW consensus protocol, the PoS protocol achieves consensus through stakers—sometimes referred to as minters, too—who “stake” their coins by locking them down in specialized wallets.
With these stakers at work, mining will become redundant, meaning the Ethereum network post-Casper will rely on stakers and staking pools instead of miners for its operability.
Genesis Mining has a prelim plan in place for this scenario:
The Ethererum Mining plans will run for a maximum of 24 months, however, should Ethereum (“ETH”) switch to proof-of-stake before the end of the term, we will use the leased hardware on a best-effort basis to mine the most profitable coin with that hardware for you.
Very simply put, this changes the economics of contract profitability significantly. We are going to ignore that update for now, but it may make sense to stay away from the contracts in the short-term.

THE CONTRACTS

Ethereum Mining Contracts Comparison

ONE-YEAR PRICE FORECAST

Ethereum One Year Price Simulation
Here we can see one of 1,000 price simulations run to inform our forecast for the Median, Conservative, and Aggressive scenarios.
*Why is the price so high? This is what happens when you have a volatile currency in a simulation that does not have changes in said volatility. When a currency can move 20% in one day, it is not uncommon to see price movements like this. I mean, shit, Ethereum grew 25x in one year.

RETURN ON INVESTMENT

Ethereum Profit and ROI Comparison

VERDICT

Base performance ranges from 30% to 39% ROI, and is higher than the Median scenario by ~10%.
The conservative scenario shows a loss of between 59-62%, and the aggressive scenario shows a gain between 318% and 347%.
Difficulty bomb in the near-future presents tremendous uncertainty.

MONERO

From Cryptocompare:
Monero (XMR) is a Cryptonote algorithm based cryptocurrency, it relies on Ring Signatures in order to provide a certain degree of privacy when making a transaction. Monero is a Proof of Work cryptocurrency that can be mined with computational power from a CPU or GPU. There are currently no ASICs for Monero, which means that anyone with a computer can mine it.

THE CONTRACTS

Monero Mining Contracts Comparison

ONE-YEAR PRICE FORECAST

MoneroOne Year Price Simulation
We run the same Monte Carlo simulation to inform our forecast for the Median, Conservative, and Aggressive scenarios.
Why is the price so high? See Ethereum up above.
How is it possible for the "Conservative" scenario to be higher than the base price? Good question, and i'm glad you brought it up. The Monero currency has been not only really volatile, but drifting upwards at a pretty high rate.
The results are also being skewed by a recent uptick on November 6th where the price jumped by ~18%.
This may represent an opportunity for contract investment, but more analysis is needed.

RETURN ON INVESTMENT

Monero Profit and ROI Comparison

VERDICT

Base performance ranges from 87% to 95% ROI, with performance in the Median scenario lower by 5-6%.
The conservative scenario shows a loss of between 63-64%, and the aggressive scenario shows a gain between 795% and 832%.
To reiterate, the aggressive scenario is very much influenced by the recent uptick in volatility, so be weary of those high numbers.

ZCASH

ZCash uses Equihash as an hashing algorithm, which is an asymmetric memory-hard PoW algorithm based on the generalized birthday problem (I don't know what the hell this means, but it sounds fancy).
It relies on high RAM requirements to bottleneck the generation of proofs and making ASIC development unfeasible, much like Ethereum.

THE CONTRACTS

Zcash Mining Contracts Comparison

ONE-YEAR PRICE FORECAST

Zcash One Year Price Simulation
Here we can see one of 1,000 price simulations run to inform our forecast for the Median, Conservative, and Aggressive scenarios.
*Why is the price so high? See: Ethereum up above.

RETURN ON INVESTMENT

Zcash Profit and ROI Comparison

VERDICT

Base performance ranges from 51% to 65% ROI, and surprisingly lags the Median scenario by 4-6%.
The conservative scenario shows a loss of between 56-60%, and the aggressive scenario shows a gain between 490% and 540%.

CONCLUSION

The initial upfront costs and potential profitability are hidden when investing in hashing power contracts like Genesis Mining.
However with some robust analysis, we can get a better idea of how to assess the potential profitability of a two-year deal.
As we continue to evolve our thinking, better methods and analysis will eventually surface. Hopefully this industry can become a great avenue for side income.
If you want your own copy of the analysis and calculations, you can find it here:
Genesis Mining Profit Calculator
Cheers, and happy hunting!

RELATED POSTS

How to Create an Ethereum Mining Calculator from Start to Finish
10 Statistical Price Predictions for 10 Cryptocurrencies
Bitcoin Madness: How to Simulate Bitcoin Prices in Google Sheets

ABOUT THE AUTHOR

John Young is the founder of Spreadstreet.io, former Financial Analyst for a big-ass company, and runner-up in the 6th grade spelling bee. He would have invested in Google if he knew about it...and had any money.
He is the author of the Spreadstreet blog, which has over 3 readers (not a typo). He hopes to hit 10, but honestly writing is a lot of work.
submitted by 1kexperimentdotcom to EtherMining [link] [comments]

I’ve been researching privacy coins deeply and feel I’ve reached a sufficient findings to merit sharing my stance re SUMO.

By Taylor Margot. Everyone should read this!
THE BASICS
SUMOkoin is a fork of MONERO (XMR). XMR is a fork of Bytecoin. In my opinion, XMR is hands down the most undervalued coin in the top 15. Its hurdle is that people do not know how to price in privacy to the price of a coin yet. Once people figure out how to accurately assess the value privacy into the value of a coin, XMR, along with other privacy coins like SUMOkoin, will go parabolic.
Let’s be clear about something. I am not here to argue SUMOkoin is superior to XMR. That’s not what this article is about and frankly is missing the point. I don’t find the SUMOkoin vs. XMR debate interesting. From where I stand, investing in SUMOkoin has nothing to do with SUMOkoin overtaking XMR or who has superior tech. If anything, I think the merits of XMR underline the value of SUMOkoin. What I do find interesting is return on investment (“ROI”).
Imagine SUMO was an upcoming ICO. But you knew ahead of time that they had a proven product-market fit and an awesome, blue chip code base. That’s basically what you have in SUMO. Most good ICOs raise over 20mil (meaning their starting market cap is $20 mil) but after that, it’s a crapshoot. Investing in SUMO is akin to getting ICO prices but with the amount of information associated with more established coins.
Let me make one more thing clear. Investing is all about information. Specifically it’s about the information imbalance between current value and the quality of your information. SUMO is highly imbalanced.
The fact of the matter is that if you are interested in getting the vision and product/market fit of a $6 billion market cap coin for $20 mil, you should keep reading.
If you are interested in arguing about XMR vs. SUMOkoin, I point you to this infographic
Background
I’m a corporate tech & IP lawyer in Silicon Valley. My practice focuses on venture capital (“VC)”) and mergers & acquisitions (“M&A”). Recently I have begun doing more IP strategy. Basically I spend all day every day reviewing cap tables, stock purchase agreements, merger agreements and patent portfolios. I’m also the CEO of a startup (Scry Chat) and have a team of three full-time engineers.
I started using BTC in 2014 in conjunction with Silk Road and TOR. I recently had a minor conniption when I discovered how much BTC I handled in 2014. My 2017 has been good with IOTA at sub $0.30, POWR at $0.12, ENJIN at $0.02, REQ at $0.05, ENIGMA at $0.50, ITC (IoT Chain) and SUMO.
My crypto investing philosophy is based on betting long odds. In the words of Warren Buffet, consolidate to get rich, diversify to stay rich. Or as I like to say, nobody ever got rich diversifying.
That being said I STRONGLY recommend you have an IRA and/or 401(k) in place prior to venturing into crypto. But when it comes to crypto, I’d rather strike out dozens of times to have a chance at hitting a 100x home run. This approach is probably born out of working with VCs in Silicon Valley who do the same only with companies, not coins. I view myself as an aggressive VC in the cryptosphere.
The Number 1 thing I’ve taken away from venture law is that it pays to get in EARLY.
Did you know that the typical founder buys their shares for $0.00001 per share? So if a founder owns 5 million shares, they bought those shares for $50 total. The typical IPO goes out the door at $10-20 per share. My iPhone calculator says ERROR when it tries to divide $10/0.00001 because it runs out of screen real estate.
At the time of this writing, SUMO has a Marketcap of $18 million. That is 3/10,000th or 1/3333th. Let that sink in for a minute. BCH is a fork of BTC and it has the fourth largest market cap of all cryptos. Given it’s market cap, I am positive SUMO is the best value proposition in the Privacy Coin arena at the time of this writing. *
ROI MERITS OF SUMOkoin
So what’s so good about SUMOkoin? Didn’t you say it was just a Monero knock-off?
1) Well, sort of. SUMO is based on CryptoNote and was conceived from a fork of Monero, with a little bit of extra privacy thrown in. It would not be wrong to think SUMO is to Litecoin as XMR is to Bitcoin.
2) Increased Privacy. Which brings us to point 2. SUMO is doing several things to increase privacy (see below). If Monero is the King of Privacy Coins, then SUMO is the Standard Bearer fighting on the front lines. Note: Monero does many of these too (though at the time of fork XMR could not). Don’t forget Monero is also 5.8 billion market cap to SUMO’s 18 million.
a) RingCT. All transactions since genesis are RingCT (ring confidential transactions) and the minimum “mixin” transactions is 13 (12 plus the original transaction). This passes the threshold to statistically resist blockchain attacks. No transactions made on the SUMO blockchain can ever be traced to the actual participants. Nifty huh? Monero (3+1 mixins) is considering a community-wide fork to increase their minimum transactions to 6, 9, or 12. Not a bad market signal if you’re SUMOkoin eh?
b) Sub-addresses. The wallet deploys disposable sub-addresses to conceal your real sumo wallet address even from senders (who typically would need to know your actual address to send currency). Monero also does this.
3) Fungibility aka “Digital Cash” aka Broad Use Case. “Fungibility” gets thrown about a bunch but basically it means ‘how close is this coin to cash in terms of usage?’ SUMO is one of a few cryptos that can boast true fungibility — it acts just like physical cash i.e. other people can never trace where the money came from or how many coins were transferred. MONERO will never be able to boast this because it did not start as fungible.
4) Mining Made Easy Mode. Seeing as SUMO was a fork, and not an ICO, they didn’t have to rewrite the wheel. Instead they focused on product by putting together solid fundamentals like a great wallet and a dedicated mining app. Basically anyone can mine with the most intuitive GUI mining app out there. Google “Sumo Easy Miner” – run and mine.
5) Intuitive and Secure Wallet. This shouldn’t come as a surprise, yet in this day and age, apparently it is not a prereq. They have a GUI wallet plus those unlimited sub-addresses I mentioned above. Here’s the github if you’d like to review: https://github.com/sumoprojects/SumoGUIWallet The wallet really is one of the best I have seen (ENJIN’s will be better). Clear, intuitive, idiot proof (as possible).
6) Decentralization. SUMO is botnet-proof, and therefore botnet mining resistant. When a botnet joins a mining pool, it adjusts the mining difficulty, thereby balancing the difficulty level of mining.
7) Coin Emission Scheme. SUMO’s block reward changes every 6-months as the following “Camel” distribution schema (inspired by real-world mining production like of crude oil, coal, etc. that is often slow at first, then accelerated in before decline and depletion). MONERO lacks this schema and it is significant. Camel ensures that Sumokoin won’t be a short-lived phenomena. Specifically, since Sumo is proof-of-work, not all SUMO can be mined. If it were all mined, miners would no longer be properly incentivized to contribute to the network (unless transaction fees were raised, which is how Bitcoin plans on handling when all 21 million coins have been mined, which will go poorly given that people already complain about fees). A good emission scheme is vital to viability. Compare Camel and Monero’s scheme if you must: https://github.com/sumoprojects/sumokoin/blob/mastescripts/sumokoin_camel_emission_cal.cpp vs. https://monero.stackexchange.com/questions/242/how-was-the-monero-emission-curve-chosen/247.
8) Dev Team // Locked Coins // Future Development Funds. There are lots of things that make this coin a ‘go.’ but perhaps the most overlooked in crypto is that the devs have delivered ahead of schedule. If you’re an engineer or have managed CS projects, you know how difficult hitting projected deadlines can be. These guys update github very frequently and there is a high degree of visibility. The devs have also time-locked their pre-mine in a publicly view-able wallet for years so they aren’t bailing out with a pump and dump. The dev team is based in Japan.
9) Broad Appeal. If marketed properly, SUMO has the ability to appeal to older individuals venturing into crypto due to the fungibility / similarities to cash. This is not different than XMR, and I expect it will be exploited in 2018 by all privacy coins. It could breed familiarity with new money, and new money is the future of crypto.
10) Absent from Major Exchanges. Thank god. ALL of my best investments have happened off Binance, Bittrex, Polo, GDAX, etc. Why? Because by the time a coin hits a major exchange you’re already too late. Your TOI is fucked. You’re no longer a savant. SUMO is on Cryptopia, the best jenky exchange.
11) Marketing. Which brings me to my final point – and it happens to be a weakness. SUMO has not focused on marketing. They’ve instead gathered together tech speaks for itself (or rather doesn’t). So what SUMO needs a community effort to distribute facts about SUMO’s value prop to the masses. A good example is Vert Coin. Their team is very good at disseminating information. I’m not talking about hyping a coin; I’m talking about how effectively can you spread facts about your product to the masses.
To get mainstream SUMO needs something like this VertCoin post: https://np.reddit.com/vertcoin/comments/7ixkbf/vertbase_a_vertcoin_to_usd_exchange/
MARKET CAP DISCUSSION
For a coin with using Monero’s tech, 20 million is minuscule. For any coin 20 mil is nothing. Some MC comparisons [as of Jan 2, 2017]:
Let’s talk about market cap (“MC”) for a minute.
It gets tossed around a lot but I don’t think people appreciate how important getting in as early as possible can be. Say you buy $1000 of SUMO at 20 mil MC. Things go well and 40 million new money gets poured into SUMO. Now the MC = 60 million. Your ROI is 200% (you invested $1,000 and now you have 3,000, netting 2,000).
Now let’s says say you bought at 40 million instead of 20 million. $20 mill gets poured in until the MC again reaches 60 mil. Your ROI is 50% (you put in $1,000, you now have 1,500, netting 500).
Remember: investing at 20 mil MC vs. 40 mil MC represents an EXTREMELY subtle shift in time of investment (“TOI”). But the difference in net profit is dramatic. the biggest factor is that your ROI multiplier is locked in at your TOI — look at the difference in the above example. 200% ROI vs. 50% ROI. That’s huge. But the difference was only 20 mil — that’s 12 hours in the crypto world.
I strongly believe SUMO can and will 25x in Q1 2018 (400m MC) and 50x by Q4 2018 reach. There is ample room for a tricked out Monero clone at 1 bil MC. That’s 50x.
Guess how many coins have 500 mil market caps? 58 as of this writing. 58! Have many of these coins with about ~500 mil MC have you heard of?
MaidSafeCoin?
Status?
Decred?
Veritaseum?
DRAGONCHAIN ARE YOU KIDDING ME
THE ROLE OF PRIVACY
I want to close with a brief discussion of privacy as it relates to fundamental rights and as to crypto. 2018 will be remembered as the Year of Privacy Coins. Privacy has always been at the core of crypto. This is no coincidence. “Privacy” is the word we have attached to the concept of possessing the freedom to do as you please within the law without explaining yourself to the government or financial institution.
Discussing privacy from a financial perspective is difficult because it has very deep political significance. But that is precisely why it is so valuable.
Privacy is the right of billions of people not to be surveilled. We live in a world where every single transaction you do through the majority financial system is recorded, analyzed and sold — and yet where the money goes is completely opaque. Our transactions are visible from the top, but we can’t see up. Privacy coins turn that upside down.
Privacy is a human right. It is the guarantor of American constitutional freedom. It is the cornerstone of freedoms of expression, association, political speech and all our other freedoms for that matter. And privacy coins are at the root of that freedom. What the internet did for freedom of information, privacy coins will do for freedom of financial transactions.
POST SCRIPT: AN ENGINEER’S PERSPECTIVE
Recently a well respected engineer reached out to me and had this to say about SUMO. I thought I’d share.
"I’m messaging you because I came at this from a different perspective. For reference, I started investing in Sumo back when it was around $0.5 per coin. My background is in CS and Computer Engineering. I currently research in CS.
When I was looking for a coin to invest in, I approached it in a completely different way from what you described in your post, I first made a list of coins with market caps < 20m, and then I removed all the coins that didn’t have active communities.
Next, because of my background, I read through the code for each of the remaining coins, and picked the coins which had both frequent commits to GitHub (proving dev activity), and while more subjective, code that was well written. Sumo had both active devs, and (very) well written code.
I could tell that the people behind this knew what they were doing, and so I invested.
I say all of this, because I find it interesting how we seem to have very different strategies for selecting ‘winners’ but yet we both ended up finding Sumo."

Legal Disclaimer:
THIS POST AND ANY SUBSEQUENT STATEMENTS BY THE AUTHOR DO NOT CONSTITUTE LEGAL OR FINANCIAL ADVICE AND IS NOT INTENDED TO BE LEGAL OR FINANCIAL ADVICE OR RELIED UPON. NO REFERENCES TO THIS POST SHALL BE CONSTRUED AS LEGAL OR FINANCIAL ADVICE. THIS POST REPRESENTS THE LONE OPINION OF A NON-SOPHISTICATED INVESTOR.
submitted by MaesterEmi to CryptoCurrency [link] [comments]

I've been working on a bot for crypto subs like /r/bitcoin for a few days now. Say hello to crypto_bot!

Hey guys, I've been working on crypto_bot for some time now. It provides a bunch of features that I hope will enhance your experience on /bitcoin (and any other subreddit). You can call it by mentioning it in a comment. I started working on this a few days ago. I'm constantly adding new features and will update this post when I do, but if you're interested I'll post all updates and some tips at /crypto_bot. Please either comment here, message me, or post there if you'd like to report a bug, request a feature, or offer feedback. There's also one hidden command :)
You can call multiple commands in one comment. Here's a description of the commands you can use:

Market Data:

crypto_bot 
Responds with the USD price of one bitcoin from an average of six of the top bitcoin exchanges (BTC-E, Bitstamp, Bitfinex, Coinbase, Kraken, Cryptsy).
crypto_bot ticker 
Responds with the USD price of one bitcoin at seven exchanges (all of the ones listed above, plus LocalBitcoins). Also lists the average at the bottom.
crypto_bot [exchange] 
Responds with the USD price of one bitcoin from [exchange] (any of the seven listed above).
crypto_bot [litecoin|ltc|dogecoin|doge] 
Responds with the USD price of one litecoin, or the price of 1 doge and 1,000 doge.
crypto_bot litecoin|ltc [exchange] 
Responds with the USD price of one litecoin from BTC-E, Bitfinex, Kraken, or Cryptsy.
crypto_bot [currency] 
Responds with the price of one bitcoin in the specified currency. Available currencies (symbols): JPY, CNY, SGD, HKD, CAD, NZD, AUD, CLP, GBP, DKK, SEK, ISK, CHF, BRL, EUR, RUB, PLN, THB, KRW, TWD.

Information:

crypto_bot [about|info] [arg] 
Responds with a short description about [arg], as well as a link to an external site (Wikipedia, bitcoin.it, and some others) for more information. You can list multiple arguments and get a description for each. Available arguments: bitcoin, block chain, transaction, address, genesis, satoshi, mining, confirmation, coinbase, gox, cold wallet, hot wallet.
crypto_bot legal 
Responds with a chart about the legality of bitcoin in 40 countries, copied straight from Wikipedia.
crypto_bot [explain transaction delay|explain tx delay] 
Responds with an explanation of why transactions may take longer to confirm (the bot specifically discusses spam-transaction attacks in this command).

Network information/tools:

crypto_bot difficulty 
Responds with the current difficulty of the bitcoin network.
crypto_bot [height|number of blocks] 
Responds with the current height of the block chain.
crypto_bot retarget 
Responds with what block the difficulty will recalculate at, as well as how many blocks until the network reaches that block.
crypto_bot [unconfirmed transactions|unconfirmed tx] 
Responds with the current number of unconfirmed transactions.
crypto_bot [new address|generate address] 
Responds with a newly-generated public and private key. This is mainly to provide an explanation of what both look like, and contains a clear warning to not use or send bitcoins to the address.
crypto_bot blockinfo [height] 
Responds with information about block #[height], including its hash, time discovered, and number of transactions.
crypto_bot [address] 
Responds with information about [address], including its balance and number of transactions.
crypto_bot [transaction_id] 
Responds with information about [transaction_id], including what block it was included in, its size, and its inputs and outputs.

Calculators:

crypto_bot calc <# miningspeed> [#][w] [#][kwh] [#][difficulty] [hc$#] [$#] [#%] 
Responds with calculations and information about how a miner would do with the above data (mining calculator). The only required field is mining speed. Order of the arguments does not matter. Everything other than hashrate defaults to the following if not given: w (watts): 0, kwh ($kilowatt cost/hour): 0, difficulty: current network difficulty, hc$ (hardware cost): $0, $: current bitcoin price in usd (according to Coinbase), % (pool fee): 0. The calculator does not account for nor allow for input of the increase/decrease of difficulty over time, though I may add this feature soon. Working hashing speeds: h/s, kh/s, mh/s, gh/s, th/s, ph/s.
Example usage: "crypto_bot calc 30th/s 10w .12kwh hc$55 1.5%" (to make it easier to remember, th/s can also be inputted as ths). This calls the bot with a hashrate of 30 th/s, electricity usage of 10w, a cost of $.12 kWh, a hardware cost of $55, and a pool fee of 1.5%.
crypto_bot number of btc <$amount to convert> [bp$bitcoin price] 
Responds with the number of bitcoins you could buy with <$amount to convert>. If the comment specifies a [bp$bitcoin price], it calculates it with that exchange rate. Otherwise, it uses the rate from Coinbase.
Example usage: "crypto_bot $419.29 bp$180.32" This calculates how many bitcoins you can buy if you have $419.29 and the bitcoin exchange rate is $180.32.

Broadcasting

SignMessage! "" 
Signs a message in the bitcoin block chain in a transaction using OP_RETURN. The message must be less than 40 characters.
Example usage: "SignMessage! "Post messages in the block chain!""
I hope you find this bot useful! Again, if you have any questions or comments, please either comment on this post, message me, or post on /crypto_bot.
Update 1 (June 24, 2015, 17:35): The bot now responds with information if you post a link to a block, transaction, or address on Blockchain.info in a comment, even if you don't call it. For example, if I wrote "https://blockchain.info/block/0000000000000000126448be07fb1f82af19fbbf07dd7e07ebcd08d42c2660cb" in a comment, it would respond with information about block #362,377.
Update 2 (July 10, 2015, 1:59): The bot now has two additional commands: "unconfirmed transactions" (or "unconfirmed tx") and "explain transaction delay" (or "explain tx delay"). The first command responds with the number of unconfirmed transactions, and the second explains why transactions might take extra time to confirm.
Update 3 (August 24, 2015, 1:34): The bot now responds in a better way than before when transaction ids or addresses are posted. Before, it only responded when the transaction id or address was used in a link to Blockchain.info. Now the bot will respond whenever a transaction id or address is posted at all; a link to Blockchain.info is no longer necessary.
Update 4 (August 27, 2015, 3:00): The bot can now sign messages in the Bitcoin block chain using OP_RETURN.
submitted by busterroni to Bitcoin [link] [comments]

Era Swap Network White Paper

Era Swap Network White Paper

Era Swap Network

White Paper



DISCLAIMER
This Whitepaper is for Era Swap Network. Its purpose is solely to provide prospective community members with information about the Era Swap Ecosystem & Era Swap Network project. This paper is for information purposes only and does not constitute and is not intended to be an offer of securities or any other financial or investment instrument in any jurisdiction.
The Developers disclaim any and all responsibility and liability to any person for any loss or damage whatsoever arising directly or indirectly from (1) reliance on any information contained in this paper, (2) any error, omission or inaccuracy in any such information, or (3) any action resulting therefrom
Digital Assets are extremely high-risk, speculative products. You should be aware of the risks involved and fully consider before participating in Digital assets whether it’s appropriate for you. You should only participate if you are an experienced investor with sophisticated knowledge of financial markets and you fully understand the risks associated with digital assets. We strongly advise you to take independent professional advice before making any investment or participating in any way. You should check what rules and protections apply to your respective jurisdictions before investing or participating in any way. The Creators & community will not compensate you for any losses from trading, investment or participating in any way. You should read whitepaper carefully before participating and consider whether these products are right for you.

TABLE OF CONTENT

· Abstract
· Introduction to Era Swap Network
· Development Overview
· Era Swap Utility Platform
· Alpha-release Development Plan
· Era Swap Network Version 1: Specification
· Bunch Structure: 10
· Converting ES-ERC20 to ES-Na:
· Conclusion:
· Era Swap Ecosystem
· Social Links

Abstract

The early smart contracts of Era Swap Ecosystem like TimeAlly, Newly Released Tokens, Assurance, BetDeEx of Era Swap Ecosystem, are deployed on Ethereum mainnet. These smart contracts are finance-oriented (DeFi), i.e. most of the transactions are about spending or earning of Era Swap tokens which made paying the gas fees in Ether somewhat intuitive to the user (withdrawal charges in bank, paying tax while purchasing burgers) but transactions that are not token oriented like adding a nominee or appointee voting also needs Ether to be charged. As more Era Swap Token Utility platform ideas kept appending to the Era Swap Main Whitepaper, more non-financial transaction situations arise like updating status, sending a message, resolving a dispute and so on. Paying extensively for such actions all day and waiting for the transaction to be included in a block and then waiting for enough block confirmations due to potential chain re-organizations is counter-intuitive to existing free solutions like Facebook, Gmail. This is the main barrier that is stopping Web 3.0 from coming to the mainstream.
As alternatives to Ethereum, there are few other smart contract development platforms that propose their own separate blockchain that features for higher transaction throughput, but they compromise on decentralization for improving transaction speeds. Moreover, the ecosystem tools are most advancing in Ethereum than any other platform due to the massive developer community.
With Era Swap Network, the team aims to achieve scalability, speed and low-cost transactions for Era Swap Ecosystem (which is currently not feasible on Ethereum mainnet), without compromising much on trustless asset security for Era Swap Community users.

Introduction to Era Swap Network

Era Swap Network (ESN) aims to solve the above-mentioned problems faced by Era Swap Ecosystem users by building a side-blockchain on top of Ethereum blockchain using the Plasma Framework.
Era Swap Network leverages the Decentralisation and Security of Ethereum and the Scalability achieved in the side-chain, this solves the distributed blockchain trilema. In most of the other blockchains, blocks are a collection of transactions and all the transactions in one block are mined by a miner in one step. Era Swap Network will consist of Bunches of Blocks of Era Swap Ecosystem Transactions.

Decentralization

Layer 2


Scalable and Secure

A miner mines all the blocks in a bunch consequently and will commit the bunch-root to the ESN Plasma Smart Contract on Ethereum mainnet.

Development Overview
Initially, we will start with a simple Proof-of-Authority (PoA) based consensus of EVM to start the development and testing of Era Swap Ecosystem Smart Contracts as quickly as possible on the test-net. We will call this as an alpha-release of ESN test-net and only internal developers will work with this for developing smart contracts for Era Swap Ecosystem. User’s funds in a Plasma implementation with a simple consensus like PoA are still secured as already committed bunch-roots cannot be reversed.
Eventually, we want to arrive on a more control-decentralized consensus algorithm like Proof-of-Stake (PoS) probably, so that even if the chain operator shuts down their services, a single Era Swap Ecosystem user somewhere in the world can keep the ecosystem alive by running software on their system and similarly more people can join to decentralize the control further. In this PoS version, we will modify the Parity Ethereum client in such a way, that at least 50% of transaction fees collected will go to the Luck Pool of NRT Smart Contract on Ethereum mainnet and rest can be kept by miner of the blocks/bunch of blocks if they wish. After achieving such an implementation, we will release this as a beta version to the community for testing the software on their computers with Kovan ERC20 Era Swaps (Ethereum test-net).

Era Swap Decentralised Ecosystem
Following platforms are to be integrated:
  1. Era Swap Token Contract (adapted ERC20 on Ethereum) The original asset will lie on Ethereum to avoid loss due to any kind of failure in ESN.
  2. Plasma Manager Contract (on Ethereum) To store ESN bunch headers on Ethereum.
  3. Reverse Plasma Manager Contract (on ESN) Bridge to convert ES to ES native and ES native to ES. User deposits ES on Mainnet Plasma, gives proof on ESN and gets ES native credited to their account in a decentralised way.
  4. NRT Manager Contract (on Ethereum or on ESN) If it is possible to send ES from an ESN contract to luck pool of NRT Manager Contract on Ethereum, then it’s ok otherwise, NRT Manager will need to be deployed on ESN for ability to add ES to luck pool.
  5. Era Swap Wallet (React Native App for managing ESs and ES natives) Secure wallet to store multiple private keys in it, mainly for managing ES and ES native, sending ES or ES native, also for quick and easy BuzCafe payments.
  6. TimeAlly (on Ethereum or on ESN) On whichever chain NRT Manager is deployed, TimeAlly would be deployed on the same chain.
  7. Assurance (on Ethereum or on ESN) On whichever chain NRT Manager is deployed, TimeAlly would be deployed on the same chain.
  8. DaySwappers (on ESN) KYC manager for platform. For easily distributing rewards to tree referees.
  9. TimeSwappers (on ESN) Freelance market place with decentralised dispute management.
  10. SwappersWall (on ESN) Decentralised social networking with power tokens.
  11. BuzCafe (on ESN) Listing of shops and finding shops easily and quick payment.
  12. BetDeEx (on ESN) Decentralised Prediction proposals, prediction and results.
  13. DateSwappers (on ESN) Meeting ensured using cryptography.
  14. ComputeEx (on Ethereum / centralised way) Exchange assets.
  15. Era Swap Academy (on ESN / centralised way) Learn. Loop. Leap. How to implement ES Academy is not clear. One idea is if content is constantly being modified, then subscription expired people will only have the hash of old content while new content hash is only available to people who have done Dayswapper KYC and paid for the course. Dayswapper KYC is required because this way people won’t share their private keys to someone else.
  16. Value of Farmers (tbd) The exchange of farming commodities produced by farmers in VoF can be deposited to warehouses where the depositors will get ERC721 equivalent tokens for their commodities (based on unique tagging).
  17. DeGameStation (on ESN) Decentralised Gaming Station. Games in which players take turns can be written in Smart Contract. Games like Chess, Poker, 3 Patti can be developed. Users can come to DeGameStation and join an open game or start a new game and wait for other players to join.

Alpha-release Development Plan
  1. Deploying Parity Node customized according to Era Swap Whitepaper with PoA consensus.
  2. Setting up Plasma Smart Contracts.
  3. Creating a bridge for ERC20 Swap from Ethereum test-net to ESN alpha test-net.

Alpha Version
Era Swap Network Version 1 : Specification
The Version 1 release of ESN plans to fulfill the requirements for political decentralisation and transparency in dApps of Era Swap Ecosystem using Blockchain Technology. After acquiring sufficient number of users, a version 2 construction of ESN will be feasible to enable administrative decentralization, such that the Era Swap Ecosystem will be run and managed by the Era Swap Community and will no longer require the operator to support for it's functioning.
Era Swap Network (ESN) Version 1 will be a separate EVM-compatible sidechain attached to Ethereum blockchain as it’s parent chain. ESN will achieve security through Plasma Framework along with Proof-of-Authority consensus for faster finality. The idea behind plasma framework is to avoid high transaction fees and high transaction confirmation times on Ethereum mainnet by instead doing all the ecosystem transactions off-chain and only post a small information to an Ethereum Smart Contract which would represent hash of plenty of ecosystem transactions. Also, to feature movement of Era Swap Tokens from Ethereum blockchain to ESN using cryptographic proof, reverse plasma of Ethereum on ESN will be implemented.
Also, submitting hash of each ESN blocks to ESN Plasma Smart Contract on Ethereum would force ESN to have a block time equal to or more than Ethereum’s 15 second time as well as it would be very much costly for operator to post lot of hashes to an Ethereum Smart Contract. This is why, merkle root of hashes of bunch of blocks would instead be submitted to ESN Plasma Smart Contact on Ethereum.
Actors involved in the ESN:
  1. Block Producer Nodes Lesser the number of nodes, quicker is the block propagation between block producers which can help quick ecosystem transactions. We find that 7 block producers hosted on different could hosting companies and locations reduces the risk of single point of failure of Era Swap Ecosystem and facilitates 100% uptime of dApps. Block Producer Nodes will also be responsible to post the small information to the Blockchain.
  2. Block Listener Nodes Rest of the nodes will be Block Listeners which will sync new blocks produced by the block producer nodes. Plenty of public block listener nodes would be setup in various regions around the world for shorter ping time to the users of Era Swap Ecosystem. Users would submit their Era Swap Ecosystem transactions to one of these public nodes, which would relay them to rest of the Era Swap Network eventually to the block producer nodes which would finalize a new block including the user transaction.
  3. Bunch Committers This will be an instance in the block producers which will watch for new blocks confirmed on ESN and will calculate bunch merkle roots and will submit it to ESN Plasma Smart Contract. This instance will also post hash of new Ethereum blocks to ESN (after about 10 confirmations) for moving assets between both the blockchain.
  4. Users These will be integrating with dApps which would be connected to some public ESN nodes or they can install a block listner node themselves. They can sign and send transactions to the node which they are connected to and then that node will relay their transactions to block producer nodes who would finalise a block including their transaction.

Bunch Structure

A Bunch Structure in Smart Contract will consist of the following:
• Start Block Number: It is the number of first ESN block in the bunch.
• Bunch Depth: It is Merkle Tree depth of blocks in the bunch. For e.g. If bunch depth is 3, there would be 8 blocks in the bunch and if bunch depth is 10, there would be 1024 blocks in the bunch. Bunch depth of Bunches on ESN Plasma Contract is designed to be variable. During the initial phases of ESN, it would be high, for e.g. 15, to avoid ether expenditure and would be decreased in due course of time.
• Transactions Mega Root: This value is the merkle root of all the transaction roots in the bunch. This is used by Smart Contract to verify that a transaction was sent on the chain.
• Receipts Mega Root: This value is the merkle root of all the receipt roots in the bunch. This is used to verify that the transaction execution was successful.
• Timestamp: This value is the time when the bunch proposal was submitted to the smart contract. After submission, there is a challenge period before it is finalised.

Converting ES-ERC20 to ERC-NA and BACK

On Ethereum Blockchain, the first class cryptocurrency is ETH and rest other tokens managed by smart contracts are second class. On ESN, there is an advancement to have Era Swaps as the first class cryptocurrency. This cryptocurrency will feature better user experience and to differentiate it from the classic ERC20 Era Swaps, it will be called as Era Swap Natives (ES-Na). According to the Era Swap Whitepaper, maximum 9.1 Million ES will exist which will be slowly released in circulation every month.
Era Swaps will exist as ES-ERC20 as well as in form of ES-Na. One of these can be exchanged for the other at 1:1 ratio.
Following is how user will convert ES-ERC20 to ES-Na:
  1. User will give allowance to a Deposit Smart Contract, and following that call deposit method to deposit tokens to the contract.
  2. On transaction confirmation, user will paste the transaction hash on a portal which will generate a Proof of Deposit string for the user. This string is generated by fetching all the transactions in the Ethereum Block and generating a Transaction Patricia Merkle Proof to prove that user’s transaction was indeed included in the block and the Receipts Patricia Merkle Proof to confirm that the user’s transaction was successful.
  3. Using the same portal, user will submit the generated proofs to a Smart Contract on ESN, which would release funds to user. Though, user will have to wait for the Etheruem block roots to be posted to ESN after waiting for confirmations which would take about 3 minutes. Once, it’s done user’s proofs will be accepted and will receive exact amount of ES- Na on ESN.
Following is how user will convert ES-Na to ES-ERC20:
  1. ES-Na being first class cryptocurrency, user will simply send ES-Na to a contract.
  2. User will paste the transaction hash on a portal which will generate a Proof of Deposit for the user. Again ES-Na being first class cryptocurrency, Transaction Patricia Merkle Proof is enough to prove that user’s transaction was indeed included in the block. Another thing which will be generated is the block inclusion proof in the bunch.
  3. User will have to wait for the bunch confirmation to the Plasma Smart Contract and once it’s done, user can send the proof to the Plasma Smart Contract to receive ES-ERC20.

HARD Exit

Since the blocks are produced and transactions are validated by few block producers, it exposes a possibility for fraud by controlling the block producer nodes. Because ESN is based on the Plasma Model, when failure of sidechain occurs or the chain halts, users can hard exit their funds directly from the Plasma Smart Contract on Ethereum by giving a Proof of Holdings.

HOld ES Tokens Swapping with New ES Tokens

The old ES Tokens will be valueless as those tokens will not be accepted in ESN because of NRT (New Released Tokens) and TimeAlly contracts on mainnet which is causing high gas to users, hence reducing interactions. Also, there was an event of theft of Era Swap Tokens and after consensus from majority of holders of Era Swap Tokens; it was decided to create a new contract to reverse the theft to secure the value of Era Swap Tokens of the community. Below is the strategy for swapping tokens:
TimeAlly and TSGAP: Majority of Era Swap Community have participated in TimeAlly Smart Contract in which their tokens are locked for certain period of time until which they cannot move them. Such holders will automatically receive TimeAlly staking of specific durations from the operator during initialization of ESN.
Liquid Tokens: Holders of Liquid Era Swap Tokens have to transfer the old tokens to a specified Ethereum wallet address managed by team. Following that, team will audit the token source of the holder (to eliminate exchange of stolen tokens) and send new tokens back to the wallet address.

Post-Genesis Tokens Return Program

Primary asset holding of Era Swap tokens will exist on Ethereum blockchain as an ERC20 compatible standard due to the highly decentralised nature of the blockchain. Similar to how users deposit tokens to an cryptocurrency exchange for trading and then withdraw the tokens back, users will deposit tokens to ESN Contract to enter Era Swap Ecosystem and they can withdraw it back from ESN Contract for exiting from ecosystem network. The design of the token system will be such that, it will be compatible with the future shift (modification or migration of ESN version 1) to ESN version 2, in which an entirely new blockchain setup might be required.
To manage liquidity, following genesis structure will be followed:

Holder ES-ERC20 ES-Na
Team Wallet 1.17 billion (Circulating Supply) 0
Locked in Smart Contract 7.93 billion (pending NRT releases) 9.1 billion
Though it looks like there are 9.1 * 2 = 18.2 Billion ES, but the cryptographic design secures that at any point in time at least a total of 9.1 billion ES (ES-ERC20 + ES-Na) will be locked. To unlock ES-Na on ESN, an equal amount of ES-ERC20 has to be locked on Ethereum and vice-versa.
9.1 billion ES-ERC20 will be issued by ERC20 smart contract on Ethereum Blockchain, out of which the entire circulating supply (including liquid and TimeAlly holdings) of old ES will be received to a team wallet.
TimeAlly holdings of all users will be converted to ES-Na and distributed on ESN TimeAlly Smart Contract by team to the TimeAlly holders on their same wallet address.
Liquid user holdings will be sent back to the users to the wallet address from which they send back old ES tokens (because some old ES are deposited on exchange wallet address).
ES-Na will be issued in the genesis block to an ESN Manager Smart Contract address. It will manage all the deposits and withdrawals as well as NRT releases.

Attack Vectors


Following are identified risks to be taken care of during the development of ESN:
Network Spamming: Attackers can purchase ES from the exchange and make a lot of transactions between two accounts. This is solved by involving gas fees. A setting of 200 nanoES minimum gas price will be set, which can be changed as per convenience.
DDoS: Attackers can query public nodes for computationally heavy output data. This will overload the public node with requests and genuine requests might get delayed. Block producers RPC is private, so they will continue to produce blocks. To manage user’s denial of service, the provider in dApps needs to be designed in such a way such that many public nodes will be queried simple information (let’s say latest block number) and the one which response quickly to user will be selected.
AWS is down: To minimize this issue due to cloud providers down, there will be enough nodes on multiple cloud providers to ensure at least one block producer is alive.
User deposit double spending: User deposits ES on Ethereum, gets ES-Na on ESN. Then the issue happens that there are re-org on ETH mainnet and the user’s transaction is reversed. Since ETH is not a fixed chain and as per PoW 51% attack can change the blocks. As Ethereum is now enough mature and by statistics forked blocks are at most of height 2. So it is safe to consider 15 confirmations.
Exit Game while smooth functioning: User starts a hard exit directly from Plasma Smart Contract on Ethereum, then spends his funds from the plasma chain too. To counter this, the exit game will be disabled, only when ESN halts, i.e. fails to submit block header within the time the exit game starts. This is because it is difficult to mark user’s funds as spent on ESN.
Vulnerability in Ecosystem Smart Contracts: Using traditional methods to deploy smart contracts results in a situation where if a bug is found later, it is not possible to change the code. Using a proxy construction for every ecosystem smart contract solves this problem, and changing a proxy can be given to a small committee in which 66% of votes are required, this is to prevent a malicious change of code due to compromising of a single account or similar scenario.
ChainID replay attacks: Using old and traditional ways to interact with dApps can cause loss to users, hence every dApp will be audited for the same.

Conclusion

Era Swap Network is an EVM-compatible sidechain attached to the Ethereum blockchain through Plasma Framework. This allows off-chain processing of Era Swap Ecosystem transactions and posting only the hash of the bunch to Ethereum. This greatly reduces the high network fee and confirmation time issues faced by the current Era Swap Ecosystem DApps deployed on Ethereum. Also, having a separate EVM-compatible blockchain tailored to Era Swap Ecosystem improves the user experience to a higher extent. Since by design, Plasma Framework makes the Era Swap Network as secure as the Ethereum Network, user's funds on the network would be secure as well.
We believe Era Swap Network will help scale dApps of Era Swap Ecosystem to onboard the increasing numbers of users.


Era Swap Ecosystem
Era Swap Ecosystem consist of multiple interlinked platforms which is powered by Era swap (ES) token, a decentralized utility token to be used on below utility platforms. Users can access the Platforms through Era Swap Life which is the Single Sign on (SSO) gateway to the one world of Era Swap Ecosystem.
Era Swap Life: https://eraswap.life/
TimeAlly DApp -> Decentralized Token Vesting: https://www.timeally.io/
BetDeEx -> Decentralized prediction platform: https://www.betdeex.com/
Swappers Wall -> Social Time Ledgerise: https://timeswappers.com/swapperswall
TimeSwappers -> Global P2P marketplace: https://timeswappers.com/
BuzCafe -> Connects local P2P outlets: https://buzcafe.com/
DaySwappers -> Unique Affiliate Program: https://dayswappers.com/
Era Swap Academy -> E-mart for skill development: https://eraswap.academy/
Value of Farmers (VOF) -> Farming ecosystem: http://valueoffarmers.org/ coming soon
ComputeEx -> P2P lending and borrowing: https://computeex.net/ coming soon
DateSwappers -> Next gen dating: coming soon
Smart Contract address

Era Swap Token (ES)
https://etherscan.io/address/0xef1344bdf80bef3ff4428d8becec3eea4a2cf574#code

Newly Released Token (NRT) https://etherscan.io/address/0x20ee679d73559e4c4b5e3b3042b61be723828d6c#code

TimeAlly DApp
https://etherscan.io/address/0x5630ee5f247bd6b61991fbb2f117bbeb45990876#code

BetDeEx DApp https://etherscan.io/address/0x42225682113E6Ed3616B36B4A72BbaE376041D7c#code
TSGAP DApp
https://etherscan.io/address/0xbad9af4db5401b7d5e8177a18c1d69c35fc03fd3#code

White Paper
Era Swap Whitepaper: https://eraswaptoken.io/pdf/eraswap_whitepaper.pdf
Era Swap Light Paper: https://eraswaptoken.io/pdf/eraswap_lightpaper.pdf

Howey Test
Howey Test: https://eraswaptoken.io/era-swap-howey-test-letter-august7-2018.php

Era Swap SOCIAL LINKS
Telegram: https://t.me/eraswap
Twitter: https://twitter.com/eraswaptec
Facebook: https://www.facebook.com/eraswap/
Instagram: https://www.instagram.com/eraswap/
BitcoinTalk: https://bitcointalk.org/index.php?topic=5025979.msg45502457
Youtube: https://www.youtube.com/channel/UCGCP4f5DF1W6sbCjS6y3T1g
LinkedIn: https://www.linkedin.com/company/eraswap/
Reddit: https://www.reddit.com/useEraSwap
Medium: https://medium.com/@eraswap
Tumblr: https://eraswap.tumblr.com/
Mix: https://mix.com/eraswap
Pinterest: https://www.pinterest.com/eraswapt/
GitHub: https://github.com/KMPARDS/EraSwapSmartContracts
submitted by EraSwap to u/EraSwap [link] [comments]

Kill the Basilisk

I’ve often wondered if there was anything else I could’ve said to change his mind. That happens with any unsettled argument though I suppose. People always imagine there’s an elusive combination of words and rationales that will open a person’s mind to our way of thinking. Except people are stubborn that’s for sure.
Myself included.
So I’m sure you’d say the real problem was that I wasn’t open enough to his way of thinking. You’d say if I opened my mental door a bit, been more charitable to his point of view, he would’ve responded in kind and I would’ve saved him. Which is wrong. Just as likely perhaps, if not more likely, I would’ve been ensnared by the same delusion which sealed his, well, I’d never call it fate.
But I know you’d claim everything was inevitable all the same.
Let’s get one thing out of the way. Yes, I was Roman Peters’ friend. In fact, I was probably his only friend. His only real friend anyway. Although, I should clarify since my wording isn’t at all clear, that I most certainly was not Roman’s friend when he died. Roman and I had stopped being friends long before his rather public suicide. We had our falling out before his… fall.
Yes, I’ve seen the video.
No, I won’t be sharing the link.
Nobody should watch it. Hell, if those hosting the servers had a modicum of respect or even a shred of sense they’d take down that awful video immediately. Just get rid of it.
Already I can now hear your loud complaints about ‘censorship’ and ‘free speech’. Which is fair. People have a right to know. However I can’t help but feel… I don’t know. It seems as though the ideas people prioritize no longer has anything to do with the ideas themselves. Instead importance is based on who opposes what. Ideas now are little more than mental parasites that feed on blood boiling outrage. The more toxic and viral an idea the more broadly it spreads. Again, I don’t know. Maybe the flame of human enlightenment was always destined to be either smothered by tyranny or choke itself out on its own smoke after sucking out all the air.
Yes yes. I know what you have to say about the inevitable.
Anyway, me shoving my head up my own pretentious ass isn’t convincing you of anything so we should instead go back to Roman.
We met back in early elementary school. Specifically the Catholic school of Father Lloyd Van Tiem, or Flivit if you wanted to annoy the teachers by slurring the acronym.
What you need to understand is that I can’t really remember how Roman and I became friends to begin with. We were too young for the pertinent details to stick. I’d imagine it was the same generic way everyone develops friends at that age though, just a standard confluence of common interests, general proximity, and plain luck.
Inevitable, as you’d say.
Still, there was one moment of our early friendship that I reflect on often.
See, instead of being your standard dinosaur obsessed kid I was a bright eyed Egyptology child. Mummies and pyramids captured my imagination more than T-rexs and velociraptors. Ancient Egypt appealed to me the way I figure the mythic civilizations of Tolkien or Martin might appeal to others. This extended to the Egyptian religious pantheon, many I can still name off the top of my head, like Ra, Bastet, Osiris, Sobek, Horus, Thoth, Isis, Anubis, Maat, and also the lesser goddess Ammut but I’ll come back to her later.
I think I’d just turned 10 when on particular slow school day — remember Catholic school — our teacher, not wanting to put too much effort in before the Easter long weekend, threw on the animated movie: The Prince of Egypt.
Now, I knew it was about the story of Moses freeing the Hebrews from Egypt, so I expected the Egyptians were going to rightly be portrayed poorly. What I didn’t expect was the reaction of my classmates. Part way through the song ‘Playing with the Big Boys,’ the song where the dumb priests use smoke and mirrors to dismiss Moses’ calls for freedom, around then is when I first noticed the glances and occasional snickering.
Apparently the chorus of the evil priests listing the names of the Egyptian gods reminded the class of me. At school, I was rather vocal about my passion for all things Egyptian. Why wouldn’t I be? I was a kid who liked talking about what I liked.
Regardless, I became a pariah after that. Not immediately, but slowly everyone I previously considered my friend just plain stopped being friends with me. They’d treat me like a third wheel, never invite me to anything, even ditch me at recess if I tried to follow them.
Except Roman stuck by me as I drifted further into social irrelevance.
A bit of a loner himself, I think he saw in me an oddball like himself. He was always there. He was always willing to hang out. He always listened to what I had to say. I felt we could talk about anything, in a way I could never talk to my parents or teachers or anyone really.
As close as I thought we were, it wasn’t until middle school that it sunk in how much of an ardent atheist Roman was. He probably kept that pretty quiet going to a religious school.
Hold on. Let me just explain something first. Most people avoid discussing religiosity and ideas about god, (or capital ‘G’ God as I had been taught in religious studies). It’s one of those things that people learn not to talk about. But unlike money and politics, religion is too close to that other taboo we learn never to discuss: death. You undoubtedly prefer this silence.
Which is why I refuse to be silent.
Our class had been taken to church for some ceremony, at the end of grade eight, I forget exactly which one, it might have been Ash Wednesday but I think that would’ve been too solemn and I remember it being a rather boisterous affair. Whatever ritual it was, it had more than just our school in attendance, as I think parents and other members of the community were there as well. On the stage or pulpit, there was a soft-rock band with members ranging from late twenties or early thirties, the lead singer, a mop of molasses coloured hair over a plain crew neck T, was singing a song about how god and they love us all.
I remember thinking it was a sweet sentiment, even if the underlying spiritual message felt uncompelling to my teenage self. The music was fine, the crowd seemed to like it, the worst I would have said was that the performance was inoffensive and benign. Which is hardly much of a critique.
Except Roman, in his ill-fitting sport coat and smiley face graphic-T, smirked remarking, “Oh boy, a budget rock show where the singer says they love me? Oh lawd, I’m really feelin’ the Jesus now.”
I burst out laughing far louder than the wry joke called for. Luckily with the music blaring, the teachers wouldn’t be lecturing me on my disrespect, as only Roman could see my gut busting delight.
That’s it. That’s all it took was that simple comment. After that, I couldn’t help but see the tacky spectacle of it all. How forced and contrived it was, how it mostly just seemed like people were there because of obligation. After all, I was only there because the school made us go. It couldn’t have been much different for everyone else.
I’ve been thinking about that moment more often lately. Did his small remark really change my mind and entire world view? Or was my mind fertile ground for the seed of that idea to take root and grow? Or I’d already believed what I believed and Roman just articulated it in a way that I hadn’t. Or most troubling of all, what if I didn’t really believe in anything and my mind conformed to the words of my one and only friend.
When with Roman, do as the Roman does.
After that, I followed him eagerly into the land of Hitchens, Dawkins, and Harris. Borrowing his books, I started learning everything there was to know about theological philosophy that the teachers at our religious school either refused to tell us or were incapable of discussing themselves. Together, we’d share our thoughts on the bloody history of religions, the Problem of Evil, and how you could never prove a negative like god doesn’t exist. Likewise we’d take turns picking apart the fallacies of Pascal’s Wager, the Ontological Argument, and the Argument of Design.
Those were some of my best memories with Roman. Drinking pop from the fridge in my garage, eating the weird pizzas we’d order from Mad Mike’s pizza aroud the block, playing Halo on the couch and big screen, and all the while talking like were the smartest guys in the world.
As we left our Catholic elementary and middle schools behind, we entered Catholic High School.
I finally started making other friends. A handful of other geeky nerdy guys. They were more interested in pizza and gaming than anything religion though.
Roman seemed indifferent to my new friends. He was far more preoccupied fighting with Mr. Bauer, the school’s most openly devout teacher. My feelings toward Christianity hadn’t yet softened but Roman’s were clearly becoming more militant. From the safety of my conflict-averse sidelines, I secretly cheered Roman on whenever Mr. Bauer crossed a line.
See, Mr. Bauer was a real piece of work. He seemed pleasant and cheery enough, pastel shirts, clean white trainers, a big white smile and perpetually soft spoken, but eventually without fail his bigotry would expose itself.
Before any class Mr. Bauer would teach, he’d lead the class in prayer. Normally they were generic and unremarkable. Every so often though his prayers would go beyond the usual, “Thank you God for this beautiful day.”
With a gentle smile, at least once a week his prayers were something to the effect of, “Help guide my students away from lives of sin.” Or “Give us the strength to resist our carnal temptation.”
Whenever he prayed like this there was a fifty-fifty chance Mr. Bauer would elaborate on what exactly he meant by ‘life of sin’ or ‘carnal temptation.’
It could range from the condescending, “Help the girls find husbands to protect them from the unmarried lifestyle,” and “Give the boys hobbies to stop their idle urge for masturbation.” (By the way, in the three years I listened to him, Boys never needed protection from the unmarried lifestyle and girls simply didn’t possess the idle urge for masturbation.)
And he could go way up past condescending to the outright hateful. “Please open those of misguided faith to the one true path to Heaven through you, Jesus Christ,” he’d say obliquely when Hussein was attending class. He was more direct with Melissa, “And save Melissa from any perversion of your sanctioned union. Bless her with God’s holy covenant between man and woman so as to rescue her soul from homosexuality.”
Hussein and Melissa would usually try their best to ignore Mr. Bauer.
It was Roman who retaliated. “How did god rescue you from homosexuality?” There was a few scattered snickers from the class.
Mr. Bauer, oblivious to what Roman was trying to do, answered sincerely, “Why… God sent me my wonderful wife of course.”
“Well its a good thing god sent her he did, otherwise who knows what might have happened. You might have knob-gobbled a guy if it weren’t for that.” There was more barely contained chuckling.
“I…” Mr. Bauer wasn’t sure what to say, “I suppose that’s one way to frame it.”
“Yeah, like if your wife hadn’t straightened you out, why, two dudes with big oily muscles might be sword fighting in your mouth right now while a third drills you from behind.” The laughs were spilling freely now, myself included. “Can you imagine that? I mean seriously, are you imagining that right now?”
Mr. Bauer would then have to deal with the chorus of laughter. “Alright alright. Settle down. We’re getting off track here. Moving on.” By then of course, it would be too late, everybody would be on the same side. Not his.
I admired Roman’s courage to stand up to Mr. Bauer like that. That wasn’t the only time either. Usually, Roman kept his cool while he made Mr. Bauer look like a fool. He deserved it. He was a dick.
You might have something to say about what we deserve though.
As we entered our last year of High School, Roman started butting heads with the other teachers too. Even the teachers that weren’t as outwardly religious as Mr. Bauer got some of his flak. His humour started taking on definite edge too. It was still in good fun, at least that’s how it seemed to me, but there was an undercurrent of meanness to his comments too.
Even as I drifted away into my own separate circle of friends, I still sympathized with the perspective Roman was coming from.
They, meaning the school, were trying to indoctrinate young minds into a belief system that could be outright harmful.
In that regard, even if it wouldn’t change anything, a little rebellion isn’t just good but required.
However, where he really crossed the line in my mind was with Mrs. Ellie Monk in our last year. She one of the younger teachers, also fairly religious, always wearing her little silver cross, but she never lectured anyone on faith. She taught our English class and one of the assignments was writing essays analyzing other pieces of literature.
Roman, being the intellectual gadfly he was, wrote his essay on Jonathan Swift’s A Modest Proposal. In it, Roman argued how the modern world needed more extreme measures than simply eating babies. ‘All babies should be aborted before they are born, and the foetus gruel should be processed into bio-fuel to replace society’s fossil fuel vehicles. It’s the only way to save the planet from climate catastrophe!’
I thought this was really funny.
Ellie Monk however, did not.
She tried speaking to him a discreetly during class while everyone else was busy working. Roman, however, quickly drew in an audience. “Abortion, abortion, abortion! You can’t make me stop saying it. It’s just a word.”
“Roman,” Mrs. Ellie Monk had her jaw drop, “can’t you see that’s a sensitive topic that should be treated more seriously!”
“Really? Because I think I treat the return to sender option for foetuses with the exact level of seriousness it deserves.”
“It’s not— you can’t joke about babies being killed!”
“Just because you say it’s baby killing, doesn’t make it true. They aren’t the same as babies. And if I were to submit to your demands and shut my mouth I’d implicitly be agreeing with you.”
Up until this point, I was definitely rooting for Roman.
“Just because its a joke to you, for others— for me it is deeply hurtful to have to hear these things. What you’re talking about is—is deeply personal to mothers everywhere.”
“Yeah, well, some people were never meant to be mothers.”
At this she covered her mouth and ran out of the room. She didn’t come back that day and the was a substitute the next. There had been rumours going around that Mrs. Ellie Monk had had a miscarriage a few months back. I knew this because Roman had told it to me earlier.
Later, I’d try and convince Roman he had in fact crossed that invisible line. He disagreed. He said, “It’s not my problem if she can’t grow thicker skin. The sooner humanity grows out of its immaturity the better.”
I felt I had no other choice but to drop the subject. I was conflict-averse after all.
Shortly after that Roman began talking about a forum he frequented called Defiant CodeX, or DCX for short. It was named after some sci-fi book I never cared about, but was apparently filled with a bunch of humorous philosophy references. He’d talk about his online friends. How they really seemed to ‘get it’ whatever ‘it’ was. And he began describing concepts I wasn’t familiar with like trans-humanism and the singularity, going on long rants about the future of technology and humanity.
I wish I’d paid more attention. It seemed interesting enough, but sometimes we’re just not interested in interesting things. When Roman got going on one of his speeches on the Law of Accelerating Returns, for some reason I’d often check out. I was reminded about how much I cared — or used to care — about Ancient Egypt.
Years had passed since our class watched the Prince of Egypt, and in that time I hadn’t thought much about Egyptian Mythology at all.
Briefly, with Roman recommending it, I frequented the DCX forum myself. I admit there were interesting gaming discussions, intense political debates, and a charming comic that I really quite enjoyed despite its slight pretentiousness. For the most part I stayed away from the same parts of the forum as Roman.
He spent most of his time in the ‘Technology’ board, which didn’t seem very technologically focused at all in my opinion.
Yes, I know your opinion on opinions and I don’t care.
I don’t care because this is where I’d point to as the time Roman first found you.
The two of us started hanging out less and less often after that. My other friends said good riddance. They said he was an unpleasant person to be around, he was too bitter, cynical, misanthropic. Needless to say, I hadn’t noticed. In the last few times we hung out, this was before we went off to pursue our different post-secondary educations, he did make one last ominous sounding reference. It was only in passing, and never emphasized, but he mentioned you by name.
He mentioned the Basilisk.
Whenever the topic switched to our post-High School plans, “Doesn’t matter. It’s all over when the Basilisk comes.” Something in the way he said that made me nervous, almost like it was a threat, and instantly put me on the defensive. Once again my conflict averse persona got in the way of challenging him to explain what he meant.
Because of that, the phrase kept rattling away in the back of my mind.
Around then is when I had my first dreams. I was cold. I was alone. Around me were braziers of green flame. The smoke billowed up into an infinite of blackness ceiling. On all sides were sheer blocks of sandstone with writing etched onto their surfaces. Hieroglyphics that I couldn’t read but almost understand. There was nowhere to go but straight down this hallway of speaking pictures. My feet slapped the unyielding rock with every step. These hard surroundings felt more real than my own ephemeral body and I felt naked and exposed in the narrow corridor.
Forward and forward, there was nowhere to go but forward. I was forced to proceed, forced to follow my own slapping footsteps.
Eventually, when the hall finally seemed to open up into a large cavernous space, I heard the growl. The sound was low, wide and flat toned, a noise that filled the perfumed air with an inhuman indifference — and hunger.
In front of me chains clattered and slipped. In the centre of this room golden scales held a pristine and unburdened feather on one side, and a wet chunk of glistening meat in the other. This meat was a heart — my heart — and it weighed heavily, still pulsing quietly, pulling the chains of the scale down.
Now I understood what this was.
I made to run and grab my heart but it was too late. A long shadow snapped through the darkness. My heart was gone, replaced by the sounds of the empty chains, followed by chewing and ripping flesh.
Then the shadow showed itself to me. Down through the clouds of smoke and illuminated by the sickly pale green haze, a crocodile head emerged, much larger than my entire body, with teeth longer than my arms.
It drew nearer and I ran.
I ran down the hallway from where I’d came. I ran and I ran. But I had nowhere to go. The hallway was endless. Soon I could hear a thundering beat. I thought it was my heart but my heart was gone. Behind me, the giant behemoth was chasing me and it was gaining on me.
Closer and closer, the massive crodile head drew nearer. The scent of its moist breath dampening my back and neck. I’d scream the beast’s name, shout at it to spare me. It would open its mouth and right then — is where I’d wake up.
Each time I’d be drenched in my own sweat.
I chocked this up to the stress of being away from home for the first time and being buried to my neck in my coarse load.
Still though, these dreams trouble me. As I said about the scales, I knew exactly what they were. They were the scales of Ma’at, which judges the worth of Egyptians when they reach the afterlife. There your heart is weighed against an ostrich feather and if judged impure, it would be devoured by Ammut, or Ammit as she’s sometimes called. A beastly goddess with the head of crocodile and a body of lion and hippopotamus — the three man-eating creatures known to the ancient Egyptians. Ammut, the devourer of the dead, would bring about the second death of the unworthy.
As much as I tried to ignore this dream, I only had it once every few months after all, something greater troubled me about this dream, more than just the fact I was dreaming about Ammut.
What worried me was how I didn’t call her Ammut. Right as she was about to eat me whole and I begged her not to, I called her: Basilisk.
After my first year of school, with middling but hopefully improving grades, I returned home for the summer to work and save money for my next semester. I was hardly back for more than a day when Roman messaged me, asking to hang out. I hadn’t spoken to Roman at all since our High School graduation, and neither had a checked in on the DCX forums in all that time either.
I felt like I didn’t know the person was going to be meeting. Which is why I suggested going for coffee, but Roman insisted on meeting at his place instead.
He had moved out of his parents place for a small basement suite apartment. When he opened the door to greet me, I was shocked. He looked like a completely different person. Whereas before he had been a bit overweight, now he was lean. His hair had been cut down to almost a sheer buzz. Just about the only thing that looked similar was how he wore a suit jacket, now fitting well, over a plain T.
He smiled widely despite the tired bags under his eyes. “Hey buddy, you made it! Get in here, man.” He greeted me with a hug and ushered me inside.
His place was largely bare and furnished with only a couch and a few chairs. “How long have you had this place?” I asked.
“A few months.”
With little else to do but chat, Roman didn’t even have a TV after all, the conversation felt a little stilted. He seemed guarded but maybe he just didn’t have much to talk about. Somehow though we managed to stretch the small talk out for nearly an hour.
Finally when it seemed there was nothing left in our conversation about nothing, I asked a question I‘d been meaning to ask since agreeing to meet, “Can I ask you something Roman?”
“Shoot.”
“What is the Basilisk?”
At this the blood drained from his face. “How do you know about that?”
“From you. You told me about it.”
“No,” he shook his head in shocked disbelief, “No, I never.”
“Yes, you said something like: ‘It’s all over when the Basilisk comes.’ It was practically your motto for a few weeks there.”
Hearing this, some colour returned to his face. “Right. I suppose I did say that.”
“So what? Are you going to tell me what it is or not?”
He stared at me for a wordless five seconds before getting up from his chair and beckoning him to follow. He led me to his bedroom. At the door I could already feel an uncomfortable warmth escape. I don’t know what I expected Roman would show me, but all there was was a bare mattress with a single blanket in one corner, and a full floor to ceiling tower computer in the other. Blinking green, orange, red, and even purple standby lights lit up the corner like a black Christmas tree. Whirring fans blasted more heat into the room, while tangles of wires snaked in and out of the metal frame, one low to the ground connected a single monitor bolted to the wall with a pillow on the ground for a chair. The entire set up must cost a small fortune, as I’ve seen medium sized business with smaller servers than that.
“Holy crap Roman, that rig is intense. What, are you mining bitcoin or something?”
“No.” He said flatly. “This is the Basilisk.”
“The… Basilisk is your computer?”
Roman laughed, but there was no mirth, only exhaustion. “If it was just my computer, then I could just turn it off.”
I still had no clue what the hell he was talking about. “Okay, so you’re trying to kill this Basilisk thing, what, is it a video game boss or—?”
“Shhh!” He put a greasy palm over my mouth. His eyes were wide, scanning the room, “I didn’t say that. I never said that.”
Annoyed, I pulled his hand from my face, “Roman, tell me what the Basilisk is damn it! Please, you’re scaring me man.”
He swallowed, “I shouldn’t tell you. But you already know. So I guess the damage is done. The Basilisk is the A.I. we — humanity — will awaken. It will be a super-intelligence far beyond anything we can imagine, beyond the totality of human brainpower by orders of magnitude.”
“So you’re trying to make this a.i. thing?”
“Not just me. There are others out there spending all their time and money hastening the point of genesis.”
All their money he said. I was reminded of how much the computer must have cost. “Roman, how much money did you waste on this?”
“Hopefully enough. But I assure you, not a single dollar was wasted. You know, it was the time talking to you that I thought was a waste. But now I see, if I get you to help, then it’ll all be worth it.”
“Help? There’s no way I’m helping.” If anything I was seriously fearing for Roman’s well being. It can’t be healthy for him to be spending everything he has on this computer.
“Except you have to help now. Now that you know about the Basilisk, you have to help. Or else it will kill you a second time.”
My blood went cold. I was reminded of my dreams with Ammut, the devourer. “What?”
“The Basilisk will torture and punish anyone who knew about it and didn’t help speed up its genesis.” There was that genesis term again.
“You said it was an a.i.. Why would an a.i. do that?”
“Because the genesis of a Friendly A.I. will be the most value generating event ever, ever second that time point is pushed ahead is worth more than a hundred billion dollars spent curing cancer in terms of utility. Therefore this Friendly A.I. would know it must motivate people to speed up its genesis. To do that, it will create perfect simulations of everyone, and punish those who could have done more to help but chose not to. It’s pure logic.”
This whole thing sounded crazy. My emotions began to get heated and I tried debating this absurd concept. For example, he kept using the term ‘Friendly A.I.’ to describe the intelligence that would condemn millions of people to unimaginable agony. When I pointed out that didn’t make any sense, such a horrible being couldn’t be described as anything remotely close to ‘friendly’, he balked. Said the term ‘friendly’ doesn’t mean what I think it means and lectured me on arbitrary human values. It seemed like every word was the opposite of what I thought it meant. He had an entire lexicon of words and justifications at the ready while I could barely understand half of what he was saying let alone point out any potential flaw with the logic. Other terms like ‘Modal Realism’, ‘Effective Altruism’, ‘Arithmetical Utilitarianism’ were thrown out like road blocks each time I thought my understanding was catching up.
I couldn’t convince him of anything. I tried saying if he’s making the a.i. he should either just not make it at all or not make this cruel human torturer monstrosity. He said that it wasn’t cruel, that he wasn’t making anything, that some form of A.I. was inevitable, an the Basilisk was the best outcome. “Other A.I. that doesn’t care about people might wipe us all out for draining power away of its quark collision calculations or something equally esoteric in human utility.”
Lastly I tried to explain how if this A.I. is only torturing simulations of people, then they aren’t exactly us.
He dismissed this easily. “Will you be the exact same person you are today next year? Does that mean you don’t care what happens to the you in the future?” After that I had nothing left to say. “Brody, please leave. I only wanted to see my friend one more time before I leave tomorrow.”
When I got home, I poured myself a tall glass of cheap whisky, and drank it instantly, a bad habit I picked up at during my first semester.
But I still had to know. Sleep could wait. Slouching onto my computer, I decided to return to the DCX forums which might have some answers. They seemed much quieter now. Threads seemed to have on average a tenth of the comments as I remembered. In a alcohol induced buzz, I came right out and started my own thread titled, “What the Hell is the Basilisk?”
In it I mentioned how I think my friend was getting obsessed with this thing and I needed to know what the hell was going on.
In five short minutes my thread was deleted and my account banned from the DCX forums. ‘Breach of the Code of Conduct’ was the only immediate explanation given.
When I contacted the mods to find out what I did wrong the moderator who got back to me said: “Nice try mipsqueak. You trolls from the institute have done enough damage here.”
Institute? Mipsqueak?
Calmly I went through the arduous process of explaining my sincere ignorance on what I did wrong and convincing the mod I wasn’t trolling, mostly through effusive apologizing and imploring the mod to check the age of my account.
Eventually they relented, somewhat. “Alright. I’m going to lift your ban, but you should know that any mention of the ‘B’ is normally a one-way ticket to a perma-ban.”
I did try sending one last message to the mod asking them if they could please tell me what had happened in the time I’d been away from the forums and why the ‘B’ was a taboo subject.
They didn’t answer the first question except by way of crudely answering the second, “We banned all discussion of the ‘B’ and all related institute bullshit because people are fucking retarded.”
Once again, I don’t care what you have to say about ‘censorship’ and ‘free speech’.
Besides, it didn’t matter. It clicked the second time. I remembered the institute.
It was last year. On the Technology board of DCX, one of Roman’s favourite haunts, people had long winded discussions on futurism. It was there where I first heard people talk about the Institute. The Machine Initiative Progress Institute, or MIPI, as far as I know, isn’t actually located in any geographical building. Instead they like to think of themselves as a loose consortium of like-minded futurists and researchers who believe in the coming eminence of artificial intelligence, and more than that, the Institute believes it is their duty to aid in that a.i.’s ‘genesis’.
“A.I. will be the most important development humanity will make in the history of life itself. And the Institute is probably going to make it happen.” Roman once told me with glee.
Later, if I hadn’t seen members of the Institute with my own eyes, I wouldn’t have ever believed they were real. For the longest time I thought the Institute was a fake front some internet randoms created on a whim to make themselves feel more important and relevant. Sort of like 4chan’s Anonymous except nerdier and lower profile.
That night, my dream was the most intense it had ever been.
From down the vast hallway to my doom, there was chanting. A voice would call out, and a hundred more would answer. It didn’t even sound like language, just monosyllabic mantras. They were closer to the martial shouts of soldiers in training than religious worship. “Ah. AH! Rah. RAH! Jah. JAH!”
As I entered the grand room with incense and braziers of pale fire, masked men bowed up and down in supplication. A taller man in flowing robes that pooled at his feet stood behind the golden scales. Through the wisps of smoke I couldn’t see his face as he led the congregation to reflect his profane prayer.
This time, the scale between my heart and the pristine white feather was in perfect and equal balance. A hush fell as the priest raised his hands. Carefully he lowered one, slowly, until the scales were tipped.
That’s not fair! I wanted to shout but couldn’t as the chamber was drowned by the first croaking growl.
I sprinted to run.
Men caught me by the arms. Not only did they prevent my attempt to flee, worse, they forced me to watch.
The giant crocodile that emerged above the priest, its yellowed teeth dripped with rot and viscera. Its hide peeled with disease and decay. The devourer of the dead itself dead, a reanimated husk. The priest tossed my heart into the air and with a snap the devourer swallowed it, further engorging its distended gullet.
With each booming step of the devourer’s approach I pleaded with the men holding me to let me go. They ignored me as their chanting resumed. They continued ignoring me as the devourer stomped, crushing other worshippers beneath its massive paws. I tried convincing the men holding my arms would be eaten too but they drowned me out with louder and louder chanting.
Right above me the devourer breathed a down-burst of moist rotten air like a river of death.
Its teeth opened wide.
Before I woke in a swamp of my own sweat, I almost felt the first jagged tooth as it punctured through, crunching my ribcage.
I knew then I had to go one last time to talk to Roman before it was too late. At this point, I’m sure you’re quite dismissive of relying on dreams for guidance. Look at this primitive primate mind, using a dream in place of real facts and evidence.
Well I don’t care what you think. Whether it was the sum collective of my subconscious thought, or my conscious categorical interpretation of figments, either way now I knew for certain that Roman was in danger.
I arrived just in time to see Roman walking out of his place with his last box of computer components.
He was carrying it to a black van with two guys loitering in front of it. Both were head to toe in black shoes and suits. Their hair was closely cropped with thick pomade pulling back the rest. Rather than the stereotypical men in black, they had a splash of vibrant colour in their flowery dress shirts and pocket squares, and the pair of them were not wearing sunglasses, instead they wore cruel smiles and fatigue rims around their eyes.
One nudged to get the other’s attention, then gestured to me and my appearance. He said something that they weren’t afraid I’d hear but was too far away regardless. That’s when they both laughed like they were the pinnacle of wit.
I did my best to ignore them as I marched straight up to Roman.
“What are you doing here?” He asked with an echo of the contempt I heard in the laugh.
“I came to stop you. You don’t have to do this Roman. It’s not too late to turn back.”
“Clearly you didn’t listen to a word I said last night.”
“I was listening. Listen to yourself man. You’re being fed a bunch of lies by people who want to use you. This basilisk, it doesn’t exist. It’s not real.”
He shook his head. “Wrong. It is real. It follows from a very logical set of propositions whose conclusio—”
“Goddamn it Roman! There’s nothing logical about spending your life building a fucking torture robot!”
“Here we go. More moralizing from a small mind.”
“It’s not moralizing.”
“Yes it is. It is human values blinding you to the greatness this A.I. will bring.”
I put my hand on his shoulder, desperate to reach my former friend. “But you’re human. You don’t have to think like a machine.”
Tired, he looked straight into my eyes. Then he shrugged off my touch and walked away without another word. I never saw him again after the van drove away down the block and out of view.
At least not in person.
When next I saw Roman it was years later through a recording of his livestream. Of course, only the start of the video showed his face. He looked almost gaunt and malnourished by then. His manifesto was littered with random internet garbage but reading between the lines I could see the lethal project he was really working towards. Whether anyone in the press or any politician could see what his true objective had been I don’t know, but judging from the comments I read online some people clearly heard him loud and clear.
The institute, if they still call themselves that or whether they rebranded, they must be pleased Roman brought them so many more recruits.
I’ve played out our last argument in my head so many times. I’ve wondered what more or else I could have said.
Roman was right about one thing though. At least in part. I don’t know whether or not the Basilisk is real. Maybe I’m not smart enough to know.
But whether or not there is an A.I. that will torture me for disobedience, a Basilisk that seeks to control my actions and my life, let me write this down for future posterity:
I don’t believe in you.
submitted by CrimsonClubs to nosleep [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]

Bitcoin Mining Calculator 2017 with Genesis Mining! Bitcoin Mining Roi Calculator 2017 With Genesis Mining Genesis Mining Calculator my Bitcoin Mining Update Genesis Mining - YouTube Bitcoin Mining Roi Calculator 2017 with Genesis Mining ...

2. Genesis Mining Overview. Genesis mining was founded in 2013, making it one of the oldest Bitcoin companies around. It’s definitely one of the most well known companies when it comes to cloud mining. According to its website, the company serves over 2m customers from over 100 countries worldwide. Bitcoin is the currency of the future & Genesis Mining is the largest cloud mining company on the market. Mine bitcoin through the cloud, get started today! Toggle navigation. Home; Blog; Pricing; Why mining; About us; Press; Customer Service; Technology . Enigma Datacenter; Genesis Hexa ; Radiant-Tech; Change Language ; Login; Sign Up; Select your language. Chat working hours: 4:00 a.m. to 8 ... F2Pool ist der zweitgrößte Bitcoin-Mining-Pool der Welt mit rund 25% der Bitcoin Hash-Rate. Dieser wurde im Jahr 2013 eröffnet. Der Pool ist in der Welt des Bitcoin-Minings besser bekannt als „Discus Fish Mining Pool“. Neben Bitcoin werden hier auch Litecoin, Ethereum und Zcash „abgebaut“. Die Website wird neuerdings mit einer englischen Benutzeroberfläche geliefert und ist einfach ... Find out if it's profitable to mine Bitcoin, Ethereum, Litecoin, DASH or Monero. Do you think you've got what it takes to join the tough world of cryptocurrency mining? CryptoCompare needs javascript enabled in order to work. Follow these instructions to activate and enable JavaScript in Chrome. PC. To the right of the address bar, click the icon with 3 stacked horizontal lines. From the drop ... Accurate Bitcoin mining calculator trusted by millions of cryptocurrency miners since May 2013 - developed by an OG Bitcoin miner looking to maximize on mining profits and calculate ROI for new ASIC miners. Updated in 2020, the newest version of the Bitcoin mining calculator makes it simple and easy to quickly calculate mining profitability for your Bitcoin mining hardware.

[index] [35565] [50866] [20209] [7010] [8871] [16626] [49071] [29926] [3781] [43361]

Bitcoin Mining Calculator 2017 with Genesis Mining!

https://www.genesis-mining.ru/a/1007701 signup link. Use my Promo code 4M0anS for 3% off on all upgrades. My Bitcoin address for Tips: 1N4UcrwSg8FBMAuwKdG8z4... Use code "87516c" and get 3% off every purchase on Genesis Mining! https://www.genesis-mining.com/a/365515 Join Hasflare https://hashflare.io/r/AFAAE03D Please use the code WoPJIK and get 3% discount every time you purchase hashpower to mine Bitcoin, Ethereum, ZCASH, Litecoin and a ton of other Cryptocurrenci... Genesis Mining offers hosted cryptocurrency mining services and a variety of mining related solutions to small and large scale investors. The combination of ... So is it time to revisit GENESIS MINING? Could CLOUD MINING be an option again? Let's find out. Subscribe for more awesome videos and a chance at Free Bitcoi...

#