mirror of
https://gitee.com/BDWare/contract-java-example.git
synced 2025-01-10 18:04:09 +00:00
0ffd44aef7
add bdserver-docker add yjs plugin
86 lines
2.2 KiB
Markdown
86 lines
2.2 KiB
Markdown
# contract-java-example
|
||
|
||
#### 介绍
|
||
|
||
idea开发合约的示例。
|
||
|
||
#### 测试环境配置
|
||
|
||
1. 在本地准备docker测试环境。
|
||
|
||
```bash
|
||
cd bdserver-docker-compose
|
||
docker-compose up -d
|
||
cat bdcontract/manager.keypair
|
||
#并复制这组{"publickey".."privateKey"}
|
||
```
|
||
|
||
2. 打开浏览器`http://127.0.0.1:21030/NodePortal.html`。点击右上角`欢迎04xx`按钮,将步骤1中的keyPair复制,并点`导入密钥`。
|
||
|
||
### 开发环境配置
|
||
|
||
可安装idea插件:`ideaplugin/yjs-formater-1.0-SNAPSHOT-1653060411648.zip`
|
||
用于格式化yjs文件和自动补全。
|
||
|
||
#### 调试运行
|
||
|
||
1修改debugconf.json,将cpHost改为从docker可访问的域名或ip。
|
||
|
||
```
|
||
在MAC/Linux环境下,可使用ifconfig | grep inet ,查看本地局域网ip,并配置到cpHost字段。
|
||
在Windows环境下,可使用"cpHost":"host.docker.internal"。
|
||
其中host.docker.internal是docker中内置的一个域名,可用于访问host。
|
||
https://docs.docker.com/desktop/windows/networking/
|
||
```
|
||
|
||
示例的debugconf.json配置:
|
||
|
||
```json
|
||
{
|
||
"agentAddress": "127.0.0.1:21030",
|
||
"publicKey": "04180354fdb6507f8ab98ccfbe165ce11da74ba733f81af86ad6d32216b32cf4f797c559d50ceeefbf4c760c3483840471c67471b90acdffb388cd7d496d9a1610",
|
||
"privateKey": "1d4196947f59532db6f8f4055e58474a48db8f30b476ae3edc66406464521b3b",
|
||
"ypkPath": "./backend/build/contractexample-1.3.0.ypk",
|
||
"killBeforeStart": "ContractExample",
|
||
"createParam": {
|
||
},
|
||
"cpHost": "host.docker.internal"
|
||
}
|
||
```
|
||
|
||
2.启动测试用例:
|
||
|
||
```
|
||
test/java/HelloTest.run
|
||
```
|
||
|
||
注意run方法中的`for (;;);`用于防止测试用例退出。
|
||
在windows中可能影响其他测试用例运行。可独立写个`public static void main(String[] args)`去运行合约。
|
||
|
||
#### 部署运行
|
||
|
||
部署至远程服务端执行":backend:deploy"任务:
|
||
即执行./backend/build.gradle 中的 deploy。
|
||
|
||
#### 前端sdk说明
|
||
|
||
1. 如何使用javascript sdk
|
||
2. 如何使用typescript sdk
|
||
3. 示例:使用vite/vue/...等框架
|
||
3. 如何配置成前后端独立连接的
|
||
4. 如何配置成前后端一体化
|
||
|
||
##### 模拟后端数据
|
||
|
||
#### 后端常用方法说明
|
||
|
||
##### 调用相同CP的yjs代码
|
||
|
||
参考:
|
||
Hello.callYJSInSameCP
|
||
|
||
##### 调用其他CP的yjs代码
|
||
|
||
参考:
|
||
Hello.callYJSInOtherCP
|