12 year bitcoin price
When bitcoin first appeared in 2009, its price was less than 1 cent. One dollar could be converted into 1300 bitcoins, that is to say, seven yuan could be converted into 1300 bitcoins
on May 5, 2017, bitfinex, an overseas digital currency trading platform, quoted a price. Bitcoin once hit US $1700, about RMB 11737
extended information:
in China, some Taobao stores have also begun to accept the use of bitcoin, and businesses will graally increase
in October 2013, the first bitcoin quarterly, one bit, was released
on October 15, 2013, the network accelerator service of the network announced its support for bitcoin
on October 26, 2013, btcmini reported that GBL was hacked
on October 31, 2013, Lei Teng, a famous Internet lawyer, proposed the event of "filing a case to investigate the closure of GBL bitcoin trading platform as soon as possible", analyzed the "value function" and "use function" of bitcoin, and bitcoin should be governed by relevant laws
on December 5, 2013, notice of the Ministry of instry and information technology of the people's Bank of China, China Banking Regulatory Commission, China Securities Regulatory Commission and China Insurance Regulatory Commission on preventing bitcoin risk: bitcoin is a specific virtual commodity; Bitcoin trading is a kind of commodity trading on the Internet. Ordinary people have the freedom to participate in it at their own risk
on September 4, 2017, the announcement of the people's Bank of China Central Network Information Office, Ministry of instry and information technology, State Administration for Instry and commerce, China Banking Regulatory Commission, China Securities Regulatory Commission and China Insurance Regulatory Commission on preventing the risk of token issuance financing: it is prohibited to engage in token issuance financing activities (ICO)
the trading platform shall not engage in the exchange business between legal tender and token, or virtual currency, or buy or sell token or virtual currency as a central counter party, or provide pricing, information intermediary and other services for token or virtual currency
on November 2, 2018, the people's Bank of China released the 12th topic of China financial stability report 2018, which talked about "encrypted assets"
from 2010 to the beginning of 2012, few people knew about it, only some game players and geeks were playing it, and the number of domestic players began to increase in the second half of 2012. At that time, it was still the era of pyrograph card mining. At the beginning of 2013, the ASIC miner was born. Avalon delivered the world's first ASIC miner, and roasted cat issued the power stock
in April 2013, Avalon gave up the sales of the whole miner and opened up all miner design solutions except chip accidents. For a time, miner manufacturers emerged like spring training after rain
since August 2013, the positive reports of bitcoin in domestic media have been increasing, and the number of people who pay attention to bitcoin has also increased rapidly. The network index once reached more than 300000, and the price of bitcoin has been rising to about 8000 yuan. However, after the announcement of the central bank in December, the price of bitcoin began to fall all the way
in 2014, Avalon project developed a "variable computing power cluster system", and the price of bitcoin rose slowly in twists and turns.
according to the data of coindesk digital currency trading platform, the price of bitcoin once fell below US $6000 in 18 years, which has dropped by 70% compared with the highest value of US $20000 in 2017
"the price movements we are seeing now may seem drastic, but they are quite normal for this market." Etiro's senior market analyst, MATI Greenspan, wrote in an email to CNBC
with the decline of bitcoin, most digital currencies are affected, and other digital currencies are not much better. Most digital currencies are down by more than 10%. But in the long run, the future of digital currency is worth looking forward to.
The price of bitcoin is about 9800 yuan
bitcoin (bitcoin) is a kind of network virtual currency, which can buy real-life goods. It is characterized by decentralization, anonymity, and can only be used in the digital world. It does not belong to any country or financial institution, and is not subject to geographical restrictions. It can be exchanged anywhere in the world. Therefore, it is used as a money laundering tool by some criminals. In 2013, the U.S. government recognized the legal status of bitcoin, making the price of bitcoin soar
starting from the essence of bitcoin, the essence of bitcoin is actually a special solution generated by a bunch of complex algorithms. A special solution is one of the infinite (in fact, bitcoin is finite) solutions that can be obtained from the equations. Every particular solution can solve the equation and is unique. The process of mining is to continuously seek the special solution of the equation system through huge amount of calculation. The equation system is designed to have only 21 million special solutions, so the upper limit of bitcoin is 21 million
ten years from now, the price of bitcoin is unknown On December 17, 2017, bitcoin reached an all-time high of $19850. On June 22, 2019, the price of bitcoin broke through the $10000 mark. Bitcoin prices fluctuated around 10200, rising nearly 7% in 24 hours
On June 26, the price of bitcoin broke through US $12000, a 17 month high since January last year. In the morning of June 27, the price of bitcoin was close to $14000, reaching a new high of the yeartherefore, the future price trend of bitcoin is uncontrollable
4, low transaction costs:
bitcoin can be remitted free of charge, but in the end, a transaction fee of about 1 bit will be charged for each transaction to ensure faster transaction execution
About 400 percent
when bitcoin first appeared in 2009, one dollar could buy almost 1300 bitcoins. Before April 2011, the price of each bitcoin was always below $1. In June 2011, the highest price of bitcoin rose to $30. Then, the price almost fell within a week. In 2012, the price of bitcoin once fell below $2
further dropped to $114 on January 14, 2015. Since then, bitcoin has begun to rise again. In 2017, after the bitcoin ETF fund was rejected by the US Securities Regulatory Commission, bitcoin plummeted by $315 to below $1000. After that, it rose again. In the first four months of this year, the price of bitcoin and an ounce of gold were almost equal
However, with the strong rise of bitcoin in this round, the price of bitcoin has exceeded the price of an ounce of gold. On April 26, the price of bitcoin was $1282.97, compared with $1264 for an ounce of gold. Bitcoin has surpassed gold in price
extended data
in 2016, there were dozens of bitcoin exchanges in the world, and the trading volume of bitcoin in most countries and regions increased sharply. Among the countries and regions with the highest growth rate, the trading volume of bitcoin in Japan is second only to China, ranking second in the world; The local bitcoin trading volume in Venezuela increased by more than 913%
South Korea has become the sixth largest bitcoin trading market in the world, Korean people can buy bitcoin from a large number of convenience stores, and korbit's trading volume currently accounts for 70% of the South Korean market; Local bitcoin transactions in Colombia increased by about 370%; Bitcoin markets in Malaysia, Russia and Australia are also developing rapidly. Bitcoin trading in China once accounted for more than 80% of the global trading volume
1. Transfer platform: the current domestic trading is closed, and it can be transferred to foreign trading platforms
2. Cash withdrawal: users who do not want to hold bitcoin can make cash withdrawal
Third, storage: users who do not want to trade but continue to hold coins can save them in bitcoin wallets such as coin packets.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netdb.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/ip.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#include <netpacket/packet.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <arpa/inet.h>
#include <errno.h>
/* 接收缓冲区大小 */
#define RCV_BUF_SIZE 1024 * 5
/* 接收缓冲区 */
static int g_iRecvBufSize = RCV_BUF_SIZE;
static char g_acRecvBuf[RCV_BUF_SIZE] = {0};
/* 物理网卡接口,需要根据具体情况修改 */
static const char *g_szIfName = "eth1";
/* 以太网帧封装的协议类型 */
static const int g_iEthProId[] = { ETHERTYPE_PUP,
ETHERTYPE_SPRITE,
ETHERTYPE_IP,
ETHERTYPE_ARP,
ETHERTYPE_REVARP,
ETHERTYPE_AT,
ETHERTYPE_AARP,
ETHERTYPE_VLAN,
ETHERTYPE_IPX,
ETHERTYPE_IPV6,
ETHERTYPE_LOOPBACK
};
static const char g_szProName[][24] = {
"none", "xerox pup", "sprite", "ip", "arp",
"rarp", "apple-protocol", "apple-arp",
"802.1q", "ipx", "ipv6", "loopback"
};
/* 输出MAC地址 */
static void ethmp_showMac(const int iType, const char acHWAddr[])
{ int i = 0;
if (0 == iType)
{
printf("SMAC=[");
}
else
{
printf("DMAC=[");
}
for(i = 0; i < ETHER_ADDR_LEN - 1; i++)
{
printf("%02x:", *((unsigned char *)&(acHWAddr[i])));
}
printf("%02x] ", *((unsigned char *)&(acHWAddr[i])));
}
/* 物理网卡混杂模式属性操作 */
static int ethmp_setPromisc(const char *pcIfName, int fd, int iFlags)
{ int iRet = -1;
struct ifreq stIfr;
/* 获取接口属性标志位 */
strcpy(stIfr.ifr_name, pcIfName);
iRet = ioctl(fd, SIOCGIFFLAGS, &stIfr);
if (0 > iRet)
{ perror("[Error]Get Interface Flags");
return -1;
}
if (0 == iFlags)
{ /* 取消混杂模式 */
stIfr.ifr_flags &= ~IFF_PROMISC;
}
else
{ /* 设置为混杂模式 */
stIfr.ifr_flags |= IFF_PROMISC;
}
iRet = ioctl(fd, SIOCSIFFLAGS, &stIfr);
if (0 > iRet)
{ perror("[Error]Set Interface Flags");
return -1;
}
return 0;
}
/* 获取L2帧封装的协议类型 */
static char *ethmp_getProName(const int iProNum)
{ int iIndex = 0;
for(iIndex = 0; iIndex < sizeof(g_iEthProId) / sizeof(g_iEthProId[0]); iIndex++)
{ if (iProNum == g_iEthProId[iIndex])
{
break;
}
}
return (char *)(g_szProName[iIndex + 1]);
}
/* Init L2 Socket */
static int ethmp_initSocket()
{ int iRet = -1;
int fd = -1;
struct ifreq stIf;
struct sockaddr_ll stLocal = {0};
/* 创建SOCKET */
fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
if (0 > fd)
{ perror("[Error]Initinate L2 raw socket");
return -1;
}
/* 网卡混杂模式设置 */
ethmp_setPromisc(g_szIfName, fd, 1);
/* 设置SOCKET选项 */
iRet = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &g_iRecvBufSize,sizeof(int));
if (0 > iRet)
{ perror("[Error]Set socket option");
close(fd);
return -1;
}
/* 获取物理网卡接口索引 */
strcpy(stIf.ifr_name, g_szIfName);
iRet = ioctl(fd, SIOCGIFINDEX, &stIf);
if (0 > iRet)
{ perror("[Error]Ioctl operation");
close(fd);
return -1;
}
/* 绑定物理网卡 */
stLocal.sll_family = PF_PACKET;
stLocal.sll_ifindex = stIf.ifr_ifindex;
stLocal.sll_protocol = htons(ETH_P_ALL);
iRet = bind(fd, (struct sockaddr *)&stLocal, sizeof(stLocal));
if (0 > iRet)
{ perror("[Error]Bind the interface");
close(fd);
return -1;
}
return fd;
}
/* 解析Ethernet帧首部 */
static int ethmp_parseEthHead(const struct ether_header *pstEthHead)
{ unsigned short usEthPktType;
if (NULL == pstEthHead)
{ return -1;}
/* 协议类型、源MAC、目的MAC */
usEthPktType = ntohs(pstEthHead->ether_type);
printf(">>>\nEth-Pkt-Type:0x%04x(%s) ", usEthPktType, ethmp_getProName(usEthPktType));
ethmp_showMac(0, pstEthHead->ether_shost);
ethmp_showMac(1, pstEthHead->ether_dhost);
return 0;
}
/* 解析IP数据包头 */
static int ethmp_parseIpHead(const struct ip *pstIpHead)
{ struct protoent *pstIpProto = NULL;
if (NULL == pstIpHead)
{ return -1;}
/* 协议类型、源IP地址、目的IP地址 */
pstIpProto = getprotobynumber(pstIpHead->ip_p);
if(NULL != pstIpProto)
{ printf("\nIP-Pkt-Type:%d(%s) ", pstIpHead->ip_p, pstIpProto->p_name); }
else
{ printf("\nIP-Pkt-Type:%d(%s) ", pstIpHead->ip_p, "None");}
printf("SAddr=[%s] ", inet_ntoa(pstIpHead->ip_src));
printf("DAddr=[%s]\n", inet_ntoa(pstIpHead->ip_dst));
return 0;
}
/* 数据帧解析函数 */
static int ethmp_parseFrame(const char *pcFrameData)
{ int iRet = -1;
struct ether_header *pstEthHead = NULL;
struct ip *pstIpHead = NULL;
/* Ethnet帧头解析 */
pstEthHead = (struct ether_header*)g_acRecvBuf;
iRet = ethmp_parseEthHead(pstEthHead);
if (0 > iRet)
{ return iRet;}
/* IP数据包类型 */
pstIpHead = (struct ip *)(pstEthHead + 1);
iRet = ethmp_parseIpHead(pstIpHead);
return iRet;
}
/* 捕获网卡数据帧 */
static void ethmp_startCapture(const int fd)
{ int iRet = -1;
socklen_t stFromLen = 0;
/* 循环监听 */
while(1)
{ /* 清空接收缓冲区 */
memset(g_acRecvBuf, 0, RCV_BUF_SIZE);
/* 接收数据帧 */
iRet = recvfrom(fd, g_acRecvBuf, g_iRecvBufSize, 0, NULL, &stFromLen);
if (0 > iRet)
{ continue;}
/* 解析数据帧 */
ethmp_parseFrame(g_acRecvBuf);
}
}
/* Main */
int main(int argc, char *argv[])
{ int iRet = -1;
int fd = -1;
/* 初始化SOCKET */
fd = ethmp_initSocket();
if(0 > fd) {
return -1;
}
/* 捕获数据包 */
ethmp_startCapture(fd);
/* 关闭SOCKET */
close(fd);
return 0;
}
编译命令
gcc -o a a.c
./a
实现效果图
...
>>>Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:24:7e:dc:99:18] DMAC=[00:1a:92:ef:b6:dd] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.100] DAddr=[192.168.0.111]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:24:7e:dc:99:18] DMAC=[00:1a:92:ef:b6:dd] IP-Pkt-Type:1(icmp) SAddr=[192.168.0.100] DAddr=[192.168.0.111]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:1(icmp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
...