welcom ! Handel home

2022年9月15日 星期四

以太坊開發者工具列表


# Solidity-最流行的智慧合約語言

# Truffle-最流行的智慧合約開發、測試和部署框架。

#  MetaMask– 可與以太坊Dapps互動的Chrome擴充套件程式錢包。

# Truffle boxes-以太坊生態系統的打包元件


Developing Smart Contracts(智慧合約開發)

Smart Contract Languages(智慧合約語言)

• Solidity– 以太坊智慧合約語言

• Bamboo– 一種靈活的智慧合約語言

• Vyper– 新的實驗程式語言

• LLL-低級別的Lisp語言

Frameworks(開發框架)

• Truffle-最流行的智慧合約開發,測試和部署框架,包括Truffle、Ganache和Drizzle。

• Embark– DApp開發框架

• Dapp– DApp開發框架,DApple的繼任者

• Populus–擁有可愛動物圖片的以太坊開發框架

• Etherlime-基於ethers.js的Dapp部署框架

• Cliquebait-透過docker例項簡化智慧合約應用程式的整合和測試,它與真正的區塊鏈網路非常相似

IDEs(整合開發環境):

用於提供程式開發環境的應用程式,一般包括程式碼編輯器、編譯器、除錯器和圖形使用者介面等工具

• Remix– Web IDE內建靜態分析,測試區塊鏈VM

• Atom–  Atom Solidity Linter和Etheratom的原子編輯器

• Pragma– 非常簡單的solidity Web IDE,自動生成的智慧合約介面。 autocomplete-solidity和language-solidity包

• Superblocks Studio-編寫,構建和部署智慧合約

• Vim solidity– solidity的Vim語法檔案

• Visual Studio Code– Visual Studio Code擴充套件中增加了對Solidity的支援

• Intellij Solidity Plugin-適用於JetBrains IntelliJ Idea IDE(免費/商業)的開源外掛,具有語法高亮,格式化,程式碼完成等功能。

• YAKINDU Solidity Tools-基於Eclipse的IDE,具有文字敏感特性,比如程式碼完成和幫助、程式碼導航、語法著色、內建編譯器、快速修復和模板。

• Eth Fiddle-由Loom網路開發的IDE,允許開發者編寫、編譯和除錯智慧契約,便於共享和查詢程式碼片段。


Test blockchain networks(區塊鏈網路測試)

• Ganache-用於測試以太坊區塊鏈的應用程式,具有可視UI和日誌

• Kaleido-使用Kaleido打造區塊鏈聯盟網路,非常適合PoC和測試

• Local Raiden-在docker容器中執行本地Raiden網路以進行演示和測試

• Private networks deployment scripts-私有PoA網路的開箱即用部署指令碼

• Local Ethereum Network-私有PoW網路的開箱即用部署指令碼


Test Ether faucets(測試乙太網水龍頭)

• Rinkeby faucet

• Kovan faucet

• Ropsten faucet

Truffle 工具說明

 


Truffle套件是一個開發乙太坊(Ethereum)區塊鏈DApp(分散式應用程式)的開發環境,是開發DApp的一站式解決方案,

功能包括:

     編譯合約、

    部署合約、

    開發DApp前端、

    測試DApp等。

 

Truffle套件主要有3個模組:

Truffle 太坊(Ethereum)區塊鏈DApp開發環境。

Ganache Ganache可以創建本地區塊鏈網路,用於測試智合約,你可以在本地區塊鏈網路上部署合約、開發應用程式、運行測試和執行其他任務,不需要付任何費用。

Drizzle 前端庫的集合,使編寫dapp使用者介面更容易。

 

 

Truffle Ethereum spec

內置智慧合約編譯、連結、部署和二進位管理功能。

用於快速開發的自動化合約測試功能。

腳本化、可擴展的合約部署和遷移框架。

強大的網路管理功能,可以部署到任意數量的公共和私有網路。

使用EthPMNPM進行包管理,使用ERC190標準。

互動式控制台工具可以直接與合約通信。

可配置的構建管道,支援緊密集成。

強大的外部腳本運行器功能,支援在Truffle環境中執行外部腳本。

 

 

 

>>Truffle 安裝說明

安裝 Node NPM

Truffle 框架依賴Node,需要使用npm安裝。

首先需要安裝nodenpm會同時安裝,下載node,按提示安裝。

安裝完後,可以驗證一下node版本:

$ node -v

安裝 Truffle

使用npm安裝Truffle框架:

$ npm install -g truffle

驗證truffle安裝:

$  truffle --version
Truffle v5.0.35 - a development framework for Ethereum
...

 

>>Truffle 創建智能合約專案

 

可以使用truffle init命令可以創建原始的專案範本,但是對於初學者,使用Truffle Box可能更簡單,

Truffle Box中包含了很多示例應用程式和專案範本。我們將使用MetaCoin box,它將創建一個通證,可以在帳戶之間傳輸:

1. 創建專案目錄:

$mkdir MetaCoin
$cd MetaCoin

2. 下載(unbox) MetaCoin box 專案範本:

$truffle unbox metacoin

 

注意: 你可以使用truffle unbox命令下載任何其他 truffle box

注意: 要創建一個不包含智慧合約的原始Truffle項目,可使用Truffle init

注意: 你可以使用一個可選的--force參數來初始化目前的目錄中的專案,而不管它的狀態如何(例如,即使它包含其他檔或目錄)

          這適用於initunbox命令。注意,這可能會覆蓋目錄中的檔。

 

Kevin@QIKEGU g:\qikegu\ethereum\MetaCoin
> tree /f

專案路徑列表

G:.
  LICENSE
  truffle-config.js

├─contracts
      .placeholder
      ConvertLib.sol
      MetaCoin.sol
      Migrations.sol

├─migrations
      1_initial_migration.js
      2_deploy_contracts.js

└─test
        .placeholder
        metacoin.js
        TestMetaCoin.sol

contracts    目錄 智慧合約原始檔案目錄。

migrations 目錄 遷移檔目錄,遷移檔都是javascript腳本,幫助我們把智慧合約部署到乙太坊。

test              目錄 測試代碼目錄。

truffle-config.js  Truffle專案設定檔,例如,可以在裡面配置網路。

 

 

>>Truffle –編譯合約

 

目標文件

所有的合約原始檔案都位於專案的contracts/目錄中。由於合約是用Solidity語言編寫的,所以合約原始檔案的副檔名都是.sol

相關的Solidity庫檔的副檔名也是.sol

如果是原始的Truffle專案範本(通過truffle init創建),裡面將包含一個Migrations.sol原始檔案,用於部署合約。

如果使用 Truffle Box,裡面將包含多個檔。

$truffle compile xxx  <== 編譯指定合約

 

$truffle  compile all  <== 全部編譯

 

 

編譯構件(artifact)

編譯的構件將放在專案根目錄下的build/contract/目錄中, 如果此目錄不存在,則創建該目錄。

這些構件是Truffle內部工作不可或缺的,它們在應用程式的成功部署中扮演著重要的角色。你不應該編輯這些檔,在編譯和部署合約時,它們將被覆蓋。

依賴項

可以使用Solidity語言的import命令聲明合約依賴項。Truffle將按照正確的順序編譯,並確保所有依賴項都被編譯。依賴關係可以通過2種方式指定:

通過檔案名導入依賴項

要從其他檔導入合約,可以將以下代碼添加到Solidity原始檔案中:

import "./AnotherContract.sol";

這將導入另一個原始檔案AnotherContract.sol中的所有合約,導入檔的路徑是基於當前原始檔案的相對路徑。

注意,Solidity語言還允許其他導入語法。有關更多資訊,請參閱Solidity文檔。

 

從外部包導入合約

Truffle支持通過 EthPM NPM 安裝依賴項。要從依賴項導入合約,可使用以下語法

import "somepackage/SomeContract.sol";

 

這裡,somepackage表示通過EthPMNPM安裝的包。SomeContract.sol表示該包提供的Solidity原始檔案。

注意,在搜索NPM安裝的包之前,Truffle將首先搜索EthPM安裝的包,因此在命名衝突的罕見情況下,將使用EthPM安裝的包。

有關如何使用Truffle包管理特性的更多資訊,請參閱Truffle EthPMNPM文檔。


 

 

虛擬幣 市場現況 及 交易特性

虛擬幣公練特性介紹 

 



BTS

SOLana

Luna

BitCoin

ETH



BTS BitShares ( 比特股)


bts-cn-docs
比特股 BitShares (BTS) 中文技术文档
建这个库的目的是搜集和整理比特股 BitShares (BTS) 相关的中文技术文档,方便开发者和爱好者使用,以及共同维护。

目录/索引
• 
如何编译
○ 使用 Visual Studio 2015 编译 BitShares-Core
○ Win 10 编译bitshare-core
○ CentOS编译BTS节点程序及命令行钱包
• 
如何集成/对接
○ BTS交易所对接指南(单节点版)

相关资料

英文资料
• https://how.bitshares.works/ 针对终端用户的文档
• https://dev.bitshares.works/ 针对开发者的文档
• https://docs.bitshares.build/ 另一批文档
• https://github.com/bitshares/bitshares-core/wiki 一些核心开发文档
• https://docs.bitshares.org/ 目前是重定向到 https://how.bitshares.works/
• https://doxygen.bitshares.org/hierarchy.html 这个是从代码生成出来的文档,包含代码里的文档性注释。
• https://github.com/bitshares/awesome-bitshares 相关资料链接大全,有100多个链接
• https://bitsharestalk.org/index.php?topic=23925.msg303814#msg303814 搭节点
• https://steemit.com/bitshares/@ihashfury/distributed-access-to-the-bitshares-decentralised-exchange 搭网页钱包

钱包
• 网页钱包
○ https://wallet.bitshares.org/
○ https://develop.bitshares.org/
○ https://bts.exchange/
○ https://ex.xbts.io/
○ https://iobanker.com/
○ GDEX https://www.52bts.net/
○ https://dex.delion.online/
○ https://evrazdex.org/
○ 测试网 https://test.xbts.io/
• 个性化网页钱包
○ 鼓鼓 https://m.magicw.net/
○ XBTS APP (支持AMM) https://app.xbts.io/
• 手机钱包
○ BTS++ https://app.btspp.io/
○ BiTSy http://www.bitsy-wallet.com/
○ EVRAZ https://github.com/evraz-org/EVRAZ-smartphone-application
• 轻钱包下载
○ https://github.com/bitshares/bitshares-ui/releases/latest
• 重钱包(节点)下载
○ https://github.com/bitshares/bitshares-core/releases/latest

扩展 API
• https://api.bitshares.ws/docs
• https://api.bitshares.build/api-docs
• https://cryptofresh.com/api/docs
• https://xbts.io/cmc-api
• https://api.testnet.bitshares.ws/docs - 测试网

区块链浏览器
• https://blocksights.info
• https://bts.ai
• https://cryptofresh.com

数据分析
• https://kibana.bts.mobi

中文资料
(以下排名不分先后)
• boombastic 的 Steemit 博客 https://steemit.com/@boombastic
○ BitShares API 服务器架设指南 - 个人篇
○ BitShares API 服务器架设指南 - 公共API篇
• ETY001 的文章
○ 用 docker compose 搭建 bitshares elastic search
○ 重写了我的bitshares-elasticsearch的docker-compose
○ 对之前的 Bitshares Elastic Search 增加 Kibana
○ 解决nginx反代kibana显示空白页的问题
○ 快速搭建私有单节点 Bitshares Testnet(一)
○ 快速搭建私有单节点 Bitshares Testnet(二)
○ 使用 bitsharesjs 库创建新用户Demo
○ 在自有私链上使用bitshares-js库
• shulthz的几个教程 https://shulthz.github.io/
○ 简易cli_wallet命令行钱包的教程
○ BTS: 帐号(云)模式转为本地钱包模式
○ BTS: 如何查看三对公私钥
○ BTS(比特股)新手相关教程-资料-钱包内盘-承兑商-社交等信息汇总
• 窗外一叶 的博客 https://www.cwyyprog.com/tag/bitshares/
○ Win 10 编译bitshare-core witness node
○ 浏览/编译bitshares源代码的配置
○ 比特股源码阅读笔记系列
• legendx 的 Steemit 博客 https://steemit.com/@legendx
○ DPOS共识算法 -- 缺失的白皮书
• Cifer 的 Steemit 博客 https://steemit.com/@cifer
○ Graphene 源码阅读 ~ 基础知识
○ Graphene 源码阅读 ~ 源码结构
○ Graphene 源码阅读 ~ 数据库篇 ~ 对象模型
○ Graphene 源码阅读 ~ 数据库篇 ~ 索引模型
○ Graphene 源码阅读 ~ 数据库篇 ~ 对象序列化
• 老鱼 (chaimyu) 的 Steemit 博客 https://steemit.com/@chaimyu
○ bitshares研究系列【mac下安装bitshares】
○ bitshares研究系列【visual studio编译调试bitshares】
○ bitshares研究系列【bitshares-ui代码分析之基本结构】
○ bitshares研究系列【bitshares-ui代码分析之api调用流程】
○ bitshares研究系列【bitshares-core api实现】
○ bitshares研究系列【operation的实现】
• 小福星(Pluswave)的博客 https://blog.xiaofuxing.name/
○ 比特股钱包模式和账号模式的安全性差异
○ bitsharesjs库详解二:交易广播
○ 比特股命令行神器:uptick (注:python)
○ bitsharesjs库详解一:ChainStore
○ 源码解析:bitshares-ui的钱包和帐号管理
○ 使用NODEJS解密bitshares网页钱包备份文件
○ 身份认证概念原型发布,目前的反馈和我的思考
• 剑有偏锋的比特股开发专题博客 http://www.jianshu.com/c/19c5791c8c7d
○ 比特股环境搭建
○ 编译比特股网页钱包
○ 比特股全节点witness_node参数翻译
○ 比特股命令行钱包cli_wallet参数翻译
○ 搭建比特股的水龙头注册服务
○ 比特股相关资源链接
• 比特帝国教程 http://jc.btsabc.org/
○ 自建节点(重钱包)
○ BTSBots——比特股内盘做市机器人开放使用教程(Javascript)
○ BTS内盘自动交易机器人的例子和源码(Python)
○ 比特股合规设计功能 ---“白名单”使用教程
○ 二元预测市场举例
○ 一单将资产的“手续费资金”全部刷出
○ 在windows环境下实现BTS2.0自动分红的一种方法
• 比特股论坛中文版 https://bitsharestalk.org/index.php/board,4.0.html
○ 见证人(witness)安装设置教程(老)
• Hi区块链资讯站及公众号 https://www.hibtc.org/
○ 一分钟安装完比特股重钱包,可以媲美中心化交易所一样的交易速度
• 邱绍锡的博客 https://qiushaoxi.com/
○ Bitshares 私链部署witness节点 / 原文
○ 使用 NodeJS 调用 API 接口 进行转账和 Bitshares 内盘交易 / 原文
• BTS500的博客 https://bts500.github.io/categories/Bitshares/
○ Bitshares 开发者系列(1)—— Api接口的访问方式
○ Bitshares 开发者系列(2)—— Bitsharesjs-ws 库源码解读
• 胡桃夹子的博客 http://hutaow.com
○ BitShares插件开发入门
• chouheiwa的github
○ Java-Cli-Wallet —— 一个java版的Cli-wallet库(支持转账,挂单,注册账户,查询信息等等常用api)
○ iOS-Cli-Framework —— 一个专门为iOS设备编写的cli-wallet库
• 本库中 @abitmore 的部分原创文档也同步发到 Hive 博客 https://hive.blog/@abit


BlockChain 共識機制簡介

 


ETH POS 合併成功 2022-09-15

 ETH正徹底改變金融世界

紀念這金融史的一刻





2022-9-15 14:00 by Handel






合併(Merge)不是以太坊的最終目的地,發展路徑是:
合併(Merge)= >激增( Surge ) = >邊緣( Verge )
Merge是關於從POW 轉移到POS;
Surge 是關於引入分片;
Verge 是關於Verkle 樹,以幫助優化以太坊上的存儲並幫助減少節點大小。

長遠的目標:
• 讓以太坊具有量子抗性,這樣你就不會隨便運行量子計算機來生成別人的私鑰;
• 如果zkEVM運行良好,那麼在基礎層中製作txn空間,使滾動的成本大大降低;
• 尋找更強大的密碼學;
• 最後,保持開放的心態!


2022年2月10日 星期四

Mosquitto acl topic存取權限管理

  mosquitto topic 設定ACL(Access Control List)


>>對於 Tpoic 的讀寫 有三種權限

< read , write , readwrite >


>>對於 MQTT client user  管理權限設定有三類


1#General section                 通用user 權限

2#User specific section         指定user 權限

3#Client or user ID section   由登入帳號指定權限


>> 設定格式

1#General section   < 用於不定隨機 登入者之權限管理 >

   以 topic 關鍵字 開頭 定義 指定的topic 相關讀寫權限給 不特定的 登入者 

   但若登入者有登入的 user ID 則不是適用 


 topic read  $SYS/#

 topic write $log/#

 topic readwrite $node/#



2#User specific section    <用於 指定user 權限管理 授權特定管理者帳號的操作> 

    以 user 關鍵字開頭 定義接下來的 topic 權限清單

    相關清單 均為指定之user ID 之權限


 user JOHN

 topic read $USER/#

 topic write $USER/#

 topic readwrite $USER/+/GPIO


3#Client or user ID section   <由登入帳號指定權限 授權使用者帳號 管理操作topic 權限 >

   適用在 以認證方式登入 之 user ID 以  pattern 關鍵字開頭 定義 相關之topic 讀寫權限

   %c  client ID  , %u user ID


 pattern  read   $USER/connect/%c/state

 pattern  write  $USER/connect/%c/data

 pattern  readwrite $USER/device/%u/control

2021年7月7日 星期三

pm2 常用command

 ##Show all log meaasge 

$pm2 log 


## show log message 篩選關鍵字 db

$pm2 log | grep db


## 清除所有Log 紀錄

$pm2 flush 


## 重製次數歸零

$pm2 reset all


## 查看執行程序

$pm2 ls


### 查看 pm2 log 紀錄 

$ls /root/.pm2/logs/ -l

-rw-r--r--. 1 root root 0 Jul  8 03:24 eapp5-error.log <= err bug 當機紀錄

-rw-r--r--. 1 root root 0 Jul  8 03:24 eapp5-out.log   <= log message 執行紀錄


Linux # grep篩選多個條件及grep常用過濾命令


>>有關 Linux 使用grep篩選多個條件及grep常用過濾命令 demo  

$cat log.txt | grep 條件;

$cat log.txt | grep 條件一 | grep 條件二;

$cat log.txt | grep 條件一 | grep 條件二 | grep 條件三;<= and 條件

$cat log.txt | grep -E "條件一 | 條件二 |  條件三"   <= or  條件