多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

sgx支持数据库环境配置,编译,debug

sgx支持数据库环境配置,编译,debug 环境都编译为debug模式为了开发并利用sgx的debugger sgx-gdb进行debug查看cpu是否支持sgxdelldell-Precision-3630-Tower  /nvme  lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 39 bits physical, 48 bits virtual CPU(s): 16 On-line CPU(s) list: 0-15 Thread(s) per core: 2 Core(s) per socket: 8 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 158 Model name: Intel(R) Xeon(R) E-2288G CPU 3.70GHz Stepping: 13 CPU MHz: 3700.000 --到以下网站查看是否支持 https://ark.intel.com/content/www/us/en/ark/products/193743/intel-xeon-e2288g-processor-16m-cache-3-70-ghz.html在bios中开启sgx服务f12找到sgx选项设置为enabled内存设置为最大128mbsgx debug环境编译操作系统ubuntu20.04可参考https://zhuanlan.zhihu.com/p/560110720但是这个是release版本如果需要debug所有都编译为debug顺序sgx driver-sgx sdk-six pswsgx driver在该下载地址将.bin文件下载https://download.01.org/intel-sgx/latest/linux-latest/distro/ubuntu20.04-server/赋予.bin文件执行权限sudochmod777sgx_linux_x64_driver_2.11.054c9c4c.bin运行该bin文件完成驱动安装sudo./sgx_linux_x64_driver_2.11.054c9c4c.bin构建sgx sdk和sgx psw软件包参考链接https://github.com/intel/linux-sgx/tree/mastersudoapt-getinstallbuild-essential ocaml ocamlbuild automake autoconf libtoolwgetpython-is-python3 libssl-devgitcmake perlsudoapt-getinstalllibssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake repreprounzippkgconf libboost-dev libboost-system-dev libboost-thread-dev lsb-release libsystemd0sudoapt-getinstallbuild-essential python-is-python3sudoapt-getinstalllibssl-dev libcurl4-openssl-dev libprotobuf-dev注意要构建 Intel® SGX SDKgcc 版本需要为 7.3 或更高版本glibc 版本需要为 2.27 或更高版本。下载源代码并准备子模块和预构建的二进制文件gitclone https://github.com/intel/linux-sgx.gitcdlinux-sgxmakepreparation上面的代码make preparation将触发脚本download_prebuilt.sh下载预构建的二进制文件。您可能需要为wget脚本使用的工具设置 https 代理如export https_proxyhttp://test-proxy:test-port注意如果遇到任何网络下载的问题自己按照export的方式挂代理将当前操作系统发行版对应的缓解工具从 external/toolset/{current_distr} 复制到 /usr/local/bin 并确保它们具有执行权限sudocpexternal/toolset/{current_distr}/* /usr/local/binwhichar as ld objcopy objdump ranlibsgx sdk安装makesdkDEBUG1makesdk_install_pkgDEBUG1进入linux-sgx文件夹输入cd linux/installer/bin ./sgx_linux_x64_sdk_${version}.bin 注意运行第二条命令时它询问是否安装在当前文件夹的时候最好选择“no”然后输入/opt/intel/, 即将SGX SDK安装在/opt/intel/文件夹下。安装完成后根据提示输入source命令。sgx psw安装makepswDEBUG1makedeb_psw_pkgDEBUG1要构建本地 Debian 软件包存储库makedeb_local_repoYou can find the local package repository located underlinux/installer/deb/sgx_debian_local_repo.修改/etc/apt/sources.list,添加以下行deb[trustedyesarchamd64]file:/PATH_TO_LOCAL_REPO focal mainPATH_TO_LOCAL_REPO替换为linux/installer/deb/sgx_debian_local_repo的绝对路径更新aptsudo apt update安装apt-getinstalllibsgx-launch-dbgsym libsgx-urts-dbgsymapt-getinstalllibsgx-epid-dbgsym libsgx-urts-dbgsymapt-getinstalllibsgx-quote-ex-dbgsym libsgx-urts-dbgsymapt-getinstalllibsgx-dcap-ql-dbgsym使用代码示例测试SGX SDK包硬件模式下编译并运行代码示例cd${sgx-sdk-install-path}/SampleCode/LocalAttestationmakecdbin ./app编译encdbpg的编译参考https://blog.csdn.net/twi_twi/article/details/127146765仅做参考dockercp405cc8900e78:/home/postgresql-14.2.3.tar.gz.apt-getupdateapt-getinstallbuild-essential libreadline-dev zlib1g-dev libssl-dev libxml2-dev libxslt-dev cmake gsudoaptinstall-ymakeautomake libtool cmakesudoaptinstall-ylibssl-dev libboost-all-dev编译tarxvf postgresql-14.2.3.tar.gz ./configure --enable-debug --enable-cassert--prefix/nvme/encdb/pgsql142CFLAGS-O0#按照自己的需求修改make-jmakeinstall--添加用户postgresuseradd-m-d/nvme/encdb/postgres-s/bin/bash postgres#新用户postgres的主目录为/nvme/encdb/postgres#指定了用户的默认登录 shell为/bin/bashpasswdpostgres --创建数据目录cd/nvme/encdb/pgsql142mkdirdatachownpostgres:postgres datals-al#outputdrwxr-xr-x7root root4096Sep207:02.drwxr-xr-x1root root4096Sep203:39..-rw-r--r--1root root3337Sep207:021drwxr-xr-x2root root4096Sep203:39 bin drwx------19postgres postgres4096Sep207:46 data drwxr-xr-x6root root4096Sep203:39 include drwxr-xr-x4root root4096Sep203:39 lib drwxr-xr-x6root root4096Sep203:39 share --配置环境变量vim~/.bashrcexportPGHOME/nvme/encdb/pgsql142exportPGDATA$PGHOME/dataexportPGPORT5432exportPGUSERpostgresexportPATH$PGHOME/bin:$PATH:$HOME/binexportLD_LIBRARY_PATH$PGHOME/libsource~/.bashrc --初始化数据库su- postgres ./initdb-D/nvme/encdb/pgsql142/data --启动服务 ./pg_ctl-D/nvme/encdb/pgsql142/data-l/nvme/encdb/pgsql142/data/startup.log start##以下的感觉可以不需要--配置服务# 修改/usr/local/pgsql/data目录下的两个文件。# 1) postgresql.conf 配置PostgreSQL数据库服务器的相应的参数。# 2) pg_hba.conf 配置对数据库的访问权限。[postgresi-vfyxrtmx data]$vipostgresql.conf listen_addresses*# what IP address(es) to listen on;# comma-separated list of addresses;# defaults to localhost; use * for all# (change requires restart)port5432# (change requires restart)#其中参数“listen_addresses”表示监听的IP地址默认是在localhost处监听也就是127.0.0.1的ip地址上监听只接受来自本机localhost的连接请求这会让远程的主机无法登陆这台数据库如果想从其他的机器上登陆这台数据库需要把监听地址改为实际网络的地址一种简单的方法是将行开头的#去掉把这个地址改为*表示在本地的所有地址上监听。[postgresweekend02 data]$vipg_hba.conf# 找到最下面这一行 这样局域网的人才能访问。红色为新添加内容。#IPv4 local connections:hostall all0.0.0.0/0 trusthostall all127.0.0.1/32 trustsgx-gdb路径/opt/intel/sgxsdk/bin使用方式与gdb差不多
返回列表