Skip to content

Commit 3a1d0b9

Browse files
committed
fix builder
1 parent 7a3bd01 commit 3a1d0b9

File tree

7 files changed

+43
-19
lines changed

7 files changed

+43
-19
lines changed

wedpr-builder/wedpr_builder/common/constant.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ class ConfigInfo:
8686
wedpr_node_service_dir = "wedpr-pro-node-service"
8787
wedpr_mpc_service_dir = "wedpr-mpc-service"
8888
docker_file_list = ["create_docker.sh",
89-
"start_docker.sh", "stop_docker.sh"]
89+
"start_docker.sh",
90+
"stop_docker.sh", "destroy_docker.sh"]
9091
# the nginx config
9192
nginx_tpl_path = get_abs_path("nginx/")
9293
nginx_config_file_list = ["nginx.conf"]
@@ -169,3 +170,4 @@ class ConfigProperities:
169170
EXTENDED_MOUNT_CONF = "EXTENDED_MOUNT_CONF"
170171
# the nginx configuration
171172
NGINX_BACKEND_SERVER_LIST = "NGINX_BACKEND_SERVER_LIST"
173+
NGINX_PORT = "NGINX_PORT"

wedpr-builder/wedpr_builder/config/wedpr_deploy_config.py

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ def __init__(self, config, section_name: str):
151151
self.config, section_name, "sequencer_contract_address", None, True)
152152

153153
def __repr__(self):
154+
154155
return f"**BlockchainConfig: blockchain_group: {self.blockchain_group}, " \
155156
f"blockchain_peers: [{','.join(self.blockchain_peers)}], " \
156157
f"blockchain_cert_path: {self.blockchain_cert_path}**\n"
@@ -170,9 +171,10 @@ def to_properties(self) -> {}:
170171
constant.ConfigProperities.WEDPR_SEQUENCER_CONTRACT_ADDRESS:
171172
self.sequencer_contract_address})
172173
# the blockchain peers
173-
blockchain_peers_info = ','.join(map(str, self.blockchain_peers))
174+
quoted_peers = [f'"{peer}"' for peer in self.blockchain_peers]
175+
blockchain_peers_info = ','.join(map(str, quoted_peers))
174176
properties.update({constant.ConfigProperities.BLOCKCHAIN_PEERS:
175-
f"[{blockchain_peers_info}]"})
177+
f'[{blockchain_peers_info}]'})
176178
return properties
177179

178180

@@ -387,18 +389,23 @@ def __repr__(self):
387389
f"server_start_port: {self.server_start_port}," \
388390
f"service_type: {self.service_type} \n**"
389391

390-
def to_nginx_properties(self):
392+
def get_nginx_listen_port(self, node_index):
393+
return self.server_start_port + 3 * node_index + 2
394+
395+
def to_nginx_properties(self, nginx_listen_port):
391396
props = {}
392397
nginx_backend_setting = ""
393398
for backend in self.server_backend_list:
394399
nginx_backend_setting = f"{nginx_backend_setting}{backend};\\n\\t"
395400
props.update({constant.ConfigProperities.NGINX_BACKEND_SERVER_LIST:
396401
nginx_backend_setting})
402+
props.update(
403+
{constant.ConfigProperities.NGINX_PORT: nginx_listen_port})
397404
return props
398405

399406
def to_properties(self, deploy_ip, node_index: int) -> {}:
400407
props = {}
401-
server_start_port = self.server_start_port + 2 * node_index
408+
server_start_port = self.server_start_port + 3 * node_index
402409
self.server_backend_list.append(f"{deploy_ip}:{server_start_port}")
403410
# nodeid
404411
node_id = f"{self.service_type}-{self.env_config.zone}-node{node_index}"
@@ -417,16 +424,21 @@ def to_properties(self, deploy_ip, node_index: int) -> {}:
417424
props.update(
418425
{constant.ConfigProperities.WEDPR_SERVER_LISTEN_PORT: server_start_port})
419426
# transport listen_port
427+
transport_port = server_start_port + 1
420428
props.update(
421-
{constant.ConfigProperities.WEDPR_TRANSPORT_LISTEN_PORT: server_start_port + 1})
429+
{constant.ConfigProperities.WEDPR_TRANSPORT_LISTEN_PORT: transport_port})
422430
# set the image desc for docker mode
423431
image_desc = self.env_config.get_image_desc_by_service_name(
424432
self.service_type)
425433
if image_desc is not None:
426434
props.update(
427435
{constant.ConfigProperities.WEDPR_IMAGE_DESC: image_desc})
428436
# set the exposed port
429-
exposed_port_list = f"-p {server_start_port}:{server_start_port} -p {server_start_port + 1}:{server_start_port + 1}"
437+
exposed_port_list = f"-p {server_start_port}:{server_start_port} -p {transport_port}:{transport_port}"
438+
# expose the nginx port
439+
if self.service_type == constant.ServiceInfo.wedpr_site_service:
440+
nginx_port = server_start_port + 2
441+
exposed_port_list = f"{exposed_port_list} -p {nginx_port}:{nginx_port}"
430442
# default expose 20 ports for jupyter use
431443
# reserver 100 ports for jupyter use
432444
jupyter_start_port = server_start_port + 100
@@ -443,7 +455,7 @@ def to_properties(self, deploy_ip, node_index: int) -> {}:
443455
props.update(
444456
{constant.ConfigProperities.WEDPR_DOCKER_EXPORSE_PORT_LIST: exposed_port_list})
445457
# set the docker name
446-
docker_name = f"{self.service_type}-{self.env_config.zone}-node{node_index}"
458+
docker_name = f"{self.agency}-{self.service_type}-{self.env_config.zone}-node{node_index}"
447459
props.update(
448460
{constant.ConfigProperities.WEDPR_DOCKER_NAME: docker_name})
449461
return props
@@ -848,6 +860,7 @@ def get_wedpr_model_properties(self, deploy_ip: str, node_index: int) -> {}:
848860

849861
@staticmethod
850862
def generate_cpp_component_docker_properties(
863+
agency_name: str,
851864
prefix_path, zone_name: str, service_type: str, env_config,
852865
exposed_port_list: str, node_index: int):
853866
props = {}
@@ -884,7 +897,7 @@ def generate_cpp_component_docker_properties(
884897
props.update(
885898
{constant.ConfigProperities.WEDPR_DOCKER_EXPORSE_PORT_LIST: exposed_port_list})
886899
# set the docker name
887-
docker_name = f"{service_type}-{zone_name}-node{node_index}"
900+
docker_name = f"{agency_name}-{service_type}-{zone_name}-node{node_index}"
888901
props.update(
889902
{constant.ConfigProperities.WEDPR_DOCKER_NAME: docker_name})
890903
return props

wedpr-builder/wedpr_builder/generator/wedpr_gateway_config_generator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ def __generate_docker_config__(
8787
f"{constant.ConfigInfo.docker_tpl_path} to {node_path} "
8888
f"failed, reason: {output}")
8989
props = AgencyConfig.generate_cpp_component_docker_properties(
90+
gateway_config.agency_name,
9091
constant.ConfigInfo.wedpr_gateway_service_dir,
9192
self.config.env_config.zone,
9293
gateway_config.service_type, self.config.env_config,

wedpr-builder/wedpr_builder/generator/wedpr_node_config_generator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ def __generate_docker_config__(
100100
f"{constant.ConfigInfo.docker_tpl_path} to {node_path} "
101101
f"failed, reason: {output}")
102102
props = AgencyConfig.generate_cpp_component_docker_properties(
103+
node_config.agency_name,
103104
constant.ConfigInfo.wedpr_node_service_dir,
104105
self.config.env_config.zone,
105106
node_config.service_type, self.config.env_config,

wedpr-builder/wedpr_builder/generator/wedpr_service_generator.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ def __generate_service_config__(
5959
f"{self.config.env_config.deploy_dir}, "
6060
f"service_config: {service_config}")
6161
node_path_list = []
62+
nginx_listen_port = []
6263
for ip_str in service_config.deploy_ip_list:
6364
ip_array = ip_str.split(":")
6465
ip = ip_array[0]
@@ -72,15 +73,20 @@ def __generate_service_config__(
7273
agency_name=service_config.agency,
7374
deploy_ip=ip, node_index=i)
7475
node_path_list.append(node_path)
76+
nginx_listen_port.append(
77+
service_config.get_nginx_listen_port(i))
7578
# generate the ip shell scripts
7679
output_path = self.__get_deploy_path__(
7780
agency_config.agency_name, ip, None, service_config.service_type)
7881
self.__generate_docker_ip_shell_scripts__(output_path)
7982
# generate the init scripts
8083
self.generate_init_scripts(os.path.join(
8184
output_path, "init"), agency_list, agency_config)
85+
i = 0
8286
for node_path in node_path_list:
83-
self.generate_nginx_config(node_path, service_config)
87+
self.generate_nginx_config(
88+
node_path, service_config, nginx_listen_port[i])
89+
i += 1
8490
utilities.print_badge(f"* generate {service_config.service_type} config success, "
8591
f"agency: {agency_config.agency_name}, deploy_dir: "
8692
f"{self.config.env_config.deploy_dir}, "
@@ -274,15 +280,16 @@ def __generate_shell_scripts__(self, dist_path, dst_path):
274280
def __copy_binary__(self, dist_path, dst_path):
275281
self.__copy_java_binary__(dist_path, dst_path)
276282

277-
def generate_nginx_config(self, node_path: str, server_config: ServiceConfig):
278-
utilities.log_info(f"* generate nginx for {node_path}")
283+
def generate_nginx_config(self, node_path: str, server_config: ServiceConfig, nginx_listen_port: int):
284+
utilities.log_info(
285+
f"* generate nginx for {node_path}, nginx_listen_port: {nginx_listen_port}")
279286
# copy the nginx config
280287
command = f"cp {constant.ConfigInfo.nginx_tpl_path}/* {node_path}/conf"
281288
(ret, output) = utilities.execute_command_and_getoutput(command)
282289
if ret is False:
283290
raise Exception(f"Generate nginx config failed when execute command: {command}, "
284291
f"error: {output}")
285-
props = server_config.to_nginx_properties()
292+
props = server_config.to_nginx_properties(nginx_listen_port)
286293
for config_file in constant.ConfigInfo.nginx_config_file_list:
287294
config_path = os.path.join(node_path, "conf", config_file)
288295
utilities.substitute_configurations(props, config_path)
@@ -348,7 +355,7 @@ def get_properties(
348355
def get_service_config(self, agency_config: AgencyConfig) -> ServiceConfig:
349356
return agency_config.model_service_config
350357

351-
def generate_nginx_config(self, node_path: str, server_config: ServiceConfig):
358+
def generate_nginx_config(self, node_path: str, server_config: ServiceConfig, listen_port: int):
352359
return
353360

354361

@@ -376,7 +383,7 @@ def get_properties(
376383
def get_service_config(self, agency_config: AgencyConfig) -> ServiceConfig:
377384
return agency_config.pir_config
378385

379-
def generate_nginx_config(self, node_path: str, server_config: ServiceConfig):
386+
def generate_nginx_config(self, node_path: str, server_config: ServiceConfig, listen_port: int):
380387
return
381388

382389

@@ -405,5 +412,5 @@ def get_properties(
405412
def get_service_config(self, agency_config: AgencyConfig) -> ServiceConfig:
406413
return agency_config.jupyter_worker_config
407414

408-
def generate_nginx_config(self, node_path: str, server_config: ServiceConfig):
415+
def generate_nginx_config(self, node_path: str, server_config: ServiceConfig, listen_port: int):
409416
return

wedpr-builder/wedpr_builder/tpl/nginx/nginx.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ upstream backend {
1414
${NGINX_BACKEND_SERVER_LIST}
1515
}
1616
server {
17-
listen 8010;
17+
listen ${NGINX_PORT};
1818
client_max_body_size 30M;
1919
server_name localhost;
2020

wedpr-builder/wedpr_builder/tpl/site/conf/config.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ useSMCrypto = "false" # RPC SM crypto type
1818

1919
[network]
2020
messageTimeout = "10000"
21-
defaultGroup="group0" # Console default group to connect
22-
peers=["127.0.0.1:20200", "127.0.0.1:20201"] # The peer list to connect
21+
defaultGroup="${BLOCKCHAIN_GROUP_ID}" # Console default group to connect
22+
peers=${BLOCKCHAIN_PEERS} # The peer list to connect
2323

2424
[account]
2525
keyStoreDir = "account" # The directory to load/store the account file, default is "account"

0 commit comments

Comments
 (0)