fbpx

Soft & Share 開源報報 241 – 使用 BitTorrent 和比特幣技術對GitHub進行去中心化

這是 Soft & Share 為訂閱會員所推出的服務,小編週一到週五會每天整理一篇開源專案的摘要說明整理 (早上 8 點前會發佈在 Soft & Share 網站 ) ,讓你可以利用上班前快速掌握目前開源專案的焦點。( 之前出版的開源報報 )。想體驗開源報報,可先參考開放閱讀

🔥以主題方式整理出相關的開源專案 – 開源報報主題報導

為什麼需要 Soft & Share 開源報報?

每天快速瀏覽開源報報具備有什麼效益?

  1. 增加自己的學習動力,提升自己的視野
  2. 從開源專案中獲得 side project 靈感與想法
  3. 利用開源專案提升自己的生產力

每天使用 NT8.3 元,你可以使用 Soft & Share 開源報報省下掌握每天開源資訊焦點的時間,這是一個很划算的時間槓桿投資

訂閱網址

開源報報內容

工具

快速,可移植,簡單且免費的C / C ++ IDE

快速,可移植,簡單且免費的C / C ++ IDE。

自2000年以來,Dev C++ 已被下載67,796,885次。Embarcadero Dev-C ++是Bloodshed Dev-C ++和Orwell Dev-C ++的新改進版(由Embarcadero贊助)。 它是功能齊全的整合開發環境(IDE)和 C/C++ 程式語言的程式碼編輯器。

它使用GCC 的 Mingw 移植版本(GNU編譯器集合)作為其編譯器。 Embarcadero Dev-C++也可以與 Cygwin 或任何其他基於 GCC 的編譯器結合使用。

Embarcadero Dev-C++使用最新版本的 Embarcadero Delphi 建構。 Embarcadero Dev-C ++具有較低的記憶體佔用量,因為它是Windows的原生應用程式,並且不使用Electron。

Please – 高效能可擴充的建構 ( build )系統

Please是一個跨語言的建構系統,著重於高效能,可擴充性和可重現性。 它支援多種流行程式語言,並且可以自動執行建構流程的幾乎所有方面。

用 SwiftUI 編寫的 macOS 狀態監控應用程式

使用 BitTorrent 和比特幣技術對GitHub進行去中心化

GitTorrent 是在 BitTorrent 上共享的 Git 儲存庫的 peer-to-peer  網路。

為什麼要將 GitHub 去中心化?

首先,實際的原因:正如我在從事此專案時發生的那樣,GitHub 可能變得不可信,被駭客入侵或被中國DDOS破壞! 我知道 GitHub 目前似乎在做很多事情,但是經常會有這樣的情況發生,即使已經籌集了1億美元風險投資資金的公司開始做出他們的使用者強烈希望他們不要的決定。

也有一些哲學上的原因:GitHub是封閉原始碼,因此我們不能做得更好。 Mako Hill有一篇名為“自由軟體需要自由工具”的文章,描述了依靠專有軟體來生產自由軟體的問題,我認為他是對的。 換句話說,GitHub決定我們應該使用的不可修改工具正在定義我們圍繞開源專案進行協同作業的經驗。

你可以在這個部落格文章中瞭解有關該專案的更多資訊。

設計

GitTorrent的設計包含五個元件:

  1. 一個“ git transport helper”,它知道如何下載和解壓縮git物件,並且Git本身可以使用它來執行 fetch/clone/push
  2. 一個分散式雜湊表,該雜湊表通告願意向哪個git commit 服務的節點
  3. BitTorrent 通訊協定擴充套件,協商將具有所需物件的包裝檔案傳送給對等點
  4. 分散式雜湊表上的鍵/值儲存,用作描述使用者儲存庫及其最新 git 雜湊的“使用者配置檔案”
  5. 一種在比特幣區塊鏈上註冊友好使用者名稱的方法,以便可以使用書面使用者名稱( a written username )而不是難看的十六進位制字串來查詢使用者

在 IPFS 中重新託管 git repository 的 script

什麼是「IPFS」?

「IPFS」星際文件系統 (InterPlanetary File System) 是一個分散式的 web,點到點超媒體通訊協定。

IPFS 的目標是取代 HTTP

這個專案跟上面那個專案 https://github.com/cjb/gittorrent 很類似,都想要有一個去中心化的 git repository

Web 應用程式開發

一系列技巧,可幫助你熟練掌握CSS技能

收集了 25 種 CSS 技巧

資料科學

Microsoft Learn上機器學習模組的練習筆記本

該儲存庫包含用於在 Microsoft Learn 建立機器學習模型學習路徑 的練習檔案

雲端和網路管理

來自配置錯誤的網站的洩漏 git repository

存在許多用於 Web 應用程式的部署機制,其中將儲存庫的內容複製到營運的伺服器上,無論是透過將檔案建構到 Docker 容器中,還是直接將檔案直接傳輸到Web伺服器上。 這通常會導致釋出敏感檔案,例如 CI 配置,自述檔案以及 .git目錄。

.git 目錄儲存你的所有儲存庫資料,例如配置,提交歷史記錄和儲存庫中每個檔案的實際內容。 如果你可以檢索給定網站的 .git 目錄的全部內容,則可以訪問該網站的原始原始碼,並且通常可以訪問豐富的配置資料,例如資料庫密碼,密碼鹽巴( password salts )等。

啟用目錄列表的網路伺服器使這種攻擊特別容易,因為只需遞迴下載.git目錄中的每個檔案,然後執行以下命令從儲存的目標檔案中提取檔案即可

更詳細的資訊請參考 https://liam-galvin.co.uk/security/2020/09/26/leaking-git-repos-from-misconfigured-sites.html

可以用這個工具來測試自己的營運伺服器是不是有這個問題

AWX 提供了基於 Web 的使用者介面,REST API和基於 Ansible 建構的任務引擎

AWX專案(簡稱AWX)是由Red Hat贊助的一個開源社群專案,它使使用者可以更好地控制其在 IT 環境中使用 Ansible 專案。 AWX是上游專案,從中最終衍生出Red Hat Ansible Tower產品。

程式設計語言/程式庫

在 x86 bare metal 上執行的Go unikernel

在完全用 Go 語言編寫的 x86 bare metal 上執行單個 G o應用程式(僅少量C和一些程式集),支援 Go 的大多數功能(如GC,goroutine)和標準程式庫,還帶有可執行的網路堆疊 大多數基於網路的程式庫。

整個核心是在 ring0 上執行的 go 應用程式。 沒有行程和行程同步 primitives,只有 goroutine 和通道。 沒有 elf 載入器,但是有一個可以執行 js script 檔案的Javascript直譯器,並且將新增 WASM 直譯器以稍後執行WASM檔案。

背景

Go 的 runtime 提供了一些基本的作業系統抽象。 Goroutine 對應於 process ,而 channel 則對應於 process 間通訊。 另外,go具有自己的虛擬記憶體管理,因此誕生了在 bare metal 上執行Go程式的想法。

事實證明,由於 Go 的可控制記憶體佈局,無需虛擬機器即可直接轉換硬體指令的能力以及類似 C 的語法,使得 Go 能夠操縱硬體資源。 這些都使 Go 可以編寫在bare metal上執行的程式。 但是,也存在一些挑戰。 Go 堆積很多指令來執行協程排程和記憶體 GC,這會在無法重入( reentrant )的某些地方帶來一些麻煩,例如中斷處理和系統呼叫。

一般來說,用Go編寫核心是非常有趣的體驗。 一方面,它使我對Go的 runtime 有了深刻的瞭解。 另一方面,這可以嘗試除了使用 C 語言之外的技術在 bare metal 上編寫作業系統核心的體驗。

訂閱網址

喜歡今天小編整理的開源報報嗎?歡迎給小編意見與回饋

Comments are closed.

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: