The core technology of blockchain: distributed ledger
broadly speaking, blockchain technology is a new distributed infrastructure and computing paradigm, which uses blockchain data structure to verify and store data, uses distributed node consensus algorithm to generate and update data, uses cryptography to ensure the security of data transmission and access, and uses intelligent contract composed of automated script code to program and operate data
as we all know, blockchain technology is an independent underlying architecture from bitcoin system. From the perspective of architecture model, it is a set of distributed ledger, which is naturally used for bookkeeping
in the blockchain technology, if you want to generate accounting records, you need to have the transaction and flow of funds. Therefore, in the initial blockchain technology, the cryptocurrency corresponding to the main network is used as circulation goods, and the circulation transaction records of cryptocurrency between the accounts of the main network of the blockchain will be recorded on the main network
different from other transaction record databases, transaction records on the main network of blockchain technology will be recorded on all block nodes (i.e. all data blocks) in the main network, which is the so-called decentralization principle. That is to say, in blockchain technology, there is no central database to store all records, Every block on the chain has the transaction data of the whole chain, that is to say, every data block is the center
another feature of blockchain technology is that it can't be tampered with, because every transaction on the blockchain will be recorded in all blocks on the chain, so no single data block can change the record. Even if you change it, all other data blocks will also record real data, and each group of data can be traced back to the first time
because of these characteristics of blockchain technology, after the advent of bitcoin, blockchain has also attracted a lot of attention, and many people also began to want to use blockchain technology to make a centerless, traceable and unchangeable data, so as to ensure the credibility of the data
however, blockchain technology also faces many problems, such as single application scenario, non modifiable original error data, non recoverable currency stolen by hackers, etc.
From the perspective of technology and architecture, I will tell you my understanding of blockchain in common language
what is blockchain? In a word, blockchain is a storage system. To be more specific, blockchain is a distributed storage system without an administrator and each node has all the data
What are the common storage systems like
first, how to ensure high availability
the common storage system usually uses "rendancy" to solve the problem of high availability. As shown in the figure above, if the data can be copied into several copies and rendant to multiple places, high availability can be guaranteed. The data in one place is hung, and there is data in other places. For example, the master-slave cluster of MySQL is the same principle, and the raid of disk is also the same principle
two points need to be emphasized in this place are: data rendancy often leads to consistency problems
1. For example, in the master-slave cluster of MySQL, there is actually a delay in reading and writing, which means there is a inconsistency in reading and writing in a short period of time. This is a side effect of data rendancy
The second point is that data rendancy often reces the efficiency of writing, because data synchronization also consumes resources. If you add two slave libraries, the write efficiency will be affected. The common storage system is to use rendancy to ensure the high availability of dataso the second question, ordinary storage system, can write more
the answer is yes, for example, take this graph as an example:
in fact, MySQL can do a master-slave synchronization of al masters, master-slave synchronization of al masters, two nodes can be written at the same time. If you want to do a multi room multi live data center, in fact, multi room multi live data synchronization. What we should emphasize here is that multi-point writing often leads to the consistency problem of writing conflicts. Take MySQL as an example, suppose that the attribute of a table is self incrementing ID, then the data in the database is 1234 now. If one of the nodes writes and inserts a piece of data, it may become 5, and then these 5 pieces of data are synchronized to another master node, Before synchronization, if another write node inserts a piece of data, a piece of data with self incrementing ID of 5 will be generated. Then, after the generation, synchronize to another node, and the synchronized data will conflict with the two local 5's after it arrives, which will lead to synchronization failure and write consistency conflict. This problem will occur in the case of multi-point writing
how to ensure consistency in multi-point writing
the reform "Swan class" gives you more technical work
our school's core uses Nortel 8610, and the expansion only needs to add interfaces. Generally, the core is tested by moles, and adding ports only needs to add moles instead of stacking
an optical switch can be connected under the core, and several layer-2 switches can be connected under the optical switch, which can also save the core port, rece the cost and increase the network users
the specific situation also depends on whether the ports of your core are enough, as well as the core bandwidth, the number of convergence layers, and so on.
This is a data center switch, which supports virtualization, that is VSU. Configuration reference
core switch 1:
Switch1 # configuration terminal
enter configuration commands, one per line. End with cntl / Z.
Switch1 (config) # switch virtual domain 1
Switch1 (config vs domain) # switch 1
Switch1 (config vs domain) # switch 1 priority 200 -- & gt; The default priority is 100, which is configured as a higher priority. After the VSU is successfully established, it will become the management host
Switch1(config-vs-domain)# exit
Switch1(config)# vsl-aggregateport 1 ------> At least two VSL links are needed, and the reliability of one link is low. When link oscillation occurs, VSU will be very unstable
Switch1(config-vsl-ap-1)# port-member interface TenGigabitEthernet 1/1 ------> Configure VSL link, heartbeat link and traffic channel between VSU active and standby cores
Switch1 (config-vsl-ap-1) ﹥ port member interface tengigabit Ethernet 1 / 2
Switch1 (config-vsl-ap-1) ﹥ exit
core switch 2:
switch2 ﹥ configuration terminal
enter configuration commands, one per line. End with CNTL/Z.
Switch2(config)# switch virtual domain 1 ------> Domain ID must be consistent with the first one
switch2 (config vs domain) # switch 2 ----- & gt; The second device must change its ID to 2
switch2 (config vs domain) { switch 2 priority 150
switch2 (config vs domain) { exit
switch2 (config) { VSL aggregateport 1 ----- & gt; At least two VSL links are needed, and the reliability of one link is low. When link oscillation occurs, VSU will be very unstable
Switch2(config-vsl-ap-1)# port-member interface TenGigabitEtherne 1/1 ------> Configure VSL link, heartbeat link and traffic channel between VSU active and standby cores
switch2 (config-vsl-ap-1) # port member interface tengigabit Ethernet 1 / 2
switch2 (config-vsl-ap-1) # exit