DAPP是分散应用的缩写,也是分散应用。
在某种程度上,比特币可以说是第一个出现的DAPP,因为它完全开源,为贡献者提供奖励,不受中央机构控制,并使用区块链作为支持技术。
作为一种基础设施,区块链提供了一个分布式和分散的可信数据库。基于此,人们可以针对不同的场景开发各种应用程序。
简单地说,DApp和普通应用程序具有相同的原理,但它们是完全分散的。与以太坊网络本身一样,DAPP由自己的节点操作,不依赖任何集中式服务器。DAPP是分散的,可以自动运行。
目前,DApp通常是指基于智能合约在以太坊或EOS上开发的相关应用程序。
1 // 计算图像间的运动关系 2 // 关键函数:cv::solvePnPRansac() 3 // 为调用此函数准备必要的参数 4 5 // 第一个帧的三维点 6 vector<cv::Point3f> pts_obj; 7 // 第二个帧的图像点 8 vector< cv::Point2f > pts_img; 9 10 // 相机内参 11 CAMERA_INTRINSIC_PARAMETERS C; 12 C.cx = 325.5; 13 C.cy = 253.5; 14 C.fx = 518.0; 15 C.fy = 519.0; 16 C.scale = 1000.0; 17 18 for (size_t i=0; i<goodMatches.size(); i++) 19 { 20 // query 是第一个, train 是第二个 21 cv::Point2f p = kp1[goodMatches[i].queryIdx].pt; 22 // 获取d是要小心!x是向右的,y是向下的,所以y才是行,x是列! 23 ushort d = depth1.ptr( int(p.y) )[ int(p.x) ]; 24 if (d == 0) 25 continue; 26 pts_img.push_back( cv::Point2f( kp2[goodMatches[i].trainIdx].pt ) ); 27 28 // 将(u,v,d)转成(x,y,z) 29 cv::Point3f pt ( p.x, p.y, d ); 30 cv::Point3f pd = point2dTo3d( pt, C ); 31 pts_obj.push_back( pd ); 32 } 33 34 double camera_matrix_data3 = { 35 {C.fx, 0, C.cx}, 36 {0, C.fy, C.cy}, 37 {0, 0, 1} 38 }; 39 40 // 构建相机矩阵 41 cv::Mat cameraMatrix( 3, 3, CV_64F, camera_matrix_data ); 42 cv::Mat rvec, tvec, inliers; 43 // 求解pnp 44 cv::solvePnPRansac( pts_obj, pts_img, cameraMatrix, cv::Mat(), rvec, tvec, false, 100, 1.0, 100, inliers );
复制
什么是区块链节点?
站在一个high level角度讲, 区块链节点由以下关键组件组成:
Storage
Peer-to-peer networking
Consensus capabilities
Data handling capabilities for external or "extrinsic" information
A Runtime
由于构建这些组件的复杂性,大多数区块链项目都是从现有的区块链项目中分叉出来的。例如,比特币存储库被分叉创建:莱特币,ZCash,Namecoin和Bitcoin Cash。同样,以太坊存储库被分叉以创建Quorum,POA Network,KodakCoin和Musicoin。
[图片上传失败...(image-29f316-1650860902045)]
然而,现有的区块链平台并不是为了允许修改而设计的。因此,通过分叉构建新的区块链具有严重的局限性。
什么是Substrate?
Substrate是一个用于构建区块链的开源、模块化和可扩展的框架。
Substrate从头开始设计,具有灵活性,允许创新者设计和构建满足其需求的区块链网络。它提供了构建自定义区块链节点所需的所有核心组件。
安装依赖
Substrate开发在基于UNIX的操作系统(如macOS或Linux)上是最容易的。
要在 macOS 或 Linux 上安装所需的软件包,请执行以下操作:
在计算机上打开终端程序。
在下表中找到您的操作系统,并运行适用于您的开发环境的相应命令。
操作系统
安装命令
Ubuntu 或 Debian
sudo apt update && sudo apt install -y git clang curl libssl-dev llvm libudev-dev
Arch Linux
pacman -Syu --needed --noconfirm curl git clang
fedora
sudo dnf update sudo dnf install clang curl git openssl-devel
OpenSUSE
sudo zypper install clang curl git openssl-devel llvm-devel libudev-devel
macOS
brew update && brew install openssl
如果您使用的是 macOS 且未安装 Homebrew,请运行以下命令来安装 Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
复制
安装完成后,运行 :brew install openssl