One coin Babbitt
Babbitt is an app focusing on blockchain information, not a brand. He is committed to providing users with content information reading and data services. It mainly includes market, information, express and community services
Liu Zhipeng, founder and CEO of Babbitt, is also a researcher of blockchain theory and proposer of the idea of "Impossible Triangle" of blockchain. Changjia is the early preacher of bitcoin, and also the founder of the famous blockchain media Babbitt and the famous public chain Biyuan
Babbitt is a new application mode of blockchain distributed data storage, point-to-point transmission, consensus mechanism, encryption algorithm and other computer technologies. As a decentralized database and the underlying technology of bitcoin, blockchain uses cryptographic methods to generate data blocks. Each data block contains information of a batch of bitcoin network transactions, which is used to verify the effectiveness of its information (anti-counterfeiting) and generate the next block
extended data:
Babbitt was founded in 2011. As one of the earliest blockchain companies in China, with the purpose of popularizing blockchain technology and disseminating blockchain concept, Babbitt, chainnode, matpool and other proct lines have been formed, and developed into a collection of information, community, data, information, information, information, information, etc Business incubation and blockchain technology landing in one of the blockchain comprehensive service platform. In 2019, Babbitt was selected into the "Hangzhou Unicorn & amp; List of quasi Unicorn enterprises
Babbitt runs on different forms of heterogeneous digital assets and atomic assets (including warrants, equity, dividends, bonds, intelligence information, forecast information, etc.) on the original blockchain, which can be registered, exchanged, bet, and more complex interaction and cooperation based on the contract
Babbitt's mission is to connect the bit world and the atomic world, and build a decentralized network for the registration and circulation of diversified assets. The goal of Biyuan chain is to become the world's largest dedicated public chain platform and explore the combination of different types of assets and blockchain
#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]
...
Yes, I feel that Babbitt, Golden Finance and chain Oriental are accurate, real-time and not exaggerated
if you really want to know about blockchain, it is recommended to go to Babbitt and be mature
crawler type: advantages: e to the large grounding area, it is better in mud, wetland and other places where it is easy to sink in. Because of the heavy weight of the excavator itself, the excavator can go to a wide range of places. In addition, because the crawler is metal procts, it can also be competent in mines or places with bad working conditions, and has strong cross-country ability< Disadvantages: relatively speaking, the investment is larger and more expensive than the wheel type. In addition, the mobility is not good. The maximum design speed is only 5-7km / h, and the long-distance movement depends on the cart
wheel type: advantages: small investment, fast operation speed, and the general speed can reach 40-50km / h
disadvantages: the use range is narrow, mainly road administration or urban engineering, and can not enter mines or muddy areas, The climbing ability is poor
so now most excavators are crawler type
in October 1999, from Kobe Steel, one of the world's top 500 enterprises, to become a subsidiary of Kobe Steel Institute of Japan, specialized in manufacturing and selling excavators, cranes and other construction machinery. In August 2003, Cheng Shengang construction machinery (Group) Co., Ltd. was established in Cheng, China. Its subsidiaries include Cheng Shengang Construction Machinery Co., Ltd. (procing hydraulic excavators) and Cheng Chenggong Construction Machinery Co., Ltd. (procing wheel loaders and other equipment). Cheng Shengang construction machinery (Group) Co., Ltd. mainly sells Kobelco brand hydraulic excavator, Chenggong brand wheel loader and other construction machinery<
development history:
in 1905, Kobe Steel Company was founded
in 1930, the first construction machinery in Japan was proced: 50K electric mining single bucket excavator< The first hydraulic wheel excavator ty45 was proced in 1963< In 1968, the first 10A small hydraulic excavator was proced in Japan< In 1986, Shengang Construction Machinery Co., Ltd. was established< In 1994, ckcm was established in China
in 1999, the Construction Machinery Department of SG was reorganized into an independent company with the name of SG construction machinery<
common faults of the excavator of Shengang
1: most of the damages are caused by the accelerator motor. The way to judge the faults is to open the key and watch the motor movement. If you can walk to a certain extent, it means that the computer board is basically normal, The fault may be caused by the travel limit switch and the circuit (24 V voltage). If the key lever is opened, the fault location of shaking may be the circuit problem of two groups of coils of the motor, or the mole is damaged
2: when the alarm reverses, the engine will shut down automatically, and most of the faults are caused by the damage of the oil pressure sensor<
3: the whole car is powerless and the action of holding the car is slow. Basically, the hydraulic pump pressure sensor is damaged (alarm C1C2).
4: the key and display screen are easy to be damaged.
5: Cheng Shengang, the pressure sensor is easy to be damaged, and the sensor can be replaced according to the alarm. Cheng Shengang often has CPU alarm, In case of CPU ROM alarm, make a adjustment. In case of other CPU alarms, repair the computer board[