Skip to content

Latest commit

 

History

History
116 lines (90 loc) · 8.06 KB

File metadata and controls

116 lines (90 loc) · 8.06 KB

简体中文英文

歡迎

本倉庫是關於產品、開发與社群規則的文檔和討論的主入口。這里也包含不屬於其他倉庫的issue,例如需要前後端耦合的新功能提案。也歡迎加入 Matters 第三方社区 Discord

一些本倉庫內的有用資源:

服務器 API

Matters 使用 GraphQL 作為 API 接口,詳情見簡介文章。開發者可以在 Apollo Playground 中查閱文檔、進行調試。

架構

C4Context
title Matters System Architecture

Container_Ext(cloudflare, "Cloudflare", "CDN + WAF", "Protects and accelerates traffic")

Boundary(feBoundary, "Frontend", "") {
    Boundary(mattersWebBoundary, "matters.town", "thematters/matters-web") {
        Container(ssrServer, "SSR Server", "Elastic Beanstalk", "Next.js, Apollo Client")
    }
}

Boundary(beBoundary, "Backend", "") {
    Boundary(mattersServerBoundary, "matters-server", "thematters/matters-server") {
        Container(apiServer, "API Server","Elastic Beanstalk", "Handles GraphQL requests and Payment/Oauth callbacks")
  ContainerQueue(queues, "Job Queue", "SQS", "")
        Container(queuejob, "Job Worker", "Lambda", "Processes jobs from queues")
        Container(cronjob, "Cronjob", "Lambda", "Handles cronjob")
    }
    Boundary(thirdPartiesBoundary, "Third Party Providers", "") {
        Container_Ext(stripe, "Stripe", "", "Supports fiat payment")
        Container_Ext(likecoin, "Likecoin", "", "Supports likecoin payment") 
        Container_Ext(sendgrid, "SendGrid", "", "Sends Emails")
        Container_Ext(gcp, "GCP", "", "Support translation")
        Container_Ext(opensea, "OpenSea", "", "Support NFT queries for users")
        Container_Ext(sentry, "Sentry", "", "Monitors logging")
    }
}

Boundary(storageBoundary, "Storage", "") {
    ContainerDb(databases, "Postgres", "RDS", "Stores application data")
    Container(cache, "Cache", "Elasticache", "Improves read performance")
    Container(image, "Images Storage", "Cloudflare Images", "Serves images through CDN")
    Container(audio, "Audio Storage", "S3 + CloudFront", "Serves Audio files")
    Container(search, "Search Server", "EC2, Postgresql", "Fulltext search")
    Container_Ext(ipfs, "IPFS/IPNS", "Storacha, Pinata", "Articles IPFS/IPNS storage")
    ContainerDb(bigquery, "BigQuery", "BigQuery", "Stores analytics data and audit logs")
}


Rel(cloudflare, ssrServer, "Filtered traffic", "HTTPS")
Rel(ssrServer, apiServer, "GraphQL queries", "HTTPS")
Rel(apiServer, queues,  "Events", "")
Rel(queues, queuejob,  "Trigger", "")

Loading

代碼倉庫

以下為 Matters Lab 代碼倉庫結構與分工。

後端

前端

通用

  • slugify: 支持 CJK charset 的 slugify
  • docker: Matters Lab 使用的 docker 鏡像。
  • slack notification: slack 通知服務 AWS lambda 函數,用於開發操作流程中的通知。

點對點客戶端

Matters 在持續探索更好的點對點信息分發的機制和協議。以下是一些相關客戶端。

社區項目

名譽榜

感謝以下貢獻者的協助,讓我們的產品更加安全。你可以通過拉取請求來加入自己的名字。

  • huli (GitHub, HitCon)
    • CORS misconfiguration
    • 圖片 src XSS
    • iframe open redirect
    • 登陸頁重定向 XSS
  • catding (GitHub, Matters)
    • 上傳文件至 IPFS 時缺少大小或者域名檢查
  • Aidil Arief
    • 登陸頁重定向 XSS