当前位置:   article > 正文

隐语第八课:隐语SCQL的开发实践

隐语第八课:隐语SCQL的开发实践

目录

1、Docker安装SCQL

2、Docker安装Secretnote

3、以scql模式启动secretnote

4、为alice和bob添加数据表

5、设置数据列的CCL控制

6、编写代码进行SCQL查询

7、下面分享Slides


首先必须感谢蚂蚁集团及隐语社区带来的学习机会! 

第八课也是由操顺德老师讲述,核心内容是动手玩SCQL!

下面我把通过docker方式的SCQL部署过程记录如下:

1、Docker安装SCQL

       首先将SCQL代码从github上拉取下来,仓库地址:GitHub - secretflow/scql: SCQL (Secure Collaborative Query Language) is a system that allows multiple distrusting parties to run joint analysis without revealing their private data.

git clone https://github.com/secretflow/scql.git

  进入examples/p2p-tutorial文件夹,执行bash setup.sh,然后执行docker compose up拉起容器。

  1. cd examples/p2p-tutorial
  2. bash setup.sh
  3. docker compose up

 SCQL的容器已经成功运行:

2、Docker安装Secretnote

     我是在wsl中进行操作,在ubuntu系统中建立一个文件夹secretnote,然后在其中新建一个文件docker-compose.yml如下

services:

  alice:

    image: 'secretflow/secretnote:unstable-amd64'

    #network_mode: "host"

    platform: linux/amd64

    environment:

      - SELF_PARTY=alice

      - ALL_PARTIES=alice,bob

    ports:

      - 8090:8888

    entrypoint: /root/scripts/start.sh

    volumes:

      - /root/scripts

  bob:

    image: 'secretflow/secretnote:unstable-amd64'

    platform: linux/amd64

    environment:

      - SELF_PARTY=bob

      - ALL_PARTIES=alice,bob

    ports:

      - 8092:8888

    entrypoint: /root/scripts/start.sh

    volumes:

      - /root/scripts

     在该文件夹下拉起容器,执行命令docker compose up即可,secretnote容器已经成功运行。

3、修改secretnote的启动脚本/root/scripts/start.sh,alice和bob都需要修改,alice修改为

#!/usr/bin/env bash

ray start \
  --head \
  --port=6379 \
  --include-dashboard=False \
  --disable-usage-stats \
  --resources="{\"$SELF_PARTY\": 4}"

#secretnote --allow-root --no-browser   这是原来的启动脚本
secretnote --allow-root --no-browser --mode=scql --party=alice --host=http://你自己的ip:8081

bob修改为

#!/usr/bin/env bash

ray start \
  --head \
  --port=6379 \
  --include-dashboard=False \
  --disable-usage-stats \
  --resources="{\"$SELF_PARTY\": 4}"

#secretnote --allow-root --no-browser
secretnote --allow-root --no-browser --mode=scql --party=bob --host=http://你自己的ip:8082

3、以scql模式启动secretnote

      重启容器后secretnote将以sqcl的模式运行容器,此时可以打开网页了。

      alice端如下:

bob端如下:

4、为alice和bob添加数据表

     alice创建一个新的项目,并邀请bob加入,bob加入后,两方就可以开始创建数据表。

同样为bob添加数据表(需要在对应的网页里操作,因为只能添加自己方的数据):

5、设置数据列的CCL控制

分别为alice和bob设置数据列的CCL控制,对自己方的数据都是明文PLAINTEXT,为对方的授权根据需要,比如有比较的就选PLAIN_AFTER_COMPARE等。

比如alice方的CCL设置如下:

bob方的CCL设置如下:

6、编写代码进行SCQL查询

     比如在bob端执行下面的查询代码:

  1. SELECT tb.id
  2. FROM tb
  3. WHERE tb.order_amount >= 100
  4. AND tb.is_active = 1
  5. AND tb.id NOT IN (SELECT id FROM ta);

      上面的代码将获取到满足条件order_amount >= 100 和is_active = 1,但是不出现在alice记录id中的bob方的记录id。

       由此则完成了SCQL的实践操作。

7、下面分享Slides

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/403562
推荐阅读
相关标签
  

闽ICP备14008679号