安裝Lens
您可以透過幾種不同的方式安裝鏡頭,最簡單的方法是使用我們預先搭建的Lensdocker映象。使用docker映象時,預設設定是啟動gRPC伺服器監聽0.0.0.0:9998,沒有任何加密,並使用ghPC身份驗證金鑰blahblahblah。docker容器還需要連線到IPFSHTTP API,預設值為127.0.0.1:5001。要安裝此docker映象,請執行以下命令dockerpull rtradetech / lens:latest
或者對於那些想要更多移動設定的人來說,我們有一個docker-compose設定,它也可以執行所需的IPFS節點。要使用此docker-compose檔案,需要執行以下命令集。這些將使用/tmp目錄作為儲存所有檔案的基本目錄。
$> wget -O lens.yml https://raw.githubusercontent.com/RTradeLtd/Lens/master/lens.yml
$> LENS=latest BASE=/tmp docker-compose -f lens.yml up
使用Lens
在我們開始介紹如何使用Lens之前,我們已經發布了現有的Lens索引,如https://temporal.cloud/lens所見,可透過IPFS下載,可以透過CIDQmZqSYDQrtWg4LHnqT6DPqa1XUr7u430aGcyaTiGHJY3SR下載。它的大小為1.2GB,包含各種研究論文,加密白皮書,我已提交,當然也有其他使用者提交的檔案。
所有索引和搜尋都可以透過gRPCAPI完成,我們已經在github上釋出了協議緩衝區。您可以使用支援協議緩衝區的任何語言為Lens構建API!
有關我們如何使用這些協議緩衝區構建Temporal中的LensAPI客戶端的示例,您可以檢視我們的Golang示例:
package clients
import (
"fmt"
"github.com/RTradeLtd/config/v2"
"github.com/RTradeLtd/grpc/dialer"
pb "github.com/RTradeLtd/grpc/lensv2"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
const (
defaultURL = "127.0.0.1:9998"
)
// LensClient is a lens client used to make requests to the Lens gRPC server
type LensClient struct {
conn *grpc.ClientConn
pb.LensV2Client
}
// NewLensClient is used to generate our lens client
func NewLensClient(opts config.Services) (*LensClient, error) {
dialOpts := make([]grpc.DialOption, 0)
if opts.Lens.TLS.CertPath != "" {
creds, err := credentials.NewClientTLSFromFile(opts.Lens.TLS.CertPath, "")
if err != nil {
return nil, fmt.Errorf("could not load tls cert: %s", err)
}
dialOpts = append(dialOpts,
grpc.WithTransportCredentials(creds),
grpc.WithPerRPCCredentials(dialer.NewCredentials(opts.Lens.AuthKey, true)))
} else {
dialOpts = append(dialOpts,
grpc.WithInsecure(),
grpc.WithPerRPCCredentials(dialer.NewCredentials(opts.Lens.AuthKey, false)))
}
var url string
if opts.Lens.URL == "" {
url = defaultURL
} else {
url = opts.Lens.URL
}
conn, err := grpc.Dial(url, dialOpts...)
if err != nil {
return nil, err
}
return &LensClient{
conn: conn,
LensV2Client: pb.NewLensV2Client(conn),
}, nil
}
// Close shuts down the client's gRPC connection
func (l *LensClient) Close() { l.conn.Close() }
實際索引資料,一旦你的gRPC客戶端啟動並執行,你需要做的只是那個叫做索引的命令,讓Lens發揮其魔力!根據內容在網路中的位置,此過程可能需要一段時間。一般來說,如果內容是本地可用的,則索引分析不應超過一分鐘,通常為30秒。提交索引資料時,必須提供兩個引數,ObjectType,它應使用協議緩衝區中定義的IndexReq_IPLD。第二個引數是ObjectIdentifier,它應該是您要索引的內容的IPFS雜湊值。
搜尋資料也非常簡單,並且需要呼叫搜尋命令。唯一必需的引數是Query,它定義了搜尋資料的方式。(可選)您可以使用像Hashes這樣的過濾器來篩選搜尋結果,以便只匹配特定的IPFS雜湊值,MimeTypes只匹配特定的mime型別。此命令完成所需的時間取決於多種因素,例如索引的大小,匹配的物件數,索引所在的磁碟速度。