web-dc-api 0.0.87 → 0.0.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/protobuf-BVBdi7Hh.js +1 -0
- package/dist/dc.min.js +1 -19
- package/dist/esm/chunks/protobuf-CbxDm-Gy.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/index.d.ts +947 -886
- package/package.json +14 -17
- package/dist/index.cjs.js +0 -19
- package/dist/index.esm.js +0 -19
- package/lib/common/blowfish/block.ts +0 -259
- package/lib/common/blowfish/cipher.ts +0 -144
- package/lib/common/blowfish/const.ts +0 -195
- package/lib/common/chain.ts +0 -469
- package/lib/common/commonclient.ts +0 -202
- package/lib/common/constants.ts +0 -55
- package/lib/common/dc-key/ed25519.ts +0 -343
- package/lib/common/dc-key/keyManager.ts +0 -424
- package/lib/common/dcapi.ts +0 -98
- package/lib/common/dcutil.ts +0 -595
- package/lib/common/define.ts +0 -66
- package/lib/common/error.ts +0 -67
- package/lib/common/grpc-dc.ts +0 -104
- package/lib/common/module-system.ts +0 -184
- package/lib/common/service-worker.ts +0 -234
- package/lib/common/types/types.ts +0 -344
- package/lib/dc.ts +0 -694
- package/lib/implements/account/client.ts +0 -185
- package/lib/implements/account/manager.ts +0 -683
- package/lib/implements/aiproxy/client.ts +0 -357
- package/lib/implements/aiproxy/manager.ts +0 -670
- package/lib/implements/cache/client.ts +0 -105
- package/lib/implements/cache/manager.ts +0 -127
- package/lib/implements/comment/client.ts +0 -982
- package/lib/implements/comment/manager.ts +0 -1151
- package/lib/implements/dc/client.ts +0 -51
- package/lib/implements/dc/manager.ts +0 -33
- package/lib/implements/file/client.ts +0 -253
- package/lib/implements/file/file-cache-manager.ts +0 -142
- package/lib/implements/file/manager.ts +0 -1240
- package/lib/implements/file/seekableFileStream.ts +0 -344
- package/lib/implements/file/streamwriter.ts +0 -322
- package/lib/implements/keyvalue/client.ts +0 -376
- package/lib/implements/keyvalue/manager.ts +0 -759
- package/lib/implements/message/client.ts +0 -250
- package/lib/implements/message/manager.ts +0 -215
- package/lib/implements/threaddb/cbor/coding.ts +0 -62
- package/lib/implements/threaddb/cbor/event.ts +0 -336
- package/lib/implements/threaddb/cbor/node.ts +0 -542
- package/lib/implements/threaddb/cbor/record.ts +0 -398
- package/lib/implements/threaddb/common/AsyncMutex.ts +0 -24
- package/lib/implements/threaddb/common/addrinfo.ts +0 -135
- package/lib/implements/threaddb/common/dispatcher.ts +0 -81
- package/lib/implements/threaddb/common/idbstore-adapter.ts +0 -260
- package/lib/implements/threaddb/common/json-patcher.ts +0 -204
- package/lib/implements/threaddb/common/key.ts +0 -290
- package/lib/implements/threaddb/common/level-adapter.ts +0 -235
- package/lib/implements/threaddb/common/lineReader.ts +0 -79
- package/lib/implements/threaddb/common/logstore.ts +0 -215
- package/lib/implements/threaddb/common/transformed-datastore.ts +0 -308
- package/lib/implements/threaddb/core/app.ts +0 -202
- package/lib/implements/threaddb/core/core.ts +0 -230
- package/lib/implements/threaddb/core/db.ts +0 -249
- package/lib/implements/threaddb/core/event.ts +0 -54
- package/lib/implements/threaddb/core/head.ts +0 -89
- package/lib/implements/threaddb/core/identity.ts +0 -171
- package/lib/implements/threaddb/core/logstore.ts +0 -137
- package/lib/implements/threaddb/core/options.ts +0 -14
- package/lib/implements/threaddb/core/record.ts +0 -54
- package/lib/implements/threaddb/db/collection.ts +0 -1910
- package/lib/implements/threaddb/db/db.ts +0 -698
- package/lib/implements/threaddb/db/json2Query.ts +0 -192
- package/lib/implements/threaddb/db/query.ts +0 -524
- package/lib/implements/threaddb/dbclient.ts +0 -443
- package/lib/implements/threaddb/dbmanager.ts +0 -1901
- package/lib/implements/threaddb/lsstoreds/addr_book.ts +0 -452
- package/lib/implements/threaddb/lsstoreds/cache.ts +0 -36
- package/lib/implements/threaddb/lsstoreds/cyclic_batch.ts +0 -87
- package/lib/implements/threaddb/lsstoreds/global.ts +0 -151
- package/lib/implements/threaddb/lsstoreds/headbook.ts +0 -280
- package/lib/implements/threaddb/lsstoreds/keybook.ts +0 -297
- package/lib/implements/threaddb/lsstoreds/logstore.ts +0 -29
- package/lib/implements/threaddb/lsstoreds/metadata.ts +0 -223
- package/lib/implements/threaddb/net/define.ts +0 -138
- package/lib/implements/threaddb/net/grpcClient.ts +0 -582
- package/lib/implements/threaddb/net/grpcserver.ts +0 -146
- package/lib/implements/threaddb/net/net.ts +0 -2006
- package/lib/implements/threaddb/pb/lstore.proto +0 -38
- package/lib/implements/threaddb/pb/lstore.ts +0 -393
- package/lib/implements/threaddb/pb/lstore_pb.d.ts +0 -433
- package/lib/implements/threaddb/pb/lstore_pb.js +0 -1085
- package/lib/implements/threaddb/pb/net.proto +0 -194
- package/lib/implements/threaddb/pb/net_pb.d.ts +0 -2349
- package/lib/implements/threaddb/pb/net_pb.js +0 -5525
- package/lib/implements/threaddb/pb/proto-custom-types.ts +0 -212
- package/lib/implements/util/client.ts +0 -72
- package/lib/implements/util/manager.ts +0 -146
- package/lib/implements/wallet/manager.ts +0 -664
- package/lib/index.ts +0 -57
- package/lib/interfaces/DCContext.ts +0 -51
- package/lib/interfaces/aiproxy-interface.ts +0 -145
- package/lib/interfaces/auth-interface.ts +0 -118
- package/lib/interfaces/cache-interface.ts +0 -22
- package/lib/interfaces/client-interface.ts +0 -11
- package/lib/interfaces/comment-interface.ts +0 -167
- package/lib/interfaces/database-interface.ts +0 -169
- package/lib/interfaces/file-interface.ts +0 -120
- package/lib/interfaces/index.ts +0 -10
- package/lib/interfaces/keyvalue-interface.ts +0 -156
- package/lib/interfaces/message-interface.ts +0 -22
- package/lib/interfaces/util-interface.ts +0 -31
- package/lib/modules/aiproxy-module.ts +0 -246
- package/lib/modules/auth-module.ts +0 -753
- package/lib/modules/cache-module.ts +0 -99
- package/lib/modules/client-module.ts +0 -71
- package/lib/modules/comment-module.ts +0 -429
- package/lib/modules/database-module.ts +0 -598
- package/lib/modules/file-module.ts +0 -291
- package/lib/modules/index.ts +0 -13
- package/lib/modules/keyvalue-module.ts +0 -379
- package/lib/modules/message-module.ts +0 -107
- package/lib/modules/util-module.ts +0 -148
- package/lib/polyfills/process-env-browser.ts +0 -1
- package/lib/proto/datasource.ts +0 -93
- package/lib/proto/dcnet.proto +0 -1601
- package/lib/proto/dcnet_proto.d.ts +0 -22857
- package/lib/proto/dcnet_proto.js +0 -55204
- package/lib/proto/dcnet_proto_sparse.js +0 -55166
- package/lib/proto/oidfetch.proto +0 -25
- package/lib/proto/oidfetch_proto.d.ts +0 -585
- package/lib/proto/oidfetch_proto.js +0 -1247
- package/lib/serverless/babel-browser.ts +0 -39
- package/lib/serverless/base_entity.ts +0 -78
- package/lib/serverless/base_repository.ts +0 -414
- package/lib/serverless/browser_schema_extractor.ts +0 -283
- package/lib/serverless/decorator_factory.ts +0 -322
- package/lib/util/BrowserLineReader.ts +0 -73
- package/lib/util/base64.ts +0 -105
- package/lib/util/bcrypt.ts +0 -206
- package/lib/util/curve25519Encryption.ts +0 -418
- package/lib/util/dccrypt.ts +0 -73
- package/lib/util/logger.ts +0 -104
- package/lib/util/utils.ts +0 -289
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { Libp2p } from "@libp2p/interface";
|
|
2
|
-
import { CID } from 'multiformats/cid';
|
|
3
|
-
import {multiaddr} from '@multiformats/multiaddr'
|
|
4
|
-
import {StreamWriter } from 'grpc-libp2p-client/dc-http2/stream'
|
|
5
|
-
import { Http2Frame } from 'grpc-libp2p-client/dc-http2/frame';
|
|
6
|
-
import * as net_pb from '../pb/net_pb'
|
|
7
|
-
import { HTTP2Parser } from "grpc-libp2p-client/dc-http2/parser";
|
|
8
|
-
import { HPACK } from "grpc-libp2p-client/dc-http2/hpack";
|
|
9
|
-
import { keys } from "@libp2p/crypto";
|
|
10
|
-
import {
|
|
11
|
-
PeerIDConverter,
|
|
12
|
-
MultiaddrConverter,
|
|
13
|
-
CidConverter,
|
|
14
|
-
ThreadIDConverter,
|
|
15
|
-
KeyConverter,
|
|
16
|
-
ProtoKeyConverter
|
|
17
|
-
} from '../pb/proto-custom-types'
|
|
18
|
-
export class DCGrpcServer {
|
|
19
|
-
constructor(private libp2p: Libp2p, private protocol: string) {}
|
|
20
|
-
|
|
21
|
-
start() {
|
|
22
|
-
this.libp2p.handle(this.protocol, async ({ stream }) => {
|
|
23
|
-
try {
|
|
24
|
-
const hpack = new HPACK()
|
|
25
|
-
//生成number的streamId
|
|
26
|
-
let method = "";
|
|
27
|
-
const writer = new StreamWriter(stream.sink) as any;
|
|
28
|
-
const http2Parser = new HTTP2Parser(writer)
|
|
29
|
-
http2Parser.onData = async (payload, frameHeader) => {
|
|
30
|
-
const requestData = payload.subarray(5) // 去除帧头部分
|
|
31
|
-
if (method === "/net.pb.Service/GetLogs") {
|
|
32
|
-
this.getLogs(frameHeader.streamId,requestData,writer)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
};
|
|
36
|
-
http2Parser.onSettings = async () => {
|
|
37
|
-
const ackSettingFrame = Http2Frame.createSettingsAckFrame()
|
|
38
|
-
writer.write(ackSettingFrame)
|
|
39
|
-
};
|
|
40
|
-
http2Parser.onHeaders = (headers,header) => {
|
|
41
|
-
const plainHeaders = hpack.decodeHeaderFields(headers)
|
|
42
|
-
method = plainHeaders.get(':path')
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
http2Parser.processStream(stream)
|
|
46
|
-
} catch (err) {
|
|
47
|
-
console.error("Error handling request:", err);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
stop() {
|
|
53
|
-
this.libp2p.stop()
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
_parseFrameHeader(buffer: Uint8Array) {
|
|
57
|
-
if (buffer.length < 9) {
|
|
58
|
-
throw new Error("Invalid frame header length");
|
|
59
|
-
}
|
|
60
|
-
const length = (buffer[0]! << 16) | (buffer[1]! << 8) | buffer[2]!;
|
|
61
|
-
const type = buffer[3];
|
|
62
|
-
const flags = buffer[4];
|
|
63
|
-
const streamId =
|
|
64
|
-
(buffer[5]! << 24) | (buffer[6]! << 16) | (buffer[7]! << 8) | buffer[8]!;
|
|
65
|
-
|
|
66
|
-
return {
|
|
67
|
-
length,
|
|
68
|
-
type,
|
|
69
|
-
flags,
|
|
70
|
-
streamId,
|
|
71
|
-
payload: buffer.slice(0, 9),
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
async getLogs(streamId: number,request: any,writer: StreamWriter): Promise<any> {
|
|
77
|
-
console.log('Received GetLogs request')
|
|
78
|
-
const req = net_pb.net.pb.GetLogsRequest.decode(request)
|
|
79
|
-
if (req.body?.threadID) {
|
|
80
|
-
const threadId = ThreadIDConverter.fromBytes(req.body?.threadID)
|
|
81
|
-
console.log('Thread ID:', threadId.toString())
|
|
82
|
-
}
|
|
83
|
-
if (req.body?.serviceKey) {
|
|
84
|
-
const serviceKey = ProtoKeyConverter.fromBytes(req.body?.serviceKey)
|
|
85
|
-
console.log('Service Key:', serviceKey.toString())
|
|
86
|
-
}
|
|
87
|
-
const response = new net_pb.net.pb.GetLogsReply()
|
|
88
|
-
const keyPair = await keys.generateKeyPair("Ed25519");
|
|
89
|
-
|
|
90
|
-
// 获取公钥
|
|
91
|
-
const publicKey = keyPair.publicKey;
|
|
92
|
-
const pid = this.libp2p.peerId.toString()
|
|
93
|
-
// const headBytes = new TextEncoder().encode("bafybeiai3u5rmdsbmqklo7icdn3x5suoyepu2mqms3vgj4rvnkuyjnivmy")
|
|
94
|
-
const head = CID.parse("bafybeiai3u5rmdsbmqklo7icdn3x5suoyepu2mqms3vgj4rvnkuyjnivmy")
|
|
95
|
-
const addr = MultiaddrConverter.toBytes(multiaddr('/ip4/10.0.0.1/tcp/4001/p2p/'+pid))
|
|
96
|
-
let pubkeyBytes = await KeyConverter.publicToBytes(publicKey)
|
|
97
|
-
const addrs: Uint8Array[] = []
|
|
98
|
-
addrs.push(addr)
|
|
99
|
-
|
|
100
|
-
const log = new net_pb.net.pb.Log({
|
|
101
|
-
/** Log ID */
|
|
102
|
-
ID: PeerIDConverter.toBytes(pid),
|
|
103
|
-
|
|
104
|
-
/** Log pubKey */
|
|
105
|
-
pubKey: pubkeyBytes,
|
|
106
|
-
|
|
107
|
-
/** Log addrs */
|
|
108
|
-
addrs: addrs,
|
|
109
|
-
|
|
110
|
-
/** Log head */
|
|
111
|
-
head: CidConverter.toBytes(head),
|
|
112
|
-
|
|
113
|
-
/** Log counter */
|
|
114
|
-
counter: 0,
|
|
115
|
-
})
|
|
116
|
-
for (var i = 0; i < 5000; i++) {//模拟5000个log信息,测试大数据grpc请求是否正常
|
|
117
|
-
response.logs.push(log)
|
|
118
|
-
}
|
|
119
|
-
const headlist = {
|
|
120
|
-
':status': '200',
|
|
121
|
-
'content-type': 'application/grpc'
|
|
122
|
-
}
|
|
123
|
-
// 设置响应头部
|
|
124
|
-
const headerResponseFrame = Http2Frame.createResponseHeadersFrame(streamId, headlist,true)
|
|
125
|
-
await writer.write(headerResponseFrame)
|
|
126
|
-
// 创建数据帧
|
|
127
|
-
const bytes = net_pb.net.pb.GetLogsReply.encode(response).finish()
|
|
128
|
-
const dataFrame = Http2Frame.createDataFrame( streamId,bytes, false)
|
|
129
|
-
await writer.write(dataFrame);
|
|
130
|
-
|
|
131
|
-
//发送tailer
|
|
132
|
-
const trailers = {
|
|
133
|
-
'grpc-status': '0', // 表示成功
|
|
134
|
-
'grpc-message': 'Operation completed successfully'
|
|
135
|
-
};
|
|
136
|
-
const trailersFrame = Http2Frame.createTrailersFrame(streamId, trailers);
|
|
137
|
-
console.log('Trailers Frame:', trailersFrame);
|
|
138
|
-
await writer.write(trailersFrame)
|
|
139
|
-
await writer.end()
|
|
140
|
-
return
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|