前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >马蹄链DAPP系统开发技术搭建部署教程

马蹄链DAPP系统开发技术搭建部署教程

原创
作者头像
开发v_StPv888
发布2022-11-10 10:22:46
5280
发布2022-11-10 10:22:46
举报
文章被收录于专栏:makingmaking

​​DAPP是分散应用的缩写,也是分散应用。

在某种程度上,比特币可以说是第一个出现的DAPP,因为它完全开源,为贡献者提供奖励,不受中央机构控制,并使用区块链作为支持技术。

作为一种基础设施,区块链提供了一个分布式和分散的可信数据库。基于此,人们可以针对不同的场景开发各种应用程序。

简单地说,DApp和普通应用程序具有相同的原理,但它们是完全分散的。与以太坊网络本身一样,DAPP由自己的节点操作,不依赖任何集中式服务器。DAPP是分散的,可以自动运行。

目前,DApp通常是指基于智能合约在以太坊或EOS上开发的相关应用程序。

代码语言:javascript
复制
 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<ushort>( 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_data[3][3] = { 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角度讲, 区块链节点由以下关键组件组成:

由于构建这些组件的复杂性,大多数区块链项目都是从现有的区块链项目中分叉出来的。例如,比特币存储库被分叉创建:莱特币,ZCash,Namecoin和Bitcoin Cash。同样,以太坊存储库被分叉以创建Quorum,POA Network,KodakCoin和Musicoin。

[图片上传失败...(image-29f316-1650860902045)]

然而,现有的区块链平台并不是为了允许修改而设计的。因此,通过分叉构建新的区块链具有严重的局限性。

什么是Substrate?

Substrate是一个用于构建区块链的开源、模块化和可扩展的框架。

Substrate从头开始设计,具有灵活性,允许创新者设计和构建满足其需求的区块链网络。它提供了构建自定义区块链节点所需的所有核心组件。

安装依赖

Substrate开发在基于UNIX的操作系统(如macOS或Linux)上是最容易的。

要在 macOS 或 Linux 上安装所需的软件包,请执行以下操作:

  1. 在计算机上打开终端程序。
  2. 在下表中找到您的操作系统,并运行适用于您的开发环境的相应命令。

操作系统

安装命令

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:

代码语言:javascript
复制
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

安装完成后,运行 :brew install openssl

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是区块链节点?
  • 什么是Substrate?
  • 安装依赖
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档