welcom ! Handel home

2022年9月15日 星期四

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  條件


2020年2月6日 星期四

Free TOOL 免費的工具軟體


Free TOOL 免費的工具軟體

VirtualBox => 練習安裝 server 模擬器工具
https://www.virtualbox.org/

AynDesk => 遠端 控制的 TOOL
https://anydesk.com/

Visual Studio Code => 最佳 IDE tool
https://code.visualstudio.com/

NodePad => 最佳的 code EDIT tool
https://notepad-plus-plus.org/downloads/

 MySQL Enterprise Edition=> MySQL  TOOL
https://www.mysql.com/downloads/

NoSQL Manager for MongoDB GUI tool=>
https://www.mongodbmanager.com/

2019年7月22日 星期一

python程式副檔名 py、pyc、pyo、pyd檔案 說明


python  屬性副檔名的 基本說明 ==
py是原始檔,
pyc是原始檔編譯後的檔案,
pyo是原始檔優化編譯後的檔案,
pyd是其他語言寫的python庫


python並非完全是解釋性語言,它是有編譯的,先把原始碼py檔案編譯成pyc或者pyo,然後由python的虛擬機器執行,相對於py檔案來說,編譯成pyc和pyo本質上和py沒有太大區別,只是對於這個模組的載入速度提高了,並沒有提高程式碼的執行速度,通常情況下不用主動去編譯pyc檔案,文件上說只要呼叫了import model那麼model.py就會先編譯成pyc然後載入
1.如果需要特殊的單獨編譯,則只需要使用py_complie這個模組就行了,如下 
import py_compile 
py_compile.compile(r‘H:\game\test.py‘)
compile函式原型: 
compile(file[, cfile[, dfile[, doraise]]]) 
file 表示需要編譯的py檔案的路徑 
cfile 表示編譯後的pyc檔名稱和路徑,預設為直接在file檔名後加c 或者 o,o表示優化的位元組碼 
dfile 錯誤訊息儲存的路徑 
doraise 可以是兩個值,True或者False,如果為True,則會引發一個PyCompileError,否則如果編譯檔案出錯,則會有一個錯誤,預設顯示sys.stderr中,而不會引發異常
2.如果要把一個資料夾下的所有py檔案都進行編譯,則用下面的命令 
import compileall 
compileall.compile_dir(dirpath) 
dirpath是我們要編譯的資料夾的絕對路徑
3.如果要編譯pyo檔案則 
編譯成 pyo 就是在控制檯執行 python -O -m py_compile file.py 
其中file.py就是我們要編譯的原始檔
主要O為大寫

副檔名 
在寫Python程式時我們常見的副檔名是py, pyc,其實還有其他幾種副檔名。下面是幾種副檔名的用法。
py 
py就是最基本的原始碼副檔名。windows下直接雙擊執行會呼叫python.exe執行。
pyw 
pyw是另一種原始碼副檔名,跟py唯一的區別是在windows下雙擊pyw副檔名的原始碼會呼叫pythonw.exe執行原始碼,這種執行方式不會有命令列視窗。主要用於GUI程式釋出時不需要看到控制檯資訊的情況。
pyc 
在執行python程式碼時經常會看到同目錄下自動生成同名的pyc檔案。這是python原始碼編譯後的位元組碼,一般會在程式碼執行時自動生成你程式碼中引用的py檔案的pyc檔案。這個檔案可以直接執行,用文字編輯器開啟也看不到原始碼。
pyo 
pyo是跟pyc類似的優化編碼後的檔案。
pyd 
pyd並非從python程式生成,而是其他語言寫成的可以被python呼叫的擴充套件。
程式釋出的選擇 
由於筆者基本只在windows平臺下考慮釋出問題,其他平臺均使用原始碼,故此處討論基本圍繞windows平臺。
打包為正常exe程式 
如果要公開發布程式,最常見的方式就是打包成exe程式了。打包的好處是使用者不需要考慮Python的執行環境,且也容易被接受。但不好的是一般打包出來的程式都比較大,而且由於是依靠模組打包,有可能出現相容性等問題。
筆者常用的打包模組是pyinstaller。常用的打包命令是:
pyinstaller -F example.py
-F引數可將程式碼打包成單個exe程式。
另外如果是GUI程式不需要控制檯視窗的還可以加上-w引數:
pyinstaller -w -F example.py
釋出編譯後的pyc/pyo 
如果使用者有python環境,又不想讓他們看到原始碼,就可以選擇釋出pyc/pyo檔案。
直接執行的py檔案不會自動生成pyc,需要手動編譯一下。單檔案編譯:
import py_compile 
py_compile.compile(r’c:\test.py’) 


資料夾編譯:
import compileall 
compileall.compile_dir(dirpath) 


編譯成pyo:
python -O -m py_compile file.py
如果是GUI程式不需要控制檯視窗,可以新建一個pyw檔案用於呼叫主pyc程式。pyw中只需要匯入pyc程式即可。
釋出原始碼py 
釋出原始碼一般是開源專案使用的,沒什麼需要說明的。直接發py檔案就可以了,只要對方有環境就可以執行。
參考資料:
  1. 《python 檔案 .py .pyc .pyw .pyo .pyd》 
    http://blog.csdn.net/feeltouch/article/details/45952003
  2. 《Python程式的執行原理》http://tech.uc.cn/?p=1932
  3. 《python的pyc和pyo檔案》http://gmingzhe.blog.51cto.com/810664/163444
  4. 《執行Python程式(pyc)隱藏DOS視窗的簡便方法》 
    https://apfantasy.wordpress.com/2011/02/13/%E8%BF%90%E8%A1%8Cpython%E7%A8%8B%E5%BA%8Fpyc%E9%9A%90%E8%97%8Fdos%E7%AA%97%E5%8F%A3%E7%9A%84%E7%AE%80%E4%BE%BF%E6%96%B9%E6%B3%95/
  5. 《py檔案編譯為pyc》http://blog.csdn.net/sislcb/article/details/4002414

2019年7月16日 星期二

vmset.py docker 5 Server Group 管理 TOOL

 於 Linux 中安裝好 Docker Container 後
 執行 vmset.py   將自動布建 Fcunction Group

Vmset : docker 5 Server Group  管理 TOOL
$ Cd /home/app1/vmset
$ python Vmset.py   
=== Easy VM SET Container TOOL V 0.2 170121 Handel ===
*** System Command ***
[1]VM Group Select (Gno)
[go]Start RUN VM Group
[stop]STOP VM Group 
[?]List Menu
[H]Help info show
[Q]quit
*** VM info Command ***
[P]show VM parameter index list
[L]Reload Group VM command buffer
[A]VM Group List Show

[B]Group VM Status Show 


Docker Group (niode,mongodb,Nginx,Redis)
/home/app1/vmg1
   ├── app
   ├── mongodb_data
   └── web
Vmg (1,2,3,4,5)
Vmg1(FZC)
Vmg2(FEC)
Vmg3(webTool 192.168.0.124:12345)
Vmg4(FBC)
Vmg5(Null )

RESTful API command UI Backend 架構圖 by Nodejs + RedisDB +PM2